Skip to content

Commit fef83b3

Browse files
author
Piotr Kubicki
committed
chore: adjust README.md
1 parent 5f61656 commit fef83b3

File tree

1 file changed

+44
-12
lines changed

1 file changed

+44
-12
lines changed

README.md

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,52 @@
1-
# Java Backend Developer Training – Lab Source
1+
# Java Backend Developer Training – Reference Implementation
22

3-
> 📌 **This repository contains the reference implementation of the application developed during the Java Backend Developer training.**\
4-
> Participants progressively gain access to additional branches as they progress through the course.
3+
> 📌 **This repository contains the _reference implementation_ of the application developed step-by-step during the _Java Backend Developer Training_.**
4+
> Each subsequent branch adds more functionality on top of the previous one, allowing participants to explore and compare their solutions.
55
66
## 📖 Project Overview
77

8-
This project is a **Spring Boot 3** application designed to serve as a **backend development reference implementation**. It follows **clean coding principles** and modern development best practices.
8+
This is a **Spring Boot 3** backend application named **_Appointment Booking System_**, created as part of hands-on backend development training.
9+
It follows modern architectural and coding practices, including **clean code**, **layered structure**, and **modular design**.
910

10-
The application developed during the Java Backend Developer training is called _**Appointment Booking System**_.
11+
📄 Specification: [**AppointmentBookingAppDoc.md**](AppointmentBookingAppDoc.md)
1112

12-
#### Here you will find the specification: **[AppointmentBookingAppDoc.md](AppointmentBookingAppDoc.md).**
13+
## 🌱 Branch Progression
1314

14-
### 🛠 Tech Stack
15+
The repository grows in complexity and functionality across branches:
16+
17+
| Branch | Description |
18+
|--------|------------------------------------------------------------------------|
19+
| `main` | Base Spring Boot setup with basic health and H2 endpoints |
20+
| `feature/1-create-new-application` | Same as main |
21+
| `feature/2-dataaccess` | Persistence layer with Spring Data JPA and H2 |
22+
| `feature/3-business-logic` | Service layer and business logic introduced |
23+
| `feature/4-services` | OpenAPI/Swagger setup for live API documentation and testing |
24+
| `feature/5-security` | Spring Security integration for basic authentication and authorization |
25+
26+
## 🌐 Useful Endpoints
27+
28+
After starting the application, you can access the following in your browser:
29+
30+
| URL | Available from | Description |
31+
|-----|----------------|-------------|
32+
| [http://localhost:8080/actuator/health](http://localhost:8080/actuator/health) | `main` | Basic application health check |
33+
| [http://localhost:8080/h2-console](http://localhost:8080/h2-console) | `main` | In-memory H2 database console |
34+
| [http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html) | `feature/4-services` | OpenAPI UI for testing and exploring REST API |
35+
36+
## 🛠 Tech Stack
1537

1638
- **Java 21**
1739
- **Spring Boot 3**
18-
- **Maven 3.9.x** as the build tool
19-
- **JUnit 5 & AssertJ** for testing
40+
- **Maven 3.9+**
41+
- **JUnit 5 & AssertJ**
42+
- **H2 Database**
43+
- **OpenAPI & Swagger UI**
44+
- **Spring Security**
2045
- **GitHub Actions** for CI/CD
2146

22-
## 📂 Repository Structure
47+
## 📁 Project Structure
48+
49+
2350

2451
```
2552
java-backend-developer-app/
@@ -80,12 +107,17 @@ GitHub Actions is used for CI/CD, configured in \`.github/workflows/ci.yml\`. Th
80107
- **Every push and pull request** to \`main\` and feature branches.
81108
- **Runs tests** and generates reports.
82109

110+
## 🙋 Who Is This For?
111+
This reference repo is intended for trainers and mentors to demonstrate completed solutions.
112+
🧑‍💻 **Each training participant works independently in a separate student repository.** This repository serves as a working example.
113+
83114
## 🤝 Contribution Guidelines
84115

85-
1. Create a **feature branch** for any changes.
116+
1. Create a **feature branch** for any changes from a particular, possibly smallest "main" feature branch, e.g. 'feature/2-data-access'.
86117
2. Ensure the code **follows project conventions** and is properly tested.
87-
3. Open a **Pull Request** to \`main\`. Direct pushes are restricted.
118+
3. Open a **Pull Request** to particular, corresponding "main" feature branch, e.g. 'feature/2-data-access'. Direct pushes are restricted.
88119
4. Wait for **CI to pass** and a **review** before merging.
120+
5. Rebase higher feature branches onto changed one, e.g. if you merged to 'feature/3-business-logic', then you should rebase 'feature/4-services' and 'feature/5-security' to have your changes there as well.
89121

90122
## License
91123

0 commit comments

Comments
 (0)