A smart desktop dashboard that helps students stay on top of their assignments! This app automatically fetches assignments from Google Classroom, generates AI-based guidance using ChatGPT, and tracks progress via an elegant UI. Built with React + Flask + Electron.
π Features
- π₯ Automatically fetch assignments from Google Classroom
- βοΈ Generates detailed task breakdown using ChatGPT
- π View assignment details, attachments, and AI responses
- π’ Track progress with pending/completed toggles
- π Email and WhatsApp notifications for deadlines
- π₯οΈ Runs as a desktop app via Electron (no browser needed!)
πΈ Screenshots
π§± Tech Stack
- Frontend: React + Vite + Tailwind CSS
- Backend: Flask + Python
- Desktop Shell: Electron.js
- AI Engine: OpenAI GPT-4 API
- Notifications: Gmail SMTP & WhatsApp API (optional)
π οΈ Local Installation
- Clone the Repository
**git clone https://github.com/yourusername/AI_Classroom_Assistant.git
**cd AI_Classroom_Assistant- Backend Setup (Python + Flask)
cd backend
pip install -r requirements.txt- Frontend Setup (React + Vite)
cd ../frontend
npm install
npm run build # This creates the dist folder- Run the Flask App
cd ../backend
python app.pyVisit: http://127.0.0.1:5000/
π¬ OpenAI Integration
This app uses OpenAI's GPT to generate assignment guidance.
π Add your OpenAI Key
Instead of hardcoding, we read it from system variables. Set it up:
set OPENAI_API_KEY=your-key-here # For Windows
export OPENAI_API_KEY=your-key-here # For Linux/macOSOr permanently set it via your system environment variable settings.
βοΈ Email Notifications (Optional)
If you want to receive deadline reminders via Gmail:
-
Generate an App Password in your Gmail account.
-
In
email_notifier.py, update:- Sender email
- App password
-
In
config.json, update:
{
"receiverEmail": "your-email@gmail.com"
}π¬ WhatsApp Notifications (Optional)
You can integrate Twilio API for WhatsApp notifications:
Setup Steps:
-
Create account at https://www.twilio.com/whatsapp
-
Verify your WhatsApp number.
-
Get the following:
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_WHATSAPP_NUMBER
-
Create a Python script (e.g.,
whatsapp_notify.py) using Twilio SDK to send messages. -
Call this script when deadlines approach or assignments are updated.
π₯οΈ Run as Desktop App (Electron)
You can convert the project into a desktop app:
- Install Electron
cd electron-app
npm install- Start App
npm startElectron will open your app in a native window.
π§Ό Clean Reversal
If you want to go back to browser version:
- Delete
electron-app/ - Revert
app.pystatic folder to:static_folder="../frontend/dist"
π Deployment (Optional)
You can host the app online:
Option 1: Flask + Vercel/Render
- Host Flask backend on Render
- Host
dist/folder via Netlify/Vercel
- Containerize Flask + Frontend in one image
- Deploy to any VPS or cloud provider
π₯ YouTube Setup Tutorial (Coming Soon)
Weβll add a full step-by-step YouTube video to:
- Setup Google Classroom API
- Generate your
credentials.json - Setup OpenAI key & run the app
- Build and test notifications
π Video Link: https://youtube.com/@automate_with_shabab
π Folder Structure
AI_Classroom_Assistant/
βββ backend/ # Flask API + logic
β βββ app.py # Main backend app
β βββ config.json # Receiver email
βββ frontend/ # React + Tailwind UI
β βββ dist/ # Built frontend for Flask
βββ electron-app/ # Optional: Desktop version
βββ Assignments/ # Assignment JSONs
βββ Generated_Responses/ # AI-generated content
πββοΈ Contribution
If you'd like to improve this project, feel free to fork and submit pull requests.
π License
MIT License β Free for personal or academic use.
π¨βπ» Author
Created by Shabab Akbar | 2025
π£ Like this project?
If you found this project helpful or inspiring, support it by following me on social media π
π Instagram
π YouTube
π Facebook