SmartDMS is a backend-focused Document Management System built using Java Spring Boot and SQL Server. It helps organizations upload, categorize, search, download, review, approve, reject, and audit documents securely.
Organizations handle many documents such as invoices, contracts, certificates, employee records, and reports. Manual document handling can lead to duplication, data loss, unauthorized access, and approval delays.
SmartDMS solves this problem by providing a centralized backend system for document storage, approval workflow, smart categorization, search, filtering, and audit tracking.
- User registration for MVP testing
- Role-based users: Admin, Manager, Employee
- Upload and download documents
- Auto-categorize documents based on title keywords
- Search documents by title
- Filter documents by category and status
- Submit documents for review
- Approve or reject documents
- Audit log tracking for upload, download, approval, rejection, and review actions
- Swagger API documentation
- Java
- Spring Boot
- Spring Data JPA
- Spring Security
- SQL Server
- Swagger / OpenAPI
- Maven
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/users/register |
Register a user |
| GET | /api/users |
Get all users |
| GET | /api/users/{id} |
Get user by ID |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/documents/upload |
Upload document |
| GET | /api/documents |
Get all documents |
| GET | /api/documents/{id} |
Get document by ID |
| GET | /api/documents/download/{id} |
Download document |
| PUT | /api/documents/{id}/submit-review |
Submit document for review |
| PUT | /api/documents/{id}/approve |
Approve document |
| PUT | /api/documents/{id}/reject |
Reject document |
| GET | /api/documents/search?title= |
Search documents by title |
| GET | /api/documents/filter/category?category= |
Filter documents by category |
| GET | /api/documents/filter/status?status= |
Filter documents by status |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/audit-logs |
Get all audit logs |
| GET | /api/audit-logs/document/{documentId} |
Get audit logs by document ID |
Create a SQL Server database:
CREATE DATABASE smartdms;Update src/main/resources/application.properties with your SQL Server credentials:
spring.application.name=smartdms
spring.datasource.url=jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;databaseName=smartdms;encrypt=true;trustServerCertificate=true
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
server.port=8080- Clone the repository.
git clone https://github.com/Ayushi5027/SmartDMS-Java-SpringBoot.git-
Open the project in VS Code or IntelliJ.
-
Create a SQL Server database named
smartdms. -
Update
application.propertieswith your SQL Server username and password. -
Run the Spring Boot application.
.\mvnw spring-boot:run- Open Swagger UI in the browser.
http://localhost:8080/swagger-ui/index.html
- Designed REST APIs for document upload, download, review, approval, rejection, search, filtering, and audit tracking.
- Integrated SQL Server database using Spring Data JPA and Hibernate.
- Implemented smart rule-based categorization to auto-tag documents based on title keywords.
- Built audit logging to track important document-related actions.
- Documented APIs using Swagger UI for easy testing and demonstration.
- JWT authentication
- Password encryption
- React frontend
- Role-based access restrictions
- Email notifications
- OCR-based document text extraction
- Cloud deployment
SmartDMS is a secure backend Document Management System built with Java Spring Boot and SQL Server. It supports document upload, download, categorization, approval workflow, search, filtering, and audit logging with Swagger-based API documentation.




