Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/themehdihn/mini-chat

A simple Mini Chat App built with React.js, Node.js, Socket.IO, and MySQL. Features real-time messaging, username-based login, message history, and validation for alphanumeric usernames. Includes a scroll-to-latest-message button and displays the current user's name. Designed for learning and practicing Full Stack development.
https://github.com/themehdihn/mini-chat

express-js expressjs mysql node-js nodejs react-hooks react-router reactjs sequelize socket-io socket-programming socketio

Last synced: 3 days ago
JSON representation

A simple Mini Chat App built with React.js, Node.js, Socket.IO, and MySQL. Features real-time messaging, username-based login, message history, and validation for alphanumeric usernames. Includes a scroll-to-latest-message button and displays the current user's name. Designed for learning and practicing Full Stack development.

Awesome Lists containing this project

README

        

# Mini Chat App

A simple chat application built using **Socket.IO**, **Node.js**, **React.js**, and **MySQL** to enable real-time messaging. It is designed for learning and practicing Full Stack development.

---

## Features

- **Username Login**: Users must enter a username to join the chat.
- **Real-Time Messaging**: Messages are instantly shared between all connected users.
- **Message History**: Newly connected users can view previous messages.
- **Username Validation**: Only alphanumeric usernames with underscores are allowed (no non-English characters).
- **Scroll to Latest Message**: A button allows users to quickly scroll to the latest chat message.
- **Active User Display**: The current user's username is displayed at the top of the chat.

---

## Screenshots


Screenshot 1
Screenshot 2

---

## Technologies Used

- **Frontend**: React.js
- **Backend**: Node.js and Express.js
- **Database**: MySQL
- **Real-Time Communication**: Socket.IO
- **Styling**: CSS

---

## Prerequisites

- **Node.js** (version 16 or higher)
- **MySQL**
- **NPM** or **Yarn**

---

## Installation

1. Install MySQL and create a database for the app:
```sql
CREATE DATABASE your_database_name;
```
2. Install dependencies for the app:
```bash
npm install
```

## Running the App

- **BackEnd**: Run the following command to start the app:
npm start

- **FrontEnd**: Run the following command to start the app:
npm run dev

## Contributing

Contributions are welcome! If you want to contribute to Mini-Chat, please fork this repository, make your changes, and submit a pull request.