Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wesleybertipaglia/spring-forum
This project is a simple forum application built with Spring Boot. It allows users to create posts, comment on posts, and vote on posts.
https://github.com/wesleybertipaglia/spring-forum
docker java postgresql project spring
Last synced: 8 days ago
JSON representation
This project is a simple forum application built with Spring Boot. It allows users to create posts, comment on posts, and vote on posts.
- Host: GitHub
- URL: https://github.com/wesleybertipaglia/spring-forum
- Owner: wesleybertipaglia
- License: mit
- Created: 2024-07-16T14:13:10.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-21T14:01:51.000Z (6 months ago)
- Last Synced: 2024-11-17T07:09:49.320Z (2 months ago)
- Topics: docker, java, postgresql, project, spring
- Language: Java
- Homepage:
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Spring Forum
This project is a simple forum application built with Spring Boot. It allows users to create posts, comment on posts, and vote on posts.
## Table of Contents
- [Getting Started](#getting-started)
- [Features](#features)
- [ERD Diagram](#erd-diagram)
- [Contributing](#contributing)
- [License](#license)## Getting Started
### Running with Docker
The easiest way to run the application is with Docker.
```bash
docker-compose up -d
```> The application will be available at [http://localhost:8080](http://localhost:8080).
### Running with Gradle
Alternatively, you can run the application with Gradle.
#### Prerequisites
- Java 22 or later (it's compatible with Java 17, but you may need to update the `sourceCompatibility` and `targetCompatibility` in the `build.gradle` file)
- Gradle 8.0 or later```bash
./gradlew bootRun
```> The application will be available at [http://localhost:8080](http://localhost:8080).
## Features
The application includes the following functionalities:
- User registration and login
- Post creation, editing, and deletion
- Comment creation, editing, and deletion
- Voting on posts## ERD Diagram
The following Entity-Relationship Diagram (ERD) shows the relationships between the entities in the application:
```mermaid
classDiagram
class User {
uuid id
string name
string email
string password
datetime created_at
datetime updated_at
}
class Post {
uuid id
uuid user_id
string title
string content
datetime created_at
datetime updated_at
}
class Comment {
uuid id
uuid post_id
uuid user_id
string content
datetime created_at
datetime updated_at
}
class Vote {
uuid id
uuid user_id
uuid post_id
datetime created_at
datetime updated_at
}User "1" *-- "N" Post : creates
Post "1" *-- "N" Comment : contains
User "1" *-- "N" Comment : writes
User "1" *-- "N" Vote : casts
Post "1" *-- "N" Vote : receives
```## Contributing
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
## License
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.