Sacrified sem exams for this project hope it worth it
A REST API for academic management built with Spring Boot. Helps students organize subjects, track chapter progress, and manage study resources.
Status: Backend complete ✅ | Frontend in progress 🚧
- JWT-based authentication (register/login)
- Subject management with exam dates
- Chapter tracking with progress status
- Multi-format resource attachments (PDFs, videos, links, notes)
- Secure user-specific data isolation
Backend: Java 17, Spring Boot 3.2.0, Spring Security, MySQL
Auth: JWT (JJWT), BCrypt
Build: Maven
1. Clone & Setup Database
git clone https://github.com/shravyataluka-codes/acadmate.git
cd acadmate
mysql -u root -p CREATE DATABASE acadmate;
**2. Configure `application.properties`**
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/acadmate
spring.datasource.username=YOUR_USERNAME
spring.datasource.password=YOUR_PASSWORD
3. Run
mvn spring-boot:runServer runs on http://localhost:9090
POST /api/auth/register- Register userPOST /api/auth/login- Login (returns JWT)
POST /api/subjects/user/{userId}- Create subjectGET /api/subjects/user/{userId}- Get subjectsPOST /api/chapters/subject/{subjectId}- Create chapterGET /api/chapters/subject/{subjectId}- Get chaptersPOST /api/resources/chapter/{chapterId}- Add resourceGET /api/resources/chapter/{chapterId}- Get resources
1. Register
POST http://localhost:9090/api/auth/register
Content-Type: application/json
{
"username": "john",
"email": "john@test.com",
"password": "password123"
}2. Login
POST http://localhost:9090/api/auth/login
Content-Type: application/json
{
"username": "john",
"password": "password123"
}
# Returns: {"token": "eyJhbGc...", "userId": 1}3. Create Subject (use token)
POST http://localhost:9090/api/subjects/user/1
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"subjectName": "Mathematics",
"semester": "Spring 2025",
"examDate": "2025-05-15"
}Controller → Service → Repository → MySQL
↓
DTO (secure data transfer)
↓
JWT Filter (authentication)
Key Design:
- Layered architecture for clean separation
- DTO pattern prevents password exposure
- HikariCP connection pooling
users → subjects → chapters → resources
↓ ↓ ↓ ↓
JWT exam_date progress links/files
Current: Backend API ✅
Next:
- React frontend
- Deployment
- ML study scheduler
Shravya Taluka - 2nd Year CSE Student
Building this to learn full-stack + ML development
⭐ Star this repo if you find it useful!