Project Pilot is a modern collaborative project and task management application built for Android using Kotlin and Jetpack Compose. The application enables teams to organize projects, manage tasks, share files, record voice notes, and collaborate in real time through a scalable cloud-backed architecture.
The project was designed to demonstrate modern Android development practices, including Clean Architecture, MVVM, Firebase integrations, Supabase Storage, Biometric Authentication, and a fully reactive UI powered by StateFlow and Jetpack Compose.
- Create and manage collaborative projects.
- Invite and manage project members.
- Organize work into tasks and subtasks.
- Monitor project progress through task statuses.
- Real-time synchronization between team members using Cloud Firestore.
-
Create, edit, assign, and delete tasks.
-
Track task progress with:
- Pending
- In Progress
- Completed
-
Reactive UI updates powered by Kotlin StateFlow.
-
Pull-to-refresh support using Material 3 APIs for manual synchronization.
-
Upload files directly to cloud storage.
-
Support for:
- Images
- Documents
- PDFs
- Voice recordings
-
Add external URL references to tasks.
-
Download and preview uploaded attachments.
- Record voice instructions directly inside tasks.
- Playback support with progress tracking.
- Recording duration timer.
- Visual progress indicators using Compose components.
- Email and password authentication.
- Biometric login using fingerprint or face recognition.
- Encrypted local credential storage.
- Secure session management.
- Access control using Firestore Security Rules and Supabase Row-Level Security (RLS).
- Instant task updates through Firebase Cloud Messaging (FCM).
- Background notification handling.
- Project activity alerts.
- English language support.
- Arabic language support.
- Full Right-to-Left (RTL) layout compatibility.
- Runtime language switching without reinstalling the application.
- Light Theme.
- Dark Theme.
- System Default Theme.
- Theme persistence using DataStore Preferences.
- Feature flag management using Firebase Remote Config.
- Runtime configuration updates without requiring a Play Store release.
- Crash reporting using Firebase Crashlytics.
- Usage analytics through Firebase Analytics.
The application follows Clean Architecture principles with clear separation of responsibilities across layers.
Responsible for:
- Jetpack Compose UI
- Navigation
- ViewModels
- State Management
Responsible for:
- Business Logic
- Use Cases
- Repository Contracts
- Domain Models
Responsible for:
- Firebase Services
- Supabase Services
- Local Database
- Repository Implementations
UI
β
ViewModel
β
UseCase
β
Repository
β
Remote / Local Data Source
com.projectpilot
βββ data
β βββ local
β βββ remote
β βββ repository
β
βββ domain
β βββ model
β βββ repository
β βββ usecase
β
βββ presentation
β βββ screens
β βββ components
β βββ navigation
β βββ viewmodel
β
βββ di
βββ utils
βββ core
- Kotlin
- Coroutines
- Flow / StateFlow
- Jetpack Compose
- Material Design 3
- Navigation Compose
- AndroidX Splash Screen API
- MVVM
- Clean Architecture
- Repository Pattern
- Dagger Hilt
- Kotlin Symbol Processing (KSP)
- Ktor Client
- Room Database
- DataStore Preferences
- Authentication
- Cloud Firestore
- Cloud Messaging (FCM)
- Remote Config
- Crashlytics
- Analytics
- Storage Buckets
- File Upload Management
- Row-Level Security (RLS)
- Coil Compose
Project Pilot implements multiple security layers:
- Firebase Authentication
- Biometric Authentication
- Firestore Security Rules
- Supabase Row-Level Security
- Encrypted local credential storage
- Access validation before file retrieval
The project architecture has been designed to support:
- Unit Testing
- Repository Testing
- ViewModel Testing
- UI Testing with Compose Testing APIs
git clone https://github.com/Pop714/project-pilot.gitcd project-pilot-
Create a Firebase project.
-
Enable:
- Authentication
- Cloud Firestore
- Cloud Messaging
- Remote Config
-
Download the generated
google-services.json. -
Place it inside:
app/google-services.json
Create two storage buckets:
task_attachments
task_voices
Configure appropriate Row-Level Security policies.
Obtain:
- Project URL
- Anon Key
Add them to your dependency injection configuration.
Deploy the provided:
firestore.rules
file to secure project access and collaboration permissions.
./gradlew assembleDebugor launch directly from Android Studio.
This project was built to explore and demonstrate:
- Modern Android Architecture
- Jetpack Compose
- Reactive UI Development
- Cloud-Backed Applications
- Firebase Ecosystem
- Supabase Storage Integration
- Secure Authentication Systems
- Scalable State Management
- Clean Architecture Principles
Android Developer focused on building scalable, maintainable, and modern mobile applications using Kotlin and Jetpack Compose.
Skills
- Kotlin
- Jetpack Compose
- Clean Architecture
- MVVM
- Firebase
- Supabase
- Room Database
- Hilt
- Coroutines & Flows
GitHub: https://github.com/Pop714/
LinkedIn: https://www.linkedin.com/in/albraa-alhrairy/
This project is available for educational and portfolio purposes.






