An open API service indexing awesome lists of open source software.

https://github.com/adityajunwal/teachmate

The is the main Hosted Project!
https://github.com/adityajunwal/teachmate

fastapi frontend gemini-api reactjs

Last synced: 4 months ago
JSON representation

The is the main Hosted Project!

Awesome Lists containing this project

README

          

# TeachMate – AI-Powered Teaching Assistant πŸš€
_Revolutionizing classrooms with AI-driven automation for teachers._

---

## πŸ“Œ Project Overview

**TeachMate** is an AI-powered assistant designed to automate and simplify tasks for teachers, such as grading, attendance tracking, student performance analysis, and classroom announcements.

---

## πŸ”Ή Key Features

- βœ… **Automated Attendance** (Face Recognition, QR, Voice Commands)
- βœ… **AI-Powered Grading** (Handwritten & Typed Answer Checking)
- βœ… **Class Performance Dashboard** (Insights & Reports on Student Progress)
- βœ… **AI-Generated Announcements** (WhatsApp, Email, In-App Notifications)
- βœ… **Assignment & Test Management** (Auto-Grading & Scheduling)
- βœ… **AI-Suggested Teaching Actions** (Personalized Student Support)

---

## πŸ— Tech Stack

- **Frontend:** React.js, Tailwind CSS
- **Backend:** FastAPI / Flask
- **Database:** PostgreSQL
- **AI Services:**
- Gemini API (Grading, Performance Insights)
- Google Vision API (OCR for Handwritten Answer Checking)
- Face Recognition API (Automated Attendance)
- **Deployment:** Vercel (Frontend), Render (Backend)

---

## πŸ“ Project Structure

```
TeachMate/
β”‚
β”œβ”€β”€ frontend/ # React.js frontend
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ components/ # Reusable UI components
β”‚ β”‚ β”œβ”€β”€ pages/ # Main app pages (Dashboard, Attendance, Assignments)
β”‚ β”‚ β”œβ”€β”€ api/ # API calls (Backend integration)
β”‚ β”œβ”€β”€ public/ # Static assets
β”‚ β”œβ”€β”€ package.json # Frontend dependencies
β”‚ └── .env # Frontend environment variables
β”‚
β”œβ”€β”€ backend/ # FastAPI/Flask backend
β”‚ β”œβ”€β”€ models/ # Database models (Teachers, Students, Attendance, Grades)
β”‚ β”œβ”€β”€ routes/ # API routes (Attendance, Grading, Announcements)
β”‚ β”œβ”€β”€ services/ # AI integrations (Gemini API, Face Recognition, OCR)
β”‚ β”œβ”€β”€ main.py # Backend entry point
β”‚ β”œβ”€β”€ requirements.txt # Backend dependencies
β”‚ └── .env # Backend environment variables
β”‚
β”œβ”€β”€ docs/ # Documentation (API, Setup Guide)
β”œβ”€β”€ README.md # Project Overview
β”œβ”€β”€ .gitignore # Ignored files
└── LICENSE # Project license
```

---

## πŸš€ Getting Started

### πŸ“Œ Prerequisites

- Node.js (Frontend)
- Python 3.9+ (Backend)
- PostgreSQL (Database)

---

### πŸ“Œ Installation Steps

#### 1️⃣ Clone the Repo

```bash
git clone https://github.com/your-username/TeachMate.git
cd TeachMate
```

#### 2️⃣ Set Up Backend

```bash
cd backend
pip install -r requirements.txt
uvicorn main:app --reload
```

#### 3️⃣ Set Up Frontend

```bash
cd frontend
npm install
npm start
```

---

## πŸ“Œ User Manual: How to Use TeachMate

### πŸ”Ή Login & Dashboard Access

- Open the TeachMate web application.
- Login using your teacher credentials.
- Dashboard shows:
- Attendance Summary πŸ“…
- Student Performance Insights πŸ“Š
- Assignments & Test Status πŸ“
- AI-Suggested Teaching Actions πŸ€–

---

### πŸ”Ή Taking Attendance

> **Methods Supported:** Face Recognition / QR Code / Voice Commands

- Navigate to the **Attendance Section**
- Choose your method:
- **Face Recognition** – Camera detects and marks attendance
- **QR Code** – Students scan their codes
- **Voice Command** – e.g., "Mark attendance for Class X"
- Click **Submit**

---

### πŸ”Ή AI-Powered Grading

- Go to **Assignments Section**
- Upload handwritten or typed answers
- Grading is done via Gemini API
- Reports appear in **Student Reports Section**

---

### πŸ”Ή Sending Announcements

- Navigate to **Announcements Section**
- Type or dictate your message
- Choose delivery: WhatsApp, Email, or In-App
- Click **Send**

---

### πŸ”Ή Performance Reports

- Open **Performance Dashboard**
- See individual & class-wise analytics
- AI suggests personalized improvements

---

## πŸ“Œ Key API Endpoints

| Method | Endpoint | Description |
|--------|-------------------------------|--------------------------------------------------|
| POST | `/api/attendance/mark` | Mark attendance via Face Recognition/QR Code |
| POST | `/api/assignments/grade` | AI grading of assignments/tests |
| POST | `/api/announcements/send` | Send announcements via WhatsApp/Email |
| GET | `/api/dashboard/performance` | Get student performance analytics |

---

## 🀝 Contributing

1. Fork the repo
2. Create your branch: `feature-xyz`
3. Commit changes: `git commit -m "Added feature"`
4. Push and open a **Pull Request**

---

## πŸ“œ License

**MIT License** – Open-source & free to use!

---

## 🎯 Why TeachMate?

- βœ… **Saves Teachers’ Time** – Automates attendance, grading & announcements ⏳
- βœ… **Improves Student Engagement** – Personalized AI teaching πŸ“š
- βœ… **AI-Driven Insights** – Data-backed teaching decisions πŸ“Š