UniTrainee is a Spring Boot web application for managing university traineeship processes. The system supports different user roles, including students, companies, professors, and committee members, and provides role-based functionality for traineeship positions, applications, assignments, evaluations, and student logbooks.
- User authentication and role-based access
- Student dashboard and profile management
- Company dashboard and traineeship position management
- Professor dashboard and evaluation functionality
- Committee dashboard for application and assignment management
- Traineeship position search and assignment logic
- Thymeleaf-based server-side rendered views
- MySQL database integration
- Java 21
- Spring Boot 3.4.3
- Spring MVC
- Spring Security
- Spring Data JPA
- Thymeleaf
- MySQL
- Maven
src/main/java/gr/uoi/UniTrainee/uniTrainee
├── Config/ # Security configuration
├── controllers/ # MVC controllers
├── domainmodel/ # Domain entities and enums
├── factories/ # Factory classes for search and assignment strategies
├── mappers/ # Repository / mapper layer
├── services/ # Business logic
└── strategy/ # Strategy pattern implementations
- Java 21
- Maven
- MySQL
Create a MySQL database:
CREATE DATABASE unitrainee;Configure the database connection using environment variables:
export DB_URL="jdbc:mysql://localhost:3306/unitrainee"
export DB_USERNAME="root"
export DB_PASSWORD="your_password"On Windows PowerShell:
$env:DB_URL="jdbc:mysql://localhost:3306/unitrainee"
$env:DB_USERNAME="root"
$env:DB_PASSWORD="your_password"Using Maven Wrapper:
./mvnw spring-boot:runOn Windows:
.\mvnw.cmd spring-boot:runThe application will run at:
http://localhost:8080
This project was developed as an academic Spring Boot application focused on traineeship management, applying MVC architecture, role-based access, database integration, service-layer design, and design patterns such as Strategy and Factory.