This repository contains a full-stack application for managing student marksheets.
- Frontend: React 18, Vite, PrimeReact, Bootstrap, Axios, SheetJS
- Backend: Spring Boot 3.1+, Java 17, Spring Data JPA, Validation, Lombok, Springdoc OpenAPI, MySQL, Apache POI
- Storage: Local disk under
Marksheets/{rollNumber} - Database: MySQL (local installation)
- Java 17+
- Maven 3.6+
- Node.js 16+
- npm -- MySQL Server (install locally)
- Install and start MySQL Server.
- In a MySQL client, execute:
CREATE DATABASE students;
- Open
backend/src/main/resources/application.ymland updatespring.datasourceusername/password to match your MySQL setup.
- Build and run the Spring Boot application:
cd backend mvn clean install mvn spring-boot:run - The API base URL is
http://localhost:8080/api/v1. - Swagger/OpenAPI UI: http://localhost:8080/swagger-ui.html
- In the project root, create a
.envfile containing:VITE_API_BASE_URL=http://localhost:8080/api/v1
- Install dependencies and start the Vite dev server:
npm install npm run dev
- Open the app: http://localhost:5173
POST /studentsCreate a new studentGET /studentsList with pagination, sorting, and filteringPUT /students/{id}Update an existing studentDELETE /students/{id}Delete a studentPOST /students/bulk/uploadBulk upload students via Excel
GET /students/templateDownload blank student template (Excel)GET /students/marksheet/templateDownload marksheet template (subjects Excel)POST /students/{id}/marksheet/uploadUpload filled marksheet for a studentGET /students/{id}/marksheet/downloadDownload processed marksheet for a studentPOST /students/{id}/marks/uploadUpload simple marks list for a studentGET /students/marksheets/{rollNumber}/downloadLegacy: download stored marksheet
Import postman_collection.json to test all endpoints.