https://github.com/geozi/review-app
Backend implementation of a generic review app with Spring, Spring Boot, and Spring Security.
https://github.com/geozi/review-app
gradle restful-api spring-boot spring-data-mongodb spring-security swagger-ui
Last synced: 7 months ago
JSON representation
Backend implementation of a generic review app with Spring, Spring Boot, and Spring Security.
- Host: GitHub
- URL: https://github.com/geozi/review-app
- Owner: geozi
- Created: 2024-05-08T15:47:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-28T09:20:54.000Z (9 months ago)
- Last Synced: 2025-02-07T06:23:37.264Z (9 months ago)
- Topics: gradle, restful-api, spring-boot, spring-data-mongodb, spring-security, swagger-ui
- Language: Java
- Homepage:
- Size: 479 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# review-app

### About the project
This repository contains the backend implementation of my final project for the [Coding Factory](https://codingfactory.aueb.gr/) training program. The project is a fullstack, generic review app. A user can register, log in, and post a review about a product or a service, which is, then, persisted on a MongoDB Atlas collection. The frontend implementation can be found [here](https://github.com/geozi/reviewapp-frontend).
### Business logic
There are 2 fundamental business flows supported: user registration and CRUD operations for reviews.

### Prerequisites
* Java 17 or higher,
* A Java IDE (Intellij or Eclipse),
* MongoDB (locally installed or on MongoDB Atlas)
### Dependencies
Using the Spring Initializr (https://start.spring.io/), the following dependencies should be installed:
```gradle
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
implementation 'io.jsonwebtoken:jjwt-api:0.12.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.5'
```
### Base URL
The default value of the base URL for API endpoints is:
```
http://localhost:8080
```
### API documentation
Swagger is the framework of choice for documenting API endpoints. The default url for accessing the Swagger UI is:
```
http://localhost:8080/swagger-ui/index.html
```