Orbit is a premium, private 2-person study accountability platform designed to bridge the gap between solo learning and social distractions. It creates a dedicated "orbit" for you and your study partner, focusing on real-time presence, shared goals, and deep-work motivation.
- 🔐 Exclusive Pairing: Establish a permanent, private connection using a unique sync code. No public profiles, just you and your partner.
- 📡 Live Presence Sync: Real-time status updates powered by Firebase Realtime Database. See when your partner is in "Deep Work," "Paused," or "Taking a Break."
- 📊 Shared Goal Tracking: Create, track, and complete study topics together. Celebrate each other's progress in real-time.
- 📈 Advanced Analytics: Interactive focus charts, study streaks, and productivity metrics powered by
fl_chartto gamify your learning experience. - 🔔 Smart Notifications: Stay updated with partner activity and session alerts using
flutter_local_notificationsand foreground tasks. - 📱 True Cross-Platform: Optimized for mobile (iOS/Android), desktop (Windows/macOS/Linux), and Web with a responsive UI.
- Framework: Flutter (v3.3.0+)
- Language: Dart
- State Management: Riverpod (Annotation-based generation)
- Navigation: GoRouter
- Backend: Firebase
- Cloud Firestore: Persistent user data and topic synchronization.
- Realtime Database: High-speed presence tracking.
- Firebase Messaging: Push notifications for partner alerts.
- Local Persistence: Hive CE for ultra-fast local storage.
- Design: Responsive Framework, Glassmorphism, and Fluent animations.
- Animations:
flutter_animate,Lottie. - Icons: Phosphor Icons and Cupertino Icons.
- Typography: Google Fonts (Inter, Roboto).
Orbit follows a Clean Feature-Driven Architecture, separating concerns into distinct layers:
lib/
├── core/ # Core utilities: Router, Theme, Constants
├── data/ # Data Layer: API clients, Repositories implementation, DTOs
├── domain/ # Domain Layer: Entities, Abstract Repositories, Use Cases
├── features/ # Feature Layer: UI and State (Riverpod Providers)
│ ├── home/ # Main dashboard and navigation
│ ├── onboarding/ # First-time user experience
│ ├── settings/ # User preferences and app settings
│ ├── splash/ # Initial loading screen
│ ├── stats/ # Productivity analytics and charts
│ └── topics/ # Study topic management and tracking
├── firebase/ # Firebase service configuration
├── providers/ # Global state providers
├── services/ # Infrastructure services (Notifications, Foreground tasks)
└── utils/ # Helper functions and extensions
- Flutter SDK
- Firebase CLI
- A Firebase Project (Google Cloud Console)
git clone https://github.com/your-repo/orbit.git
cd orbit
flutter pub getWe use the FlutterFire CLI for automated configuration:
# Activate the CLI
dart pub global activate flutterfire_cli
# Configure the project
flutterfire configure --project=your-project-idCopy .env.example to .env and fill in your Firebase credentials:
FIREBASE_API_KEY=your_api_key
FIREBASE_PROJECT_ID=your_project_id
...Generate code for Riverpod and Hive:
flutter pub run build_runner build --delete-conflicting-outputs- Web:
flutter run -d chrome - Desktop:
flutter run -d windows(or macos/linux) - Mobile:
flutter run(on connected device)
- Fork the repository.
- Create a feature branch:
git checkout -b feature/amazing-feature. - Commit your changes:
git commit -m 'Add amazing feature'. - Push to the branch:
git push origin feature/amazing-feature. - Open a Pull Request.
Private project for personal use. Built with ❤️ for deep learners everywhere.
Orbit - Study Together, Stay Focused.
