Skip to content

πŸš€ AI-powered assignment assistant that fetches tasks from Google Classroom, generates smart breakdowns using OpenAI, tracks progress, and sends reminders via Email or WhatsApp. Built with React, Flask, and Electron.

Notifications You must be signed in to change notification settings

SyedShababAkbar/AI-Classroom-Assistant

Repository files navigation

πŸ€– AI Classroom Assistant

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

Screenshot 2025-07-31 130027 Screenshot 2025-07-31 130132 Screenshot 2025-07-31 130109 Screenshot 2025-07-31 130117 Screenshot 2025-07-31 130132 image

🧱 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

  1. Clone the Repository
**git clone https://github.com/yourusername/AI_Classroom_Assistant.git
**cd AI_Classroom_Assistant
  1. Backend Setup (Python + Flask)
cd backend
pip install -r requirements.txt
  1. Frontend Setup (React + Vite)
cd ../frontend
npm install
npm run build  # This creates the dist folder
  1. Run the Flask App
cd ../backend
python app.py

Visit: 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/macOS

Or permanently set it via your system environment variable settings.


βœ‰οΈ Email Notifications (Optional)

If you want to receive deadline reminders via Gmail:

  1. Generate an App Password in your Gmail account.

  2. In email_notifier.py, update:

    • Sender email
    • App password
  3. In config.json, update:

{
  "receiverEmail": "your-email@gmail.com"
}

πŸ’¬ WhatsApp Notifications (Optional)

You can integrate Twilio API for WhatsApp notifications:

Setup Steps:

  1. Create account at https://www.twilio.com/whatsapp

  2. Verify your WhatsApp number.

  3. Get the following:

    • TWILIO_ACCOUNT_SID
    • TWILIO_AUTH_TOKEN
    • TWILIO_WHATSAPP_NUMBER
  4. Create a Python script (e.g., whatsapp_notify.py) using Twilio SDK to send messages.

  5. Call this script when deadlines approach or assignments are updated.


πŸ–₯️ Run as Desktop App (Electron)

You can convert the project into a desktop app:

  1. Install Electron
cd electron-app
npm install
  1. Start App
npm start

Electron will open your app in a native window.

🧼 Clean Reversal

If you want to go back to browser version:

  • Delete electron-app/
  • Revert app.py static 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

Option 2: Docker

  • 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


About

πŸš€ AI-powered assignment assistant that fetches tasks from Google Classroom, generates smart breakdowns using OpenAI, tracks progress, and sends reminders via Email or WhatsApp. Built with React, Flask, and Electron.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published