Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

sivaprasadreddy/techbuzz

Repository files navigation

TechBuzz

TechBuzz is a place to share the interesting tech news such as blog posts, videos, release news etc.

Features

  • 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

Tech Stack

  • Java, SpringBoot
  • Postgres, jOOQ, FlywayDb
  • Spring Security
  • Thymeleaf, Bootstrap, jQuery
  • JUnit 5, Testcontainers

Architecture Decision Records (ADRs)

Install Prerequisites

  1. 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
  2. Install Docker

    Follow https://docs.docker.com/engine/install/ for installing Docker for your OS.

HOW TO?

Run Unit / Integration Tests

$ ./mvnw verify

Format code

$ ./mvnw spotless:apply // to formatting code automatically
$ ./mvnw spotless:check // to verify the code formatting

Run application locally

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 application using docker-compose

$ ./run.sh start

Run PlayWright E2E Tests

Make sure the application is running and configure correct values in src/test/resources/config.json file.

$ ./mvnw -pl e2e-tests test -DskipTests=false

Run Gatling Tests

$ ./mvnw -pl gatling-tests gatling:test

Using Taskfile for running various tasks

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

How to contribute?

  • 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.

About

A place for techie to share knowledge, blog posts, tech news etc

Topics

Resources

Readme

License

Apache-2.0 license

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7