Smart daily task manager with dynamic scheduling & seamless team collaboration
A full-stack task tracking application for team and personal use built with Flutter (frontend) and Node.js/Express (backend).
Designed for both users and developers who want a self-hosted, customizable productivity solution.
Quick Start • Installation • API Docs • Architecture • Contributing
Get Momentum running in under 5 minutes:
# Clone the repository
git clone <repository-url>
cd momentum
# Backend setup
cd backend
npm install
cp .env.example .env # Configure your environment
npm run dev
# Frontend setup (new terminal)
cd ../
flutter pub get
flutter runNeed detailed setup? See the Installation Guide
- Cross-platform: Android, iOS, Web, Desktop with platform-specific optimizations
- Progressive Analytics: 39-day growing activity heatmap with historical data preservation
- Team Collaboration: Real-time invitations, role-based permissions, team task assignment
- Smart Notifications: Firebase FCM push notifications + in-app notifications
- Background Sync: Automatic 10-second polling with offline capability
- Home Screen Widgets: Android home screen widget with activity visualization
- Intelligent Cleanup: Automated daily cleanup (12:05 AM UTC) with complete data preservation
- Self-hosted: Complete control over data, deployment, and customization
- Production Ready: Automated cleanup, proper error handling, monitoring endpoints
- Clean Architecture: Service-layer separation, Provider state management, proper abstractions
- Security First: JWT with secure storage, input validation, bcrypt hashing
- Developer Experience: Hot reload, comprehensive logging, structured error responses
- Extensible: Well-documented APIs, clear separation of concerns, modular design
| Component | Technology | Purpose |
|---|---|---|
| Frontend | Flutter 3.41+ | Cross-platform UI with Provider state management |
| Backend | Node.js 24.14 (LTS) + Express | RESTful API with automated cleanup scheduler |
| Database | MongoDB + Mongoose | Document storage with intelligent indexing |
| Authentication | JWT + bcrypt | Secure auth with FlutterSecureStorage |
| Notifications | Firebase FCM | Cross-platform push notifications |
| Background Services | WorkManager + BackgroundService | Real-time sync and widget updates |
| Analytics | Flutter Heatmap Calendar | Progressive 39-day activity visualization |
| Document | Description |
|---|---|
| Installation Guide | Complete setup for development & production |
| Architecture | System design, data flow, and technical decisions |
| API Reference | Endpoint documentation with examples |
| Deployment | Self-hosting, VPS, cloud deployment options |
| Troubleshooting | Common issues and solutions |
| Performance | Optimization tips and monitoring |
| Security | Security features and best practices |
We welcome contributions! Whether it's bug fixes, features, or documentation improvements.
- Contributing Guide - Development workflow, coding standards
- Issue Tracker - Report bugs or request features
- Discussions - Ask questions, share ideas
# Fork the repo, then clone your fork
git clone https://github.com/YOUR_USERNAME/momentum.git
# Follow the installation guide
cd momentum && cat docs/INSTALLATION.md
# Create a feature branch
git checkout -b feature/your-feature-name
# Make changes, commit, and push
# Open a Pull Request with a clear description- Own Your Data - Self-hosted, no vendor lock-in
- Purpose-Built - Specifically designed for development teams
- Security First - JWT auth, input validation, secure defaults
- API-First - Everything accessible via REST API
- Scalable - Handles individual users to large teams
- Extensible - Clean architecture for custom integrations
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) with additional terms under section 7.
See the LICENSE file for more details.
Made with ❤️ by Fahim Saki