TechBuzz is a place to share the interesting tech news such as blog posts, videos, release news etc.
- Login with username/password
- Register with username/password
- Account activation by email verification
- View posts by category with pagination
- Create post
- Update post
- Delete post
- Up/Down vote a post
- Java, SpringBoot
- Postgres, jOOQ, FlywayDb
- Spring Security
- Thymeleaf, Bootstrap, jQuery
- JUnit 5, Testcontainers
-
Install Java, Maven using SDKMAN
$ curl -s "https://get.sdkman.io" | bash $ source "$HOME/.sdkman/bin/sdkman-init.sh" $ sdk version $ sdk env install $ java -version $ mvn --version
-
Install Docker
Follow https://docs.docker.com/engine/install/ for installing Docker for your OS.
$ ./mvnw verify
$ ./mvnw spotless:apply // to formatting code automatically
$ ./mvnw spotless:check // to verify the code formatting
If you want to start the required services (database, mail server) using docker-compose and run the application locally:
$ ./run.sh start_infra
$ ./mvnw -pl techbuzz spring-boot:run
Instead, you can simply run ./mvnw -pl techbuzz spring-boot:test-run
which will automatically spin up the required services
as docker containers using Testcontainers and starts the application.
$ ./run.sh start
- App: http://localhost:8080/
- MailHog: http://localhost:8025/
Make sure the application is running and configure correct values in src/test/resources/config.json
file.
$ ./mvnw -pl e2e-tests test -DskipTests=false
$ ./mvnw -pl gatling-tests gatling:test
Task is a CLI utility to automate running common tasks.
$ task format
$ task test
$ task build_image
$ task start_infra
$ task stop_infra
$ task start
$ task stop_infra
$ task restart
- If you find this project interesting, fork/clone it, run the application and provide feedback.
- If you find any bugs or have suggestions for improvement, then please file an issue.
- Of course, Pull Requests are most welcome.