Skip to content

NgoGManh/Employee-Management-App

Repository files navigation

Enterprise Employee Management App

Ứng dụng quản lý nhân viên/phòng ban mô phỏng stack SAP (OpenUI5/Fiori + Java Spring Boot + OData + PostgreSQL), dùng để showcase kỹ năng fullstack theo định hướng SAP BTP.

Cấu trúc thư mục

  • backend/ – Spring Boot + JPA + Security (JWT), REST CRUD /api/employees, /api/departments, OData v4 /odata/Employees, /odata/Departments (Apache Olingo).
  • frontend/ – OpenUI5 app Fiori-style: Employee List, Employee Detail (CRUD), Department List, Analytics Dashboard.
  • docs/ – tài liệu spec (spec.md), API (API.md), kiến trúc (architecture.md).
  • TEST_CHECKLIST.md – checklist test tay cho toàn bộ luồng.
  • PROJECT_STATUS.md – trạng thái tiến độ hiện tại.
  • docker-compose.yml – chạy PostgreSQL local nhanh.

Yêu cầu môi trường

  • Java 17 (JDK 17+)
  • Maven 3.8+
  • Node.js 18+ (cho tooling UI5)
  • PostgreSQL 14+ (hoặc Docker để chạy PostgreSQL)

Cách chạy local

Bước 1: DB (qua Docker)

docker compose up -d

Bước 2: Backend

cd backend
mvn spring-boot:run

Backend chạy ở http://localhost:8080, có:

  • /ping – health check.
  • /auth/login – trả về JWT demo.
  • /api/employees – REST CRUD cho employees.
  • /api/departments – danh sách phòng ban.
  • /odata/Employees, /odata/Departments – OData v4 JSON (Apache Olingo).

Bước 3: Frontend

cd frontend
npm install
npm start

UI5 app chạy ở http://localhost:8081. Có các màn:

  • Login – nhận JWT, lưu token + role.
  • Employee List – danh sách nhân viên (hiện dùng ODataModel v4 đọc /odata/Employees).
  • Employee Detail – xem/sửa/thêm mới (REST).
  • Department List – danh sách phòng ban.
  • Analytics Dashboard – tổng hợp số lượng employees/departments.

Cấu hình .env (frontend)

Trong thư mục frontend/:

# frontend/.env
API_BASE_URL=http://localhost:8080

Khi chạy npm start, script sẽ generate webapp/env-config.js và inject window.API_BASE_URL.
Tất cả REST/OData call trên frontend sẽ trỏ về http://localhost:8080.

Screenshots (gợi ý)

Bạn có thể lưu screenshot vào docs/images/ và tham chiếu trong README:

  • Logindocs/images/login.png
  • Employee Listdocs/images/employee-list.png
  • Employee Detaildocs/images/employee-detail.png
  • Dashboarddocs/images/dashboard.png
  • Error toast (ví dụ duplicate email)docs/images/error-toast.png

Ví dụ chèn ảnh:

![Login](docs/images/login.png)
![Employee List](docs/images/employee-list.png)

Testing

  • Manual:
    • Sử dụng checklist chi tiết trong TEST_CHECKLIST.md (login, RBAC, CRUD, dashboard, validate/email, OData, config .env…).
  • Backend (JUnit):
    • PingControllerTest – test /ping.
    • AuthAndEmployeeApiTest – test /auth/loginGET /api/employees với JWT.
  • Frontend (QUnit):
    • test/unit/Component.qunit.js – đảm bảo Component khởi tạo được.
    • test/unit/Navigation.qunit.js – bootstraps component + router mà không crash (navigation cơ bản).

Chi tiết kiến trúc, data model và OData entities xem trong docs/spec.mddocs/API.md.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors