- DavidLakeT
Zenith is an implementation of a RESTful API built under the Spring Boot framework. It was developed following industry best practices as well as SOLID principles. Zenith makes use of the Hibernate ORM to perform the database management (which is handled with containers using Docker).
This project was carried out with the intention of putting into practice concepts oriented towards backend development; this is why we sought to simulate in a simple way all the components that make up an API, among these:
- Repositories, where to perform the management of CRUD operations with the system models.
- Services, where the business logic is handled.
- Controllers, responsible for the correct handling of requests and their responses.
Generally speaking, Zenith has as main components:
- ORM: Hibernate.
- Framework: Spring Boot.
- Database: PostgreSQL.
- Libraries: Lombok (Annotation processor), ModelMapper.
- Java Development Kit (JDK): Zenith requires that you have Java 8 JDK or higher installed on your system to build and run the applications.
First, you need to clone the repository from GitHub. To do this, you can open a terminal and run the following command:
git clone https://github.com/DavidLakeT/zenith.git
cd docker
./service.sh up
./gradlew bootrun
Zenith's goal is to simply embrace vital concepts in the world of backend development and microservices through an API that can serve a few endpoints.
Here are some of the aspects that could be considered in the future for the implementation of the project:
- Models that can interact with each other (eg: Products + Customers).
- Authentication + User validation.
- Session management (JWT).
The development of Zenith is currently frozen so these features are open to public intention to contribute to open-source development.
Zenith is under free open source MIT License.
Join this project and provide assistance by:
- Checking out the list of open issues where Zenith could need help.
- If you need new features, please open a new issue or start a discussion.
Feel free to contact me if you have any questions or contributions to make to the project.
Project Link: https://github.com/DavidLakeT/zenith