Skip to content

FahimSaki/Momentum

Repository files navigation

Momentum

Momentum Logo

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 StartInstallationAPI DocsArchitectureContributing


Quick Start

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 run

Need detailed setup? See the Installation Guide

Key Features

For Users

  • 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

For Developers

  • 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

Tech Stack

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

Documentation

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

Contributing

We welcome contributions! Whether it's bug fixes, features, or documentation improvements.

Development Setup

# 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

Why Momentum?

  • 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

License

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

About

Smart daily task manager with dynamic scheduling & seamless team collaboration.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors