Skip to content
APW-LabsPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

29 Commits

Folders and files

Repository files navigation

🌐 HubSpace

Where teams connect, plan, and move together.

A production-grade, multi-tenant team collaboration app built with Jetpack Compose and Material Design 3.


Kotlin Jetpack Compose Material 3 Firebase Android

Status Platform Architecture PRs Welcome


Warning

🚧 Currently in active development phase.

Once production-ready, this badge and beta notices will be removed.


✨ Overview

HubSpace is a production-grade, multi-tenant team collaboration and workspace application for Android. It is built entirely with Jetpack Compose and Material Design 3, and backed by a secure Firebase stack.

Under the hood, HubSpace follows an enterprise-grade architecture centered on a Single Source of Truth (SSOT) pattern through AuthViewModel. Combined with zero-flicker pre-fetching, the UI renders fully formed on first paint, with no layout shifts and no duplicate Firestore reads.


🧰 Tech Stack

Language Kotlin
UI Framework Jetpack Compose Material Design 3
Architecture MVVM Clean Architecture UDF
Backend & Database Firebase Authentication Google Sign-In Cloud Firestore
Notifications FCM
Dev Environment Ubuntu Android Studio Gradle Git

πŸš€ Features

βœ… Implemented

Feature Description
πŸš€ Zero-Flicker Architecture Pre-fetched ViewModel state loading that eliminates layout shifts and duplicate Firestore reads.
🏒 Multi-Team Workspace Seamless team switching with reactive state synchronization and custom team selection sheets.
πŸ“Š Smart Daily Brief SummarizeDayCard gives a context-aware workspace pulse that highlights active tasks, upcoming deadlines, and notices.
⚑ Live GitHub Activity GitHubLiveCard fetches contribution stats, streaks, and repository counts in real time using community APIs and coroutine-safe networking.
πŸ”” FCM Push Notifications Background and killed-state push handling through a custom FirebaseMessagingService.
🎨 Modern Material 3 Design Dynamic surfaces, custom vector branding icons, and refined typography.
πŸ” Secure Access Google Sign-In with whitelist verification, backed by Firebase Authentication.

πŸ—οΈ Architecture

HubSpace uses MVVM with Clean Architecture principles and a strict Unidirectional Data Flow. AuthViewModel acts as the Single Source of Truth for session and workspace state.

flowchart LR
    UI["🎨 Compose UI<br/>(Material 3)"] -- "user events" --> VM["🧠 ViewModels<br/>(AuthViewModel = SSOT)"]
    VM -- "immutable UI state" --> UI
    VM --> REPO["πŸ“¦ Repositories"]
    REPO --> AUTH["πŸ” Firebase Auth<br/>+ Whitelist check"]
    REPO --> FS[("πŸ”₯ Cloud Firestore")]
    REPO --> GH["⚑ GitHub Community API"]
    FCM["πŸ”” FCM Service"] --> VM
Loading

Key principles

  • Single Source of Truth: one authoritative state holder, so screens never disagree with each other.
  • Unidirectional Data Flow: events flow up, state flows down, which keeps behavior predictable and testable.
  • Pre-fetching: data is loaded before the UI needs it, which removes flicker and redundant reads.

πŸ—ΊοΈ Roadmap

  • πŸ“‹ Dedicated Tasks Board: full-fledged checkable team task lists with strike-through states and quick-add bottom sheets.
  • πŸ”‘ Team Join by Hash Code: 8-character invite code generation and validation for instant workspace onboarding.
  • πŸ”— Notification Deep Linking: direct intent routing from background push notifications to specific team announcements.
  • πŸ€– Edge AI Task Parsing: a natural language widget that parses and schedules events and tasks from plain text.

πŸ“Έ Screenshots

Home Team Switcher Daily Brief GitHub Activity
coming soon coming soon coming soon coming soon

βš™οΈ Getting Started

Prerequisites

  • Android Studio (latest stable)
  • JDK 17 or newer
  • A Firebase project with Authentication, Firestore, and Cloud Messaging enabled

Setup

# 1. Clone the repository
git clone https://github.com/<your-username>/HubSpace.git
cd HubSpace

# 2. Open in Android Studio and let Gradle sync
  1. In the Firebase Console, create a project and add an Android app with the project's package name.
  2. Enable Google as a sign-in provider under Authentication.
  3. Add your debug and release SHA-1 / SHA-256 fingerprints to the Firebase app settings.
  4. Download google-services.json and place it in the app/ directory.
  5. Set up the Firestore whitelist data used for sign-in verification.
  6. Build and run on a device or emulator.
./gradlew assembleDebug

Note

google-services.json contains project-specific configuration. Keep it out of public version control by adding it to .gitignore.


🀝 Contributing

Contributions, issues, and feature requests are welcome.

  1. Fork the project
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m "Add amazing feature"
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“„ License

Distributed under the MIT License. See LICENSE for details.


Built with ❀️ using Kotlin and Jetpack Compose

⭐ If you like this project, consider giving it a star.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages