An internal enterprise platform for managing documents, creating and tracking tasks, team collaboration, and role-based access control.
For step-by-step instructions on how to run the application using Docker, please refer to INSTRUCTIUNI_RULARE.md.
The application is built using a modern and robust technology stack:
- Backend: Java 17 with Spring Boot 3.4.1
- API Architecture: RESTful API
- Security: Spring Security + JWT (JSON Web Token)
- Database: PostgreSQL 16 (using Spring Data JPA / Hibernate)
- Database Migrations: Flyway
- File Storage: MinIO (S3-compatible object storage)
- API Documentation: SpringDoc OpenAPI (Swagger UI) - Available at http://localhost:8080/swagger-ui.html when the application is running
- Containerization: Docker + Docker Compose
- User registration
- Authentication via JWT
- Available roles:
ADMINandUSER
Standard User:
- View own profile
- Update personal information
- View the projects they are part of
Administrator:
- List all users in the system
- Modify user roles
- Deactivate users
Each project contains: name, description, creation date, owner, members, and status.
Available operations:
- Create a new project
- Add members to a project
- Modify project information
- List existing projects
- Delete a project (soft delete mechanism)
Each task contains: title, description, priority, status, deadline, assigned user, creator, and timestamps.
Available operations:
- Create, edit, and delete tasks
- Filter tasks by status and priority
- Assign users to specific tasks
Files are stored securely in MinIO, while only metadata is saved in the database. Each document record contains: name, type, size, owner, and upload date.
Available operations:
- Upload documents to a project
- Download documents
- List available documents
- Delete documents
- Logging for all important HTTP requests
- Robust error logging mechanism
- Dedicated tracking for critical operations: logins, deletions, and file uploads
- Validations applied to all incoming requests
- Proper HTTP response status codes returned for operations
- Global exception handler to manage unexpected errors securely