<p align="center">
<img src="https://img.shields.io/badge/Spring%20Boot-4.0.1-6DB33F?logo=springboot" />{=html}
<img src="https://img.shields.io/badge/Kotlin-2.2.21-7F52FF?logo=kotlin" />{=html}
<img src="https://img.shields.io/badge/H2-Database-blue?logo=h2" />{=html}
<img src="https://img.shields.io/badge/REST-API-orange" />{=html}
<img src="https://img.shields.io/badge/Frontend-HTML%2FCSS%2FJS-yellow?logo=javascript" />{=html}
<img src="https://img.shields.io/badge/License-MIT-blue.svg" />{=html}
<img src="https://img.shields.io/badge/Status-Active-brightgreen" />{=html}
</p>
A production‑ready full‑stack Student Management System built with Spring Boot + Kotlin and a modern single‑page web interface supporting real‑time CRUD operations.
- Features
- Project Structure
- Getting Started
- API Documentation
- Web Interface Guide
- Database
- Configuration
- Testing
- Deployment
- Technology Stack
- Contributing
- License
- Support
<details>
<summary>
<strong>{=html}Backend --- Spring Boot REST API</strong>{=html}
</summary>
- Full CRUD operations
- Batch student creation
- Filtering by department and sex
- RESTful architecture
- H2 in‑memory database
- JPA / Hibernate ORM
- CORS enabled
</details>
<details>
<summary>
<strong>{=html}Frontend --- Modern SPA</strong>{=html}
</summary>
- Dark theme UI
- Live updates (no reloads)
- Client‑side validation
- Responsive design
- Confirmation dialogs
- Success & error notifications
</details>
enny/
├── src/main/kotlin/com/enny/enny/
│ ├── EnnyApplication.kt
│ ├── model/Student.kt
│ ├── controller/StudentController.kt
│ └── repository/StudentRepository.kt
├── src/main/resources/
│ ├── static/index.html
│ ├── static/future.html
│ ├── static/app.js
│ └── application.properties
├── api-test.http
├── build.gradle.kts
├── HELP.md
└── README.md
- Java 17+
- Gradle 8.5+
- Modern browser
./gradlew bootRunchmod +x gradlew./gradlew clean build
java -jar build/libs/enny-0.0.1-SNAPSHOT.jarComponent URL
Web App http://localhost:8080 REST API http://localhost:8080/api/students H2 Console http://localhost:8080/h2-console
/api/students
Method Endpoint Description
GET / Get all students GET /{id} Get by ID POST / Create student POST /batch Batch create PUT /{id} Update DELETE /{id} Delete
{
"id": 1,
"name": "John Doe",
"department": "MSD",
"sex": "M",
"dateCreated": "2024-01-28",
"lastUpdated": "2024-01-28T10:30:00Z"
}<details>
<summary>
<strong>{=html}Managing Students</strong>{=html}
</summary>
- Add students via form
- Edit in place
- Confirm deletions
- Instant table refresh
</details>
jdbc:h2:mem:ennyDB
User: sa
Password: (empty)
CREATE TABLE students (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
department VARCHAR(255),
sex VARCHAR(1),
date_created DATE,
last_updated TIMESTAMP
);spring.application.name=enny
spring.datasource.url=jdbc:h2:mem:ennyDB
spring.jpa.hibernate.ddl-auto=update
spring.h2.console.enabled=true
server.port=8080./gradlew test<details>
<summary>
<strong>{=html}Production Considerations</strong>{=html}
</summary>
- Replace H2 with PostgreSQL
- Add Spring Security
- Enable HTTPS
- Add monitoring (Actuator)
</details>
- Spring Boot
- Kotlin
- Spring Data JPA
- H2 Database
- HTML5
- CSS3
- Vanilla JavaScript
- REST API
git checkout -b feature/amazing-feature
git commit -m "Add amazing feature"
git push origin feature/amazing-featureOpen a Pull Request 🚀
MIT License © 2026 Project Enny
<p align="center">
<strong>{=html}🚀 Ready to Manage
Students</strong>{=html}<br/>{=html} Visit
<a href="http://localhost:8080">{=html}http://localhost:8080``{=html}
</p>
Last updated: January 2026