Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Employee Manager

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


Features

  • 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

Tech Stack

Layer Technology
Frontend Angular + Angular Material
Backend Spring Boot REST API
ORM Spring Data JPA + Hibernate
Database PostgreSQL

Architecture

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 @Valid and 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.

Data Model

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)

Use Cases

  1. Fetch all entities — View all people, machinery, and meetings in tables
  2. Insert new entity — Add new people, machinery, or meetings
  3. Delete an existing entity — Remove entries from the database
  4. View relations — See which employees are assigned to which machinery/meetings
  5. Create relations — Assign machinery or meetings to employees
  6. Delete relations — Remove assignments between entities

Getting Started

Prerequisites

  • Java 17+
  • Node.js & Angular CLI
  • PostgreSQL

Backend

cd backend
./mvnw spring-boot:run

The API will be available at http://localhost:8080.

Frontend

cd frontend
npm install
ng serve

The app will be available at http://localhost:4200.

Database

Create a PostgreSQL database named test_oop accessible at localhost:5432.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages