Skip to content

MatthieuClaessens/PingR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

167 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 
   

PingR

   

RESTful Instant Messaging System

 

 

🚀 Software Engineering Capstone Project | Class of 2026

    

                             


📖 Overview

PingR is a high-availability communication platform developed as a Software Engineering flagship project. Heavily inspired by the user experience of Discord, this release focuses on establishing a robust multidirectional communication flow and resolving critical identity management issues in multi-tenant environments.

💡 Engineering Decision: To simulate real-time interaction, PingR implements a Short Polling strategy (5s cycles). This choice ensures Client/Server state consistency while operating on a standard, secure, and scalable REST API infrastructure.

📋 The complete functional specifications and system analysis are available in the /analyse directory of this repository.


🎨 1. Design & Modeling (UML & MERISE)

🖋️ UI/UX Prototyping (Figma)

Desktop Interface Design Component & User Flow Architecture
Figma Desktop Figma Architecture

🛠️ Software Architecture (UML)

Software architecture defines the interactions between users and system components.

Use Case Diagram Sequence Diagram Class Diagram
Use Case Sequence Diagram UML Class

📊 Persistence Layer (MERISE)

Database modeling, from conceptual to logical levels.

Conceptual Data Model (MCD) Logical Data Model (MLD)
MCD Schema MLD Schema

⚙️ 2. Backend Architecture & API

The project follows a rigorous N-Tier Architecture to decouple concerns:

  1. Controller Layer: REST endpoints exposure and payload validation via Spring Web.
  2. Service Layer: Business logic, transaction management, and security checks.
  3. Repository Layer: Data Access via Hibernate and Spring Data JPA.

🛠️ Tech Stack & Methodology

Layer Technologies
Backend Framework Spring Boot 3.5.7
Application Server Apache Tomcat 10.1.x (Embedded)
ORM & Persistence Hibernate (JPA), PostgreSQL 18.1
Security Auth JWT (HS256), BCrypt, DTO Pattern

🌐 3. Network & Deployment Architecture (Docker)

The infrastructure is fully containerized to ensure portability and environment parity.

Service External Port Internal Port Role
Frontend (dev) 5173 5173 React UI (Vite)
Backend API 8080 8080 Spring Boot API
Database 5432 5432 PostgreSQL Server
Adminer 8081 8080 DB Management GUI

✅ 4. Quality Assurance & DevOps

  Unit Test Results

Containerization: The entire ecosystem is orchestrated via Docker Compose, ensuring "one-command" deployment and environment isolation.


📸 5. Technical Showcase (Frontend)

🌐 UI & Multidirectional Messaging

  Front-end Preview

🛡️ Authentication & Session Guard

Client Interface Session Storage (JWT Management)
PingR UI PingR Debug

Pro Tip: I migrated from localStorage to sessionStorage to ensure strict browser tab isolation. Sensitive tokens are automatically cleared when the tab is closed.


🚀 6. Installation

# Clone the repository
git clone https://github.com/MatthieuClaessens/PingR.git

# Navigate to project
cd PingR

# Spin up the entire stack via Docker
docker-compose up --build

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages