This is a little pet project that i made with my good friend Ilya. This project represents a simple rest api for social network. To access the features, user need to register on the website. Then they can modify their user pages and make, read, like posts of other peoples. For authentication mechanism we used a JWT based Spring Security authentication. The project follows a SOLID and Clean Code principals
- Spring ( Boot, Framework, Security )
- Java
- Liquibase
- Lombok
- Spring Data JPA ( Hibernate )
- json-web-token
- PostgreSQL
- OpenApi
- SwaggerUI
- Authentic user registration with implemented JWT token based authorization
- ORM using Hibernate
- Database migration with Liquibase
- Create, read, like and etc. with posts
- Included OpenApi and SwaggerUI to see all project`s endpoints and get an example how to use it
To get started with this project, you can run it locally or Using Docker
- Clone this repository to your local machine.
- Configure the database settings in application.yml and liquibase.properties.
- Build and run the application using Maven or Gradle.
- Access the API endpoints to interact with the service.
- Clone this repository to your local machine.
- Make sure you have Docker and Docker Compose installed on your system.
- Open a terminal and navigate to the project directory.
- Run the following command to build and start the application:
docker-compose up --build
- Once the containers are up and running, the application will be accessible at http://localhost:8080.
- Access the API endpoints to interact with the service. By default, the Docker Compose configuration will spin up a PostgreSQL container alongside the Spring Boot application.
/api/auth
POST /api/auth/register - Register a new user
POST /api/auth/login - Login to the application and receive a JWT Token
And also you can see all endpoints and examples to use, by running your project and visit localhost:8080/swagger-ui.html
Conribution are welcome! Feel free to open issues or pull requests to suggest improvements or report bugs.
This project doesn`t have any license yet.