AthirsonSilva / chatter-chain

A simple chat web application made with Java, Spring Boot, Thymeleaf and Spring Security OAuth2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chatter Chain

A simple chat web application made with Java, Spring Boot, Thymeleaf and Spring Security OAuth2. When using the application, you can login with your Google or GitHub account and start chatting with other users.

The application is deployed on Railway, you can check it out here.

The project is still in development. You can check the project status below.

Requirements

Project Features

Feature Status
Consistent API design 🟑 In development
Use of DTOs 🟒 Ready
Spring Security and OAuth2 🟒 Ready
Login with Google and GitHub 🟒 Ready
Spring Data MongoDB 🟒 Ready
Layered architecture 🟑 In development
Global Error Handling 🟑 In development
API versioning 🟒 Ready
Logging with Log4j2 🟑 In development
CI/ CD with Docker and Railway 🟒 Ready

Architecture Layers

PRESENTATION LAYER

This layer is at the top of the architecture. This tier is responsible for:

βœ”οΈ Performing authentication.

βœ”οΈ Converting JSON data into an object (and vice versa).

βœ”οΈ Handling HTTP requests.

βœ”οΈ Transfering authentication to the business layer.

BUSINESS LAYER

The business layer is responsible for:

βœ”οΈ Performing validation.

βœ”οΈ Performing authorization.

βœ”οΈ Handling the business logic and rules.

PERSISTENCE LAYER

This layer is responsible for:

βœ”οΈ Containing storage logic.

βœ”οΈ Fetching objects and translating them into database rows (and vice versa).

DATABASE LAYER

This layer is simply the actual database that is responsible for:

βœ”οΈ Performing database operations (mainly CRUD operations).

Software structure

image

Getting Started

  1. Clone the repository
  2. Navigate to the project directory
  3. Build the project using Maven:
./mvnw clean package -DskipTests
  1. Run the project using Maven wrapper:
./mvnw spring-boot:run

Usage

  1. The application will start on http://localhost:8080, you can simply access it in your browser.

About

A simple chat web application made with Java, Spring Boot, Thymeleaf and Spring Security OAuth2


Languages

Language:Java 57.0%Language:JavaScript 21.7%Language:HTML 20.2%Language:Dockerfile 1.1%