Code Monkey home page Code Monkey logo

chatvia-mern's Introduction

Chatvia💬

Chatvia is a real-time chat app built with the MERN stack. It features live messaging using Socket.IO, state management with Zustand, and notifications with React Toast. Users can send messages, see who's online, receive notifications, and enjoy a dynamic chat experience with a shake message effect. User accounts are personalized with unique usernames and avatars based on gender and name.

Chatvia.mp4

Demo

Here is a working live demo: Chatvia.

Technologies Used

  • Frontend:

    • React.js: Used for building the user interface and managing the application's state.
    • React Router: Used for routing within the application.
    • Axios: Used for making HTTP requests to the backend API.
    • Bootstrap: Used for styling and layout of the application.
    • Socket.IO Client: Used for real-time messaging and online user status with the server.
    • Zustand: Used for state management, particularly for managing user conversations.
    • React Toast: Used for displaying toast notifications.
    • React Helmet: Used for managing document head tags.
  • Backend:

    • Node.js: Used as the backend server environment.
    • Express.js: Used as the backend web application framework for Node.js.
    • MongoDB: Used as the database to store application data.
    • Mongoose: Used as an Object Data Modeling (ODM) library for MongoDB and Node.js.
    • JWT (JSON Web Tokens): Used for user authentication and authorization.
    • bcrypt.js: Used for hashing passwords before storing them in the database.
    • Socket.IO: Used for real-time bidirectional event-based communication between clients and the server.

Learning Experience

This project taught me the intricacies of real-time chat applications using Socket.IO. I gained hands-on experience with Zustand for state management, learned to run the backend and frontend on the same port, and successfully deployed the application using Render.

Deployment

The app is deployed using the free hosting provided by render.

Inspired by

https://chatvia-node.themesbrand.website/.

Setup

Clone this repo to your desktop and run npm install to install all the dependencies.

.env file

DB=...
SALT_ROUND=...
SECRET=...
NODE_ENV=...

Build the app

npm run build

Start the app

npm start

Contributing

Feel free to reach out for more details or to collaborate!

chatvia-mern's People

Contributors

hebahamdan2 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.