A hackathon project that uses AI to organize student assignments from Gmail, categorize them, estimate time, and provide focus mode.
- Google OAuth authentication
- Automatic assignment extraction from user's Gmail, specifically Google Classroom emails
- AI-based categorization (field visit, report, research, coding, presentation)
- Time estimation
- Dashboard with progress tracking
- Focus mode timer
- PDF attachment detection for Classroom assignments
- Backend: Node.js, Express, MongoDB, Google Gemini AI, Gmail API, Passport.js
- Frontend: React, Vite, Axios
- Clone the repository
- Set up MongoDB (local or Atlas)
- Configure environment variables in backend/.env
- Install dependencies for backend and frontend
- Run backend:
npm run devin backend/ - Run frontend:
npm run devin frontend/
Create backend/.env with:
MONGO_URI=mongodb://localhost:27017/ai-assignment-organizer
PORT=5000
GEMINI_API_KEY=YOUR_GEMINI_API_KEY
GMAIL_CLIENT_ID=YOUR_GMAIL_CLIENT_ID
GMAIL_CLIENT_SECRET=YOUR_GMAIL_CLIENT_SECRET
GMAIL_REDIRECT_URI=http://localhost:5000/api/auth/google/callback
- Go to Google Cloud Console
- Create a project
- Enable Gmail API
- Create OAuth 2.0 credentials
- Add authorized redirect URIs:
http://localhost:5000/api/auth/google/callback - Copy Client ID and Secret to .env
- Login with Google
- Fetch assignments from Gmail
- Add assignments manually
- AI analyzes and categorizes assignments
- Start focus mode for timed work sessions /home/vaishnavsk/ai-assignment-organizer/README.md