Intelligent Schedule Manager
AI-powered mobile-first app for smart task scheduling, habit tracking, and productivity management.
Layer
Technology
Frontend
Flutter (Dart)
Backend
Node.js + Express
Database
Firebase Firestore
Auth
JWT + bcrypt
AI Engine
Python (Flask)
offtrack/
├── lib/ # Flutter app
│ ├── main.dart
│ ├── models/ # Data models (User, Task, Habit, Schedule, Notification, Preference)
│ ├── screens/ # 11 app screens
│ ├── services/ # API & Auth services
│ └── theme/ # App dark theme
├── backend/ # Node.js API
│ ├── server.js # Express server
│ ├── config/ # Firebase config
│ ├── controllers/ # Route handlers
│ ├── middleware/ # JWT auth & validation
│ ├── routes/ # API routes
│ └── .env # Environment variables
├── ai_engine/ # Python AI scheduler
│ ├── app.py # Flask server
│ ├── scheduler.py # Scheduling algorithm
│ └── requirements.txt
Flutter SDK (3.11+)
Node.js (18+)
Python (3.9+)
Firebase project with Firestore enabled
cd backend
npm install
# Edit .env with your Firebase project ID and a strong JWT_SECRET
npm start
# Server runs on http://localhost:5000
cd ai_engine
pip install -r requirements.txt
python app.py
# AI Engine runs on http://localhost:5001
# From project root (offtrack/)
flutter pub get
flutter run
Note: For Android emulator, the API uses 10.0.2.2:5000. For web/iOS, change baseUrl in lib/services/api_service.dart to localhost:5000.
Environment Variables (backend/.env)
Variable
Description
Default
PORT
Server port
5000
JWT_SECRET
JWT signing secret
dev_secret_key
FIREBASE_PROJECT_ID
Firebase project ID
intelligent-schedule-manager
AI_ENGINE_URL
AI engine URL
http://localhost:5001
Method
Endpoint
Auth
Description
POST
/auth/register
No
Register user
POST
/auth/login
No
Login
GET
/tasks
Yes
List tasks
POST
/tasks
Yes
Create task
PUT
/tasks/:id
Yes
Update task
DELETE
/tasks/:id
Yes
Delete task
POST
/schedule/generate
Yes
AI-generate schedule
GET
/schedule
Yes
Get schedule
POST
/habits
Yes
Create habit
PUT
/habits/:id
Yes
Update/complete habit
DELETE
/habits/:id
Yes
Delete habit
GET
/notifications
Yes
List notifications
POST
/notifications
Yes
Create notification
PUT
/notifications/:id/mark-read
Yes
Mark as read
DELETE
/notifications/:id
Yes
Delete notification
POST
/calendar/sync
Yes
Sync to Google Calendar
GET
/preferences
Yes
Get preferences
PUT
/preferences
Yes
Update preferences
Splash – Animated loading + auth check
Login – Email/password auth
Register – Name, email, password signup
Dashboard – Today's schedule, tasks, habits, quick actions
Task Management – CRUD tasks with priority/deadline
Schedule – AI-generated timeline view
Habit Tracking – Daily habits with streaks
Calendar Sync – Google Calendar integration
Notifications – Reminders management
Help & Support – FAQ + contact
Settings – Preferences, logout, about, terms