diff --git a/PRA/PRA_guide.md b/PRA/PRA_guide.md
deleted file mode 100644
index c532cbfe5..000000000
--- a/PRA/PRA_guide.md
+++ /dev/null
@@ -1,147 +0,0 @@
-# Laboratory Practice Guide: Software Development Project
-
-## Objective
-
-Design and implement a full-stack application using Spring Boot for the backend and React for the frontend.
-
-## Project Structure
-
-### Backend (Spring Boot)
-
-1. **Project Initialization**
-
- - Use Spring Initializr to create a new Spring Boot project
- - Include dependencies: Web, JPA, and your chosen database, H2 is ok.
-
-2. **Folder Structure DDD**
-
- ```
- com.example.project
- ├── controller
- ├── model
- ├── repository
- ├── service
- └── config
- ```
-
-3. **Entity Design**
-
- - Create domain model classes in the `model` package
- - Use appropriate JPA annotations
-
-4. **Repository Layer**
-
- - Develop JPA repositories in the `repository` package
- - Extend `JpaRepository` for basic CRUD operations
-
-5. **Service Layer**
-
- - Implement business logic in the `service` package
- - Use `@Service` annotation for service classes
-
-6. **Controller Layer**
-
- - Create REST controllers in the `controller` package
- - Use `@RestController` and appropriate HTTP method annotations
-
-7. **Configuration**
-
- - Set up database configuration in `application.properties` or `application.yml`
- - Create additional configurations in the `config` package if needed
-
-### Frontend (React)
-
-1. **Project Setup**
-
- - Use Create React App: `npx create-react-app frontend` or vite
- - [Vite guide]([Getting Started | Vite](https://vite.dev/guide/))
-
- ```bash
- npm create vite@latest
- ```
-
-
-
-2. **Folder Structure**
-
- ```
- src
- ├── components
- ├── pages
- ├── services
- └── utils
- ```
-
-3. **Component Development**
-
- - Create reusable components in the `components` folder
- - Develop page components in the `pages` folder
-
-4. **API Integration**
-
- - Use Axios for API calls
- - Create an API service in the `services` folder
-
-5. **State Management**
-
- - Utilize React hooks for local state management
- - Consider Redux or Context API for global state if needed
-
-6. **Routing**
-
- - Implement routing using React Router
-
-## Development Process
-
-1. **Backend Development**
- - Implement entities, repositories, services, and controllers
- - Test API endpoints using Postman or Swagger
-2. **Frontend Development**
- - Create React components and implement UI
- - Integrate with backend API using Axios
-3. **Testing**
- - Write unit tests for both backend and frontend
- - Implement integration tests for API endpoints
-4. **Documentation**
- - Document API endpoints: Postman or Swagger.
- - Create README files for both backend and frontend
-
-## Best Practices
-
-- Follow SOLID principles
-- Use meaningful naming conventions
-- Implement proper error handling
-- Write clean, readable, and well-commented code
-- Utilize dependency injection in Spring Boot
-- Follow React best practices and hooks guidelines
-
-### Submission Guidelines
-
-- Fork the existing [pronunciationApp](https://github.com/AlbertProfe/pronunciationApp) repository and clone it to your local environment.
-- Create a new branch named `PRA01-YourName` from the latest commit.
-- Commit your changes with clear, descriptive messages.
-- Push your branch to your forked repository.
-- Create a pull request to the AlbertProfe repository with a summary of your changes, titled:
- - `PRA01-YourName-NameLaboratory`
-- Initial pull request must be submitted before the two-week deadline
-- Students who does not complete the lab before the deadline must create a second pull request with additional enhancements or features
-
-### Evaluation Criteria
-
-**Backend (Spring Boot)**
-
-- Correct implementation of JPA entities and repositories.
-- Proper use of Spring Boot annotations and best practices.
-- Functionality of service layer and controllers.
-- Quality and coverage of Swagger API tests.
-- Code clarity and documentation.
-
-**Frontend (React)**
-
-- Proper component structure and reusability
-- Effective use of React hooks (useState, useEffect, etc.)
-- Correct implementation of state management
-- Proper handling of API calls and asynchronous operations
-- Responsive and user-friendly UI design
-
-> Remember to test your application thoroughly and ensure it meets all specified requirements.
diff --git a/PRA/Pasted image.png b/PRA/Pasted image.png
new file mode 100644
index 000000000..7114585e7
Binary files /dev/null and b/PRA/Pasted image.png differ
diff --git a/PRA/model.png b/PRA/model.png
new file mode 100644
index 000000000..4e49e2ab1
Binary files /dev/null and b/PRA/model.png differ
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..461762381
--- /dev/null
+++ b/README.md
@@ -0,0 +1,192 @@
+# PRA#04-SpringBoot: JPA Relationships and Model Enhancement
+
+## Overview
+
+This document serves as a guide and log for the frontend development of the PRA#04-SpringBoot project. The exercise focuses on implementing JPA relationships and enhancing the data model for a Spring Boot pronunciation application.
+
+---
+
+## UML Model
+
+```mermaid
+classDiagram
+ class User {
+ +String id
+ +String usrname
+ +int age
+ +String email
+ +int totalScore
+ +boolean isActive
+ }
+ class Word {
+ +String id
+ +String text
+ +String description
+ +String sentence
+ +int difficulty
+ +boolean isCommon
+ }
+ class Pronunciation {
+ +String id
+ +String audioName
+ +int audioSize
+ +String audioUrl
+ +String phoneticSpelling
+ +String speakerGender
+ +enum type // canonical, recorded
+ }
+ class Level {
+ +String id
+ +int number
+ +String name
+ +int requiredScore
+ +boolean isBlocked
+ }
+ class Category {
+ +String id
+ +String categoryName
+ +String subCategoryName
+ +String description
+ +int wordCount
+ }
+ class GameProgress {
+ +String id
+ +int currentScore
+ +enum currentStage // stage_01, stage_02
+ +Date lastPlayedDate
+ +int wordsLearned
+ }
+ class Stage {
+ +String id
+ +String name
+ +String avatarUrl
+ +String status
+ +int progress
+ +int currentScore
+ }
+ class StageWord {
+ +String id
+ +enum status // done, pending, fail
+ +Date lastUpdatedDateTime
+ }
+
+
+ User "1" -- "1" GameProgress : tracks progress
+ Word "1" -- "*" Pronunciation : has pronunciation
+ Word "*" -- "*" Category : belongs to multiple
+ Word "*" -- "1" Level : has level
+ GameProgress "1" -- "*" Stage : is at stage
+ Stage "*" -- "1" Level : has level
+ Stage "1" -- "*" StageWord : has tracked words
+ Word "1" -- "*" StageWord : has stageword
+```
+
+## PR Submission Checklist
+
+### **Completed Tasks**:
+
+- [x] Review and Improve Model v0.2
+
+- [x] Implement One-to-One: UserApp and GameProgress
+
+- [x] Create Many-to-Many: Word and Category
+
+- [x] Implement One-to-Many/Many-to-One Relationships
+
+- [x] Configure JPA Annotations
+
+- [x] Create Repository Interfaces
+
+- [ ] Implement Basic Service Methods
+
+- [x] Test Relationships:
+
+ - [x] Word "1" -- "m" Pronunciation
+
+ - [x] Word "1" -- "m" StageWord
+
+ - [x] Stage "1" -- "m" StageWord
+
+ - [x] Word "m" -- "1" Level
+
+ - [x] GameProgress "1" -- "m" Stage
+
+ - [x] Stage "m" -- "1" Level
+
+- [ ] Data Auditing
+
+- [ ] Advanced Validation
+
+- [ ] Pagination and Sorting Support
+
+- [ ] Custom Query Optimization
+
+### **Testing**:
+
+- [ ] Relationship integrity tests
+- [ ] Cascade operation tests
+- [ ] Fetch strategy validation
+
+---
+
+## Estimated Time for Tasks
+
+### Common Part
+
+| Task | Estimated Time | Actual Time | Impediments | New Concepts |
+| -------------------------------------- | -------------- | ----------- | ----------- | ------------------------------- |
+| Model Review | 15 min | 10 min | | JPA mapping |
+| One-to-One (User-App and GameProgress) | 15 min | 30 min | | Enums (@Enumerated annotation) |
+| Many-to-Many (Word - Category) | 15 min | 30 min | | Join Table configuration |
+| One-to-Many & Many-to-One | 1:30 hours | 2 hours | | |
+| Relationship Configuration | 1 hour | | | Cascade types |
+| Repository Creation | 10 min | 10 min | | Spring Data JPA |
+| Service Implementation | 1 hour | | | Service layer patterns |
+| Testing | 2 hours | 2:30 hour | | @ActiveProfiles, @Transactional |
+| **Total** | **6:30 hours** | | | |
+
+### Optional Part
+
+| Task | Estimated Time | Actual Time | Impediments | New Concepts |
+| ---------------------- | -------------- | ----------- | ----------- | ------------------- |
+| Data Auditing | 1 hours | | | JPA Auditing |
+| Advanced Validation | 1:20 hours | | | Bean Validation |
+| Pagination and sorting | 2 hours | | | Pageable interface |
+| Custom Queries | 1 hour | | | JPQL/Native queries |
+| **Total** | **5:20 hours** | | | |
+
+---
+
+## Error Documentation and Solutions
+
+### Error: `[ERROR_MESSAGE]`
+
+**Corresponding Task:** [RELATED_TASK]
+
+**Description:** [ERROR_DESCRIPTION]
+
+**Error Trace:**
+
+- **Component:** [COMPONENT_NAME]
+- **File:** [FILE_NAME]
+- **Line:** [ERROR_LINE]
+- **Stack Trace:**
+ - [ERROR_TRACE]
+
+**Possible Causes:**
+
+- [POTENTIAL_CAUSES]
+
+**Solution:**
+
+```jsx
+// Fixed code or solution
+```
+
+**Explanation:** [EXPLANATION_OF_THE_SOLUTION]
+
+---
+
+## Future Improvements
+
+- **Caching Mechanism** - Add Hibernate second-level cache configuration
diff --git a/backend/pronunciationAppBack/pom.xml b/backend/pronunciationAppBack/pom.xml
index 5963cf3b7..1e00b8dbc 100644
--- a/backend/pronunciationAppBack/pom.xml
+++ b/backend/pronunciationAppBack/pom.xml
@@ -12,7 +12,7 @@
pronunciationAppBack
0.0.1-SNAPSHOT
pronunciationAppBack
- Spring Boot for app pronunciatoin
+ Spring Boot for app pronunciation
@@ -34,6 +34,11 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.projectlombok
+ lombok
+ true
+
org.springframework.boot
spring-boot-starter-web
@@ -65,6 +70,19 @@
spring-boot-starter-test
test
+
+ net.datafaker
+ datafaker
+ 2.4.2
+
+
+
+ org.instancio
+ instancio-junit
+ 5.4.0
+ test
+
+
diff --git a/backend/pronunciationAppBack/src/main/java/dev/pronunciationAppBack/controller/HealthController.java b/backend/pronunciationAppBack/src/main/java/dev/pronunciationAppBack/controller/HealthController.java
new file mode 100644
index 000000000..897949948
--- /dev/null
+++ b/backend/pronunciationAppBack/src/main/java/dev/pronunciationAppBack/controller/HealthController.java
@@ -0,0 +1,93 @@
+package dev.pronunciationAppBack.controller;
+
+
+import dev.pronunciationAppBack.service.UserService;
+import dev.pronunciationAppBack.service.WordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/health")
+public class HealthController {
+
+ @Autowired
+ private WordService wordService;
+
+ @Autowired
+ private UserService userService;
+
+ @GetMapping
+ public ResponseEntity