A full-stack Student Management System with a beautiful, responsive UI built using Spring Boot, MySQL, and Vanilla JavaScript with Three.js particle effects.
- ✅ Create a student
- ✅ Get all students
- ✅ Get student by ID
- ✅ Update student
- ✅ Delete student
- ✅ Email uniqueness validation
- 🎨 Modern, minimalist black/white theme
- 🌓 Day/Night mode toggle with persistence
- 🔍 Real-time student search (by name, email, or ID)
- 📊 Live statistics dashboard
- ✨ Three.js particle background animation
- 📱 Fully responsive design (mobile-friendly)
- 🚀 Premium Space Grotesk font
- ⚡ Smooth transitions and hover effects
| Layer | Technology |
|---|---|
| Backend | Java, Spring Boot |
| Database | MySQL |
| ORM | Spring Data JPA |
| Frontend | HTML5, CSS3, JavaScript |
| Animation | Three.js (Particles) |
| Build | Maven |
| Testing | Postman |
Stumange/
├── src/
│ ├── main/
│ │ ├── java/SPringStudent/Stumange/
│ │ │ ├── En21.java (Entity)
│ │ │ ├── En21Controller.java (REST Controller)
│ │ │ ├── En21Service.java (Business Logic)
│ │ │ ├── En21Repository.java (JPA Repository)
│ │ │ └── StumangeApplication.java
│ │ └── resources/
│ │ ├── static/
│ │ │ └── index.html (Frontend)
│ │ └── application.properties (ignored)
│ └── test/
├── pom.xml
└── README.md
git clone https://github.com/Sumeet-Y1/student-api-springboot.git
cd student-api-springboot/StumangeCreate application.properties in src/main/resources/:
spring.datasource.url=jdbc:mysql://localhost:3306/studentdb
spring.datasource.username=YOUR_USERNAME
spring.datasource.password=YOUR_PASSWORD
spring.jpa.hibernate.ddl-auto=update
server.port=8080mvn spring-boot:runBackend will start on: http://localhost:8080
Open your browser and navigate to:
http://localhost:8080/index.html
| Method | Endpoint | Description |
|---|---|---|
POST |
/students |
Create a new student |
GET |
/students |
Get all students |
GET |
/students/{id} |
Get student by ID |
PUT |
/students/{id} |
Update student |
DELETE |
/students/{id} |
Delete student |
{
"name": "Sumeet",
"email": "sumeet@example.com",
"age": 17
}| Field | Type | Constraints |
|---|---|---|
id |
Long | Primary Key, Auto |
name |
String | Not Null |
email |
String | Not Null, Unique |
age |
Integer | Not Null |
- Total Students Count - Live count of all students
- Average Age - Automatically calculated
- Monthly Growth - Track new additions
- Real-time filtering as you type
- Search by name, email, or ID
- Works instantly with 100+ students
- Dark mode (default)
- Light mode
- Preference saved in browser
- Mobile-first approach
- Works perfectly on phones, tablets, and desktops
- Adaptive layouts and touch-friendly buttons
- Email Validation: Frontend prevents duplicate emails before submission
- CORS: If running frontend separately, enable CORS in your controller:
@CrossOrigin(origins = "*")
@RestController
public class En21Controller {}- MySQL: Ensure MySQL server is running before starting the application
- Credentials:
application.propertiesis gitignored for security
- User authentication & authorization
- Export students to CSV/Excel
- Batch upload via file
- Advanced filtering and sorting
- Student performance tracking
- Email notifications
Sumeet Yadav
Java Backend Developer | Building real-world projects 🚀
Currently mastering: Spring Boot, DSA, Full-Stack Development
This project is open source and available under the MIT License.
- Spring Boot Documentation
- Three.js Community
- Space Grotesk Font by Florian Karsten
⭐ If you find this project helpful, give it a star! ⭐