A smart study planner that turns your course syllabi into organized, actionable study plans. We use AI to help you stay on top of your coursework without the usual planning headache.
- AI Task Generation: Drop in your syllabus (PDF, Word, or just paste the text) and get a structured study plan in seconds
- Google Sign-In: Quick and secure login with your Google account
- Live Sync: Your tasks update instantly across all your devices thanks to Firebase
- Course Organization: Keep track of multiple courses with automatic progress tracking
- Calendar Integration: Export tasks to Google Calendar so everything's in one place
- Progress Tracking: Check off tasks as you complete them and watch your progress grow
Your Phone/Tablet Cloud Services │ │ ├──► Firebase ────────────┐ │ │ (Login & Storage) │ │ │ │ │ └──► Node.js Server ──────┼──┘ (Processes syllabi) │ │ ▼ OpenAI GPT-4 (Generates tasks)
What's Stored Where
All our data lives in Firebase Firestore:
users/ {your-user-id}/ courses/ {course-id}/ - name, courseCode, instructor - task count, progress percentage tasks/ {task-id}/ - title, description - due date, priority, completion status - estimated hours
Tech Stack
Mobile App (Flutter)
- Flutter 3.38.1 (iOS, Android, Web)
- Firebase (authentication, database)
- Material Design 3
Backend (Node.js)
- Express server (file uploads, AI requests)
- OpenAI GPT-4o-mini (task generation)
- Supports PDF, Word, and plain text
Getting Started
What You'll Need
- Flutter SDK (version 3.0+)
- Node.js (version 14+)
- A Firebase project (free tier works fine)
- OpenAI API key
- Android Studio or VS Code
Backend Setup
- Go to the backend folder:
cd ai_study_planner-
Install packages:
npm install
-
Set up your environment: Create a
.envfile in the backend folder:OPENAI_API_KEY=your_key_here PORT=3000
-
Add Firebase credentials:
- Head to Firebase Console → Project Settings → Service Accounts
- Click "Generate new private key"
- Save the file as
firebase-service-account.jsonin the backend folder - Important: Don't commit this file to git!
-
Start the server:
npm start
You should see it running at
http://localhost:3000
-
Go to the app folder:
-
Install dependencies:
flutter pub get
-
Add Firebase config files:
- For Android: Add
google-services.jsontoandroid/app/ - For iOS: Add
GoogleService-Info.plisttoios/Runner/
- For Android: Add
-
Run the app:
flutter run
- Sign in with your Google account
- Tap "Planner" in the bottom navigation
- Upload your syllabus or paste the text
- Hit "Generate Study Plan"
- Watch as AI creates your tasks
- Check them off as you complete them
- Export to Google Calendar if you want
Backend won't start?
- Check that your
.envfile has the OpenAI API key - Make sure
firebase-service-account.jsonis in the right place - Try a different port if 3000 is taken
Flutter errors?
- Run
flutter clean && flutter pub get - Make sure your Firebase files are in the right folders
- Check
flutter doctorfor any setup issues
Tasks not generating?
- Is the backend server running?
- Check if your OpenAI API key is valid and has credits
- For Android emulator, use
10.0.2.2:3000instead oflocalhost:3000
- Never commit your
.envfile - Keep
firebase-service-account.jsonprivate - Add both to your
.gitignore - Your OpenAI API key should stay secret
- Web version has some Firebase auth quirks
- Windows builds need Visual Studio with C++ tools
- Best experience is on Android/iOS
Educational project - feel free to learn from it!
Check out these resources:
Built with Flutter, Firebase, and OpenAI