Skip to content

Lucianoottor/message-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Message App with WebSocket and JWT authentication

💡 Overview

The Message App is a project developed for real time exchange of messages. It has multiple technologies for authentication, exchanging of messages using socket and API development for CRUD.

✨ Features

  • 🔐 User Authentication: Secure login with JWT Token and expiring token.
  • 🌎 Chat rooms: Chat rooms using socket.io to exchange messages safely.
  • 📄 Databases: CRUD technology using MySQL and sequelize to store password hashes, conversation messages and more.
  • 🔍 Creating messages and filtering users: Create message as groups or individuals and search for the users you want to assign.
  • 🖥️ API Restful: Rest APIs developed to manage conversations, users, chatrooms and others.
  • ❗ Disclaimer: In the backend, Im not using .env file to setup variables so people can check on passwords, ports and etc., however in a real project it's higly recommended to do so and do not save confidential variables in the code.

🛠️ Tech Stack

React: A JavaScript library for building dynamic and responsive user interfaces. Node.js: A back-end JavaScript runtime environment used to build the server-side application. Express.js: A minimal and flexible Node.js web application framework used for building the RESTful API. Socket.IO: A library that enables real-time, bidirectional and event-based communication for the chat functionality. Sequelize: A modern Node.js ORM (Object-Relational Mapper) for managing the MySQL database with models and associations. MySQL: An open-source relational database used for data persistence. Bcrypt: A password hashing function designed to securely store passwords by converting them into an irreversible, unique code. JSON Web Tokens (JWT): An open standard for securely creating access tokens, used for user authentication and session management. Tailwind CSS: A utility-first CSS framework for rapidly building custom user interfaces.

📦 Getting Started

To get a local copy of this project up and running, follow these steps.

🚀 Prerequisites

  • Node.js (v18.x)
  • Npm If you prefer using npm for package management and running scripts.
  • MySQL (or another supported SQL database).

🛠️ Installation and Execution

  1. Clone the repository:
    git clone [https://github.com/Lucianoottor/message-app.git](https://github.com/Lucianoottor/message-app.git)
    
  2. Install backend dependencies:
    cd message-app/backend
    npm install
  3. Run the app and server in two distinct instances:
    cd message-app/backend
    node app.js
    node server.js
  4. Run the frontend:
    cd message-app/frontend
    npm start
    

About

App for exchanging messages using Websocket, Node.js and React

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors