Skip to content

smothkd54/Lab_2-enny

Repository files navigation

🚀 Project Enny --- Full‑Stack Student Management System

<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.


📑 Table of Contents


🎯 Features

<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>

🏗️ Project Structure

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

🚀 Getting Started

Prerequisites

  • Java 17+
  • Gradle 8.5+
  • Modern browser

Run with Gradle Wrapper

./gradlew bootRun
chmod +x gradlew

Build & Run JAR

./gradlew clean build
java -jar build/libs/enny-0.0.1-SNAPSHOT.jar

Access URLs

Component URL


Web App http://localhost:8080 REST API http://localhost:8080/api/students H2 Console http://localhost:8080/h2-console


📡 API Documentation

Base URL

/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

Student Schema

{
  "id": 1,
  "name": "John Doe",
  "department": "MSD",
  "sex": "M",
  "dateCreated": "2024-01-28",
  "lastUpdated": "2024-01-28T10:30:00Z"
}

🖥️ Web Interface Guide

<details>
<summary>

<strong>{=html}Managing Students</strong>{=html}

</summary>
  • Add students via form
  • Edit in place
  • Confirm deletions
  • Instant table refresh
</details>

🗄️ Database

H2 Console

jdbc:h2:mem:ennyDB
User: sa
Password: (empty)

Schema

CREATE TABLE students (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255),
  department VARCHAR(255),
  sex VARCHAR(1),
  date_created DATE,
  last_updated TIMESTAMP
);

⚙️ Configuration

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

🧪 Testing

./gradlew test

🚀 Deployment

<details>
<summary>

<strong>{=html}Production Considerations</strong>{=html}

</summary>
  • Replace H2 with PostgreSQL
  • Add Spring Security
  • Enable HTTPS
  • Add monitoring (Actuator)
</details>

📱 Technology Stack

Backend

  • Spring Boot
  • Kotlin
  • Spring Data JPA
  • H2 Database

Frontend

  • HTML5
  • CSS3
  • Vanilla JavaScript
  • REST API

🤝 Contributing

git checkout -b feature/amazing-feature
git commit -m "Add amazing feature"
git push origin feature/amazing-feature

Open a Pull Request 🚀


📄 License

MIT License © 2026 Project Enny


📞 Support


<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

About

Student Management System Built with Spring Boot + Kotlin and a modern single‑page web interface supporting real‑time CRUD operations.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors