Simple forum created using Spring Boot and Thymeleaf. Example of simple CRUD web application.
- Spring Boot
- Spring Security
- Spring JPA & Hibernate
- Thymeleaf
- Bootstrap 5
- Sass (SCSS)
- Lombok
- Docker
- Docker Compose
- MySQL
- Node.js (gulp)
- custom HandlerMethodArgumentResolver - PathTopicArgumentResolver and @PathTopic that looks for
idTopic
in the path and resolves it into Topic object that is injected into controller's methods - custom data validation annotations - @UniqueEmail or @UniqueUsername
- resource handler with multiple paths - path
/avatars/**
(e.g./avatars/person.png
) - uploading file & data using multipart form - section image
- saving file to storage
- Thymeleaf templates - table template for more complex example of data binding
- Thymeleaf and Sass
- changing default collation to utf8mb4_unicode_ci - docker-compose.yml > db > command
- Creating a user account
- Logging to a user account using email and password
- Displaying sections, recent topics and recent posts at home page
- Displaying section and topics created in that section
- Displaying topic and posts created in that topic
- Creating new topic in a section
- Creating new post in a topic
- ❌Editing & deleting topic
- ❌Editing & deleting post
- ❌Displaying of user profiles
- ❌Displaying your own profile at
- ❌Editing your profile at
- ❌Removal user profile with password confirmation
- Creating new sections
- Displaying list of all sections
- ❌Displaying list of all users
Example application properties are in the application.example.properties
file.
Before build Forum or run tests you have to create application.properties
files.
- run mysql database - you can use docker compose with file
docker-compose.yml
- in directory
scr/main/resources
copy fileapplication.example.properties
toapplication.properties
- change settings if you need - run
npm i
- run
npm run build
- run spring application with your IDE or maven
- run
npm run watch
- application should be running on
localhost:3000