https://github.com/cristimanolache28/employee-performance-tracker
A backend system built with Spring Boot for managing employees, performance evaluations, and skill progression within an organization.
https://github.com/cristimanolache28/employee-performance-tracker
authentication authorization integration-testing java junit jwt management-system maven mockito mysql opensource performance-tracking rest-api security skills-management springboot unit-testing
Last synced: about 1 month ago
JSON representation
A backend system built with Spring Boot for managing employees, performance evaluations, and skill progression within an organization.
- Host: GitHub
- URL: https://github.com/cristimanolache28/employee-performance-tracker
- Owner: cristimanolache28
- Created: 2025-06-19T13:12:59.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-06-22T14:54:32.000Z (12 months ago)
- Last Synced: 2025-06-22T15:37:29.336Z (12 months ago)
- Topics: authentication, authorization, integration-testing, java, junit, jwt, management-system, maven, mockito, mysql, opensource, performance-tracking, rest-api, security, skills-management, springboot, unit-testing
- Language: Java
- Homepage:
- Size: 133 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📌 Employee Performance Tracker System (**SpringBoot** Backend API)
---
## 📋 Project Overview
A backend system built with Spring Boot for managing employees, performance evaluations, and skill progression within an organization.
The main goal is to track employee performance based on points earned through their skills, the level of each skill, and a sub-level associated with every skill level.
Based on total points earned, employees are assigned an organizational hierarchy level.
## 💻 Technologies Used
* **Programming Language:** Java
* **Framework:** Spring Boot (Spring Data JPA, Spring Security, Spring Web, Spring Validation, Spring Test)
* **Database:** MySQL
* **ORM:** Hibernate
* **Security:** Spring Security, JSON Web Tokens (JWT)
* **Build Tool:** Maven
* **Testing:** JUnit, Mockito
## 🧩 Database Relationships
[](images/database-relationships.png)
## 🧠Core Entities & Relationships
* **User:** `id`, `email`, `password`, `is_active`, `create_at`, `update_at`
* **Employee:** `id`, `first_name`, `middle_name`, `last_name`, `CNP`, `general_level`, `address`, `gender`, `education_stage`, `birthDate`, `create_at`, `update_at`, `department_id`, `company_id`, `position_id`, `user_id`
* **Company**: `id`, `name`, `country`, `location`, `address`, `industry`, `founded_date`, `description`
* **Department**: `id`, `name`, `description`, `company_id`
* **Position**: `id`, `name`, `description`, `department_id`
* **Skill**: `id`, `name`, `skill_type`, `description`, `skill_level_id`
* **SkillLevel**: `id`, `name`, `points`, `level_stage_id`
* **SkillLevelStage**: `id`, `name`, `points`, `description`
* **PerformanceEvaluation**: `id`, `evaluation_date`, `score_before_evaluation`, `new_gain_point`, `total_score`, `efficiency_progress`, `notes`, `employee_id`, `evaluator_id`
* **Role**: `id`, `name`, `description`
### 📚 Enums
* **EducationLevel**: `NONE`, `PRIMARY`, `SECONDARY`, `BACHELOR`, `MASTER`, `DOCTORATE`
* **SkillType**: `SOFT_SKILL`, `HARD_SKILL`
* **GeneralLevel**: `NOVICE`, `ASSOCIATE`, `PROFESSIONAL`, `SENIOR`, `LEAD`, `PRINCIPAL`, `EXECUTIVE`
* **Gender**: `MALE`, `FEMALE`
* **SkillLevelName**: `BIGINNER`, `INTERMEDIATE`, `ADVANCED`, `EXPERT`, `MASTER`
* **SkillLevelStageName**:
* *BEGINNER*: `AWARE`, `LEARNING`, `APPLYING`
* *INTERMEDIATE*: `COMFORTABLE`, `INDEPENDENT`, `CONSISTENT`
* *ADVANCED*: `OPTIMIZING`, `MENTORING`, `OWNING`
* *EXPERT*: `INNOVATING`, `LEADING`, `STRATEGIC`
* *MASTER*: `VISIONARY`, `INFLUENTIAL`, `TRAILBLAZER`
* **Industry**: `TECHNOLOGY`, `FINANCE`, `HEALTHCARE`, `EDUCATION`, `MANUFACTURING`, `RETAIL`, `TRANSPORTATION`, `ENERGY`, `REAL_ESTATE`, `ENTERTAINMENT`, `TELECOMMUNICATIONS`, `AGRICULTURE`, `CONSTRUCTION`, `HOSPITALITY`, `PROFESSIONAL_SERVICES`, `GOVERNMENT`, `NON_PROFIT`
### 🔒 Authentication & Authorization
## 🚦 Getting Started
### Prerequisites
Make sure you have these installed:
* **Java Development Kit (JDK) 17**
* **Maven**
* **MySQL** database instance
### Installation & Configuration
1. **Clone the repository:**
```bash
git clone [https://github.com//employee-performance-tracker.git](https://github.com//employee-performance-tracker.git)
cd employee-performance-tracker
```
Note: Replace "YourUsername" with your GitHub username
3. **Configure your database:**
* Create a new MySQL database (e.g., `asset_db`).
* Open `src/main/resources/application.properties` and update your database connection details:
```properties
# Example for MySQL
spring.datasource.url=jdbc:mysql://localhost:3306/employee_performance_tracker?useSSL=false&serverTimezone=UTC
spring.datasource.username=your_username
spring.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
```
4. **Build and run the application:**
```bash
mvn clean install
mvn spring-boot:run
```
Your application will typically start on `http://localhost:8080`.
## 💡 Possible Future Enhancements