A full-stack document management web application built with React.js (frontend), Spring Boot (backend REST API), and MySQL (local database). Users can securely upload, view, and manage their digital documents in one place — no third-party storage, no complexity.
🎥 Demo Video: Watch Demo
- Upload and securely store digital documents
- View and manage all uploaded documents
- Seamless page navigation via React Router
- Fast API communication using Axios
- Clean, responsive user interface
- Dynamic rendering with React state management
- Frontend: React.js, React Router DOM, Axios, CSS
- Backend: Spring Boot, REST APIs
- Database: MySQL (local)
- Testing: Jest, React Testing Library
digital-locker-system/
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Home.jsx
│ │ │ ├── UploadDocument.jsx
│ │ │ └── DocumentList.jsx
│ │ ├── App.js
│ │ └── index.js
│ └── package.json
├── backend/
│ └── src/main/java/
│ ├── Controller/
│ ├── Service/
│ ├── Entity/
│ └── Repository/
└── README.md
CREATE DATABASE digital_locker_db;Update backend/src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/digital_locker_db
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=updatecd backend
mvn spring-boot:runBackend runs at: http://localhost:8080
cd frontend
npm install
npm startFrontend runs at: http://localhost:3000
- JWT Authentication & Role-Based Access Control
- Document download and deletion from UI
- File type validation and size limits
- Cloud storage integration (AWS S3 / Firebase)
- Docker containerization for easy deployment
- Global error handling and input validation
This project is licensed under the MIT License.