/ThinkMoreForum-Backend

ThinkMore Forum backend build with Spring Boot, JWT, Prometheus.

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Watchers Forks Stars

LICENSE Code Size Stars

ThinkMore.mp4

ThinkMoreForum is a place for people to make any kind of discussion, where people come together to share their opinion. As a discussion platform, it is multifunctional, interactive, and mobile-ready. Administrators can easily set the look and topic of the forum, manage user permissions, and customize the site footer. The development process uses Jira as an agile scrum software to help the team organize and prioritize the work, and uses Github as a version control tool for a lightweight, branch-based workflow. From a technical perspective, the project uses message queues to send emails, and implements high-level JWT updates and protection, constructs WebSocket to achieve real-time online users and real-time notifications.

Project Architecture

Front-end Back-end
• Next.js
• Redux
• Typescript
• MUI
• Axios
• Husky
• Jest
• Eslint
• Sass-lint
• Prettier
• Yup, Formik
• Spring boot
• Lombok & Mapstruct
• Flyway & PostgreSQL (JPA)
• Swagger & Postman
• Spring Security & JWT
• Jacoco & Mockito
• RabbitMQ (amqp)
• Amazon S3 (MinIO)
• Redis (Jedis)
• Sockjs (websocket)
• Sendgrid (Email)

Project Architecture

Development

Pre Install:

  1. JDK 11
  2. Docker
  3. Intellij Idea

Step:

  1. Open the project Intellij Idea IDE and aut
  2. Run $ docker-compose up -d
  3. Run project in Intellij Idea IDE

Deployment

  1. Deploy Minio ./docker/minio/docker-compose.yml
  2. GitHub Action ./.github/workflows/build.yml

Grafana (Offline)

JVM (Micrometer) - Amazon Managed Grafana AWS Cloud - Amazon Managed Grafana