Skip to content

Latest commit

 

History

History
152 lines (108 loc) · 3.35 KB

README.md

File metadata and controls

152 lines (108 loc) · 3.35 KB

[OOPSocial-RealTimeChat]

Introduction

Oriented-object programming final project of the Federal Institute of Pernambuco - Campus Igarassu using Java and Node.js

Project structure (Apache Maven)

[OOPSocial]/
 |_ src
 |  |_ main 
 |  |  |_ java 
 |  |  |_ resources 
 |  |_ test 
 |  |  |_ java 
 |  |
 |_ database
 |_ server
 |_ .gitignore
 |_ .classpath
 |_ .project
 |_ pom.xml
 |_ README.md
 |_ LICENSE

Funcionalities

User

  • Create
  • Edit
  • Delete
  • Update
  • Login
  • Register

Room/Chat

  • Realtime using Socket.io
  • Room admin
  • Create Room
  • Delete Room (Only admin)
  • Filter users/rooms list

Storage

  • MySQL database
  • PBKDF2 with HMAC SHA-1
  • Each user has his salt

Patterns

  • DAO and Singleton

Getting Started

** (Considering you are in root folder of project)

Make sure you have installed:

  • mysql
  • nodejs
  • open-jdk
  • open-jre
  • maven

Clone project

    git clone https://github.com/Nasc1mento/OOPSocial-RealTimeChat

Compile

    cd OOPSocial-RealTimeChat
    mvn clean install

Create database**

    mysql -u<your_user> -p < database/script.sql

Start socket server**

    cd server && node index.js

Execute**

    mvn exec:java

Screenshots

Home page

Screenshot from 2023-01-29 20-49-43

Login

Screenshot from 2023-01-29 20-53-30

Register

Screenshot from 2023-01-29 20-50-01

Dashboard

Screenshot from 2023-01-29 20-49-21

Edit profile

Screenshot from 2023-01-29 20-49-31

Show rooms

Screenshot from 2023-01-29 20-49-03

Show users

Screenshot from 2023-01-29 20-49-26

Chat

Screenshot from 2023-01-29 20-47-05

Room chat

Screenshot from 2023-01-29 21-01-46

Screenshot from 2023-01-29 21-02-00

Database diagram

Screenshot from 2023-01-29 20-12-14

Maven Dependencies

  • MySQL Connector 8.0.31
  • Maven Compiler Plugin 3.8.1
  • Socket IO Client 2.1.0
  • Google Guava 31.1-jre
  • JUnit 4.13.2

My Specifications

  • Node 18.12.1
  • Java 11
  • Maven 3.8.7
  • MySQL 8
  • Arch Linux(Distrobox)

License

MIT