https://github.com/vishwaravi/study-assistant
An intelligent study platform that helps students organize their learning materials, generate practice questions, create summaries of notes, and schedule study sessions optimized for maximum retention — powered by AI.
https://github.com/vishwaravi/study-assistant
firebase full-stack gemini-api jwt mysql react rest-api spring-boot spring-security springboot vite
Last synced: 9 days ago
JSON representation
An intelligent study platform that helps students organize their learning materials, generate practice questions, create summaries of notes, and schedule study sessions optimized for maximum retention — powered by AI.
- Host: GitHub
- URL: https://github.com/vishwaravi/study-assistant
- Owner: vishwaravi
- License: mit
- Created: 2025-04-23T17:08:53.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-03T17:55:56.000Z (11 months ago)
- Last Synced: 2025-10-23T08:03:29.592Z (8 months ago)
- Topics: firebase, full-stack, gemini-api, jwt, mysql, react, rest-api, spring-boot, spring-security, springboot, vite
- Language: JavaScript
- Homepage:
- Size: 42.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📚 AI-Powered Study Assistant
An intelligent study platform that helps students organize their learning materials, generate practice questions, create summaries of notes, and schedule study sessions optimized for maximum retention — powered by AI.
---
## 🚀 Tech Stack
- **Frontend**: React.js + Vite, Tailwind CSS
- **Backend**: Spring Boot (v 3.4.5), Java (JDK 21), Spring Security, JWT Authentication
- **Database**: Maria DB (v 11.7.2)
- **AI Integration**: Gemini 2.0 Flash (for Summarization, Question Generation, Concept Explanation)
- **Other Tools**: SupaBase Storage (Storing materials), Post Man.
---
## ✨ Key Features
- **User Authentication**
- Signup/Login with JWT tokens
- Secure protected routes
- **Study Material Management**
- Upload and organize notes
- Tag materials by subject and topics.
- **AI Study Tools**
- Generate practice questions from uploaded notes
- Summarize long lecture notes
- Explain complex concepts in simpler terms
- Generate Flash Cards
- **Study Scheduler**
- study session planning and Tracking.
- **Progress Tracking**
- View completed sessions and knowledge gaps
- **Responsive UI**
- Clean, distraction-free interface
- Mobile-friendly
---
## Architecture Diagarm

---
## Database Schema

---
## 🛠️ Project Setup
### Backend (Spring Boot)
```bash
# Clone the repository
git clone https://github.com/yourusername/study-assistant.git
cd study-assistant/backend
# Build and run the Spring Boot application
./mvnw spring-boot:run
```
> Make sure you have DB running locally or update `application.properties` or `.env` to point to your cloud DB.
### Frontend (React)
```bash
# Navigate to frontend folder
cd study-assistant/frontend
# Install dependencies
npm install
# Run the application
npm run dev
```
---
## 🔑 Environment Variables
Copy the `.env.example` files and rename them to `.env`, then fill in your actual values.
### Backend Environment Variables
Copy `backend/.env.example` to `backend/.env` and update:
```bash
DB_URL="jdbc:mariadb://:/"
DB_USERNAME=""
DB_PASSWORD=""
JWT_SECRET=""
CORS_ORIGIN=""
```
>note : if you are using other DB change it accordingly.
if you are using MySQL add a Mysql Dialect
### Frontend Environment Variables
Copy `frontend/.env.example` to `frontend/.env` and update:
```bash
# Supabase Configuration
VITE_SUPABASE_URL=""
VITE_SUPABASE_ANON_KEY=""
VITE_SUPABASE_BUCKET_NAME=""
VITE_GEMINI_API_KEY=""
VITE_BACKEND_BASE_URL=""
```
### Supabase Storage Setup
- Create a new bucket in your Supabase project (e.g., "study-materials")
- Make it public for easy file access
- Set up access policies for authenticated users to upload files
- Add the bucket name to your frontend `.env` file
---
## 🤖 AI Tools Used
- **GEMINI 2.0 Flash**
- Summarization of notes
- Question generation from materials
- Concept simplification
- Flash Card Generation
---
## 📸 Demo Screenshots
#### Login

---
#### Home

---
#### Flashcards

---
## 📄 License
This project is licensed under the [MIT License](LICENSE).
---
# 🚀 Happy Studying!