MarketPulse is a modern, full-stack enterprise mobile application and REST API backend designed for sales tracking, client management, product inventory, order processing, and task management with complete offline-first capability.
MarketPulse is built using clean architecture principles across both backend and frontend:
MarketPulse/
├── backend/ # RESTful Dart Frog API Server
│ ├── bin/ # Server entrypoint & DB seed scripts
│ ├── lib/ # Database, JWT auth, models, services
│ ├── routes/ # API endpoints (Auth, Clients, Products, Orders, Tasks, Dashboard)
│ └── test/ # Comprehensive backend unit & route tests (80/80 passing)
│
├── mobile_app/ # Flutter Cross-Platform Client
│ ├── lib/
│ │ ├── core/ # Router, DB (SQLite), Sync Engine, DI (GetIt)
│ │ └── features/ # Auth, Clients, Products, Orders, Tasks, Dashboard
│ └── pubspec.yaml
│
└── docker-compose.yaml # Local Infrastructure (PostgreSQL 16 & Redis 7)
- 🔒 Secure JWT Authentication: Access and refresh token pair rotation with Redis token blacklisting.
- 📱 Unified Clean Architecture Mobile UI: Responsive Flutter mobile interface with real-time UI updates across detail and list screens.
- 📴 Complete Offline-First Support:
- Offline Authentication: Login, register, and session persistence when offline using encrypted storage.
- State Restoration:
HydratedBlocrestores application states instantly on startup without loading spinners. - Relational Storage: SQLite (
sqflite) caches structured data locally on device disk. - Auto Sync Engine:
SyncServicequeues offline mutations and automatically syncs changes to PostgreSQL when network connectivity is restored.
- 📈 Real-Time Dashboard: Key performance indicators, total revenue, client metrics, low-stock warnings, and order summaries.
- Flutter SDK (
>= 3.2.0) - Dart SDK (
>= 3.0.0) - Docker Desktop
Run Docker Compose from the project root to spin up database and cache services:
docker-compose up -dNavigate to the backend/ directory:
cd backend
dart pub getSeed initial sample data (Users, Clients, Products, Orders, Tasks) into PostgreSQL:
dart bin/seed.dartStart the backend API server:
dart_frog devThe API server will run at http://localhost:8080.
Run tests:
dart testNavigate to the mobile_app/ directory:
cd mobile_app
flutter pub getRun static analysis:
flutter analyzeLaunch the application:
flutter run| Layer | Technology |
|---|---|
| Mobile App | Flutter, BLoC / HydratedBloc, GoRouter, sqflite, FlutterSecureStorage, Dio |
| Backend API | Dart Frog, Dart HTTP |
| Database | PostgreSQL 16 |
| Caching / Sessions | Redis 7 |
| Architecture | Clean Architecture, Feature-first, Repository Pattern |
This project is proprietary and confidential. All rights reserved.