An employee management application that enables users to view all employees and manage their assignments to machinery and meetings.
Student: Bardi Robert · Group: 30431 · UTCN, 2026
- CRUD operations for employees, machinery, and meetings
- Assign meetings and machinery to employees based on their role (manager/worker)
- View relationships between entities
- Input validation with structured error responses
- Layered architecture with clear separation of concerns
| Layer | Technology |
|---|---|
| Frontend | Angular + Angular Material |
| Backend | Spring Boot REST API |
| ORM | Spring Data JPA + Hibernate |
| Database | PostgreSQL |
The application follows a three-tier architecture:
- Presentation Tier — Angular frontend using Material UI components. Communicates with the backend via
HttpClient(http://localhost:8080). - Logic Tier — Spring Boot REST controllers expose endpoints (
/person,/machinery, etc.). The service layer handles business logic such as email validation and safe deletion. DTOs with@Validand a global exception handler provide structured error responses. - Data Tier — PostgreSQL database with 5 tables, accessed via
jdbc:postgresql://localhost:5432/test_oop. No raw SQL — all persistence is handled through JPA repositories.
Three main entities connected by many-to-many relationships:
Person
id(UUID),name(string),email(string, unique),password(string),age(integer, 18–200),type(worker/manager)
Machinery
id(UUID),type(string),brand(string),model(string),output(double)
Meeting
id(UUID),name(string),start_time(time),end_time(time)
Relationships:
person_machinery— links workers to machinery (many-to-many)person_meeting— links managers to meetings (many-to-many)
- Fetch all entities — View all people, machinery, and meetings in tables
- Insert new entity — Add new people, machinery, or meetings
- Delete an existing entity — Remove entries from the database
- View relations — See which employees are assigned to which machinery/meetings
- Create relations — Assign machinery or meetings to employees
- Delete relations — Remove assignments between entities
- Java 17+
- Node.js & Angular CLI
- PostgreSQL
cd backend
./mvnw spring-boot:runThe API will be available at http://localhost:8080.
cd frontend
npm install
ng serveThe app will be available at http://localhost:4200.
Create a PostgreSQL database named test_oop accessible at localhost:5432.