earthcomfy / lets-chat

Real-time chat app using Firebase, React, TailwindCSS, MongoDB, Node/Express, and Socket.io
240 stars 89 forks source link
express firebase mern-stack mongodb nodejs react real-time-chat-app socketio tailwindcss

Let's Chat

A real-time chat application. Another fun side project :)

Screenshot from 2022-09-07 16-27-25

Screenshot from 2022-09-07 17-11-16

GIFs are attached at the end.

Technologies Used

Basic Features

Getting Started

To run this project locally, follow these steps:

  1. Clone the repository.
  2. Install the dependencies:
    • Navigate to the frontend directory and run npm install.
    • Navigate to the server directory and run npm install.
  3. Set up Firebase:
    • Go to the Firebase Console.
    • Create a new project or select an existing one.
    • Go to the project settings or service accounts section.
    • Click on "Generate new private key" or a similar option.
    • Save the downloaded JSON file as serviceAccountKey.json.
    • Place the downloaded serviceAccountKey.json file in the server/config directory.
  4. Set up Environment Variables:
    • In the frontend directory, create a new file named .env based on the .env.example file.
    • Update the values of the environment variables in the .env file with your Firebase configuration details.
    • In the root directory, create a new file named .env based on the .env.example file.
    • Update the values of the environment variables in the .env file according to your preferences. For example, set the PORT variable to specify the desired port for the server and set MONGO_URI to your MongoDB connection URI.
  5. Run the server:
    • Navigate to the server directory and run npm run start.
  6. Run the client:
    • Navigate to the frontend directory and run npm start.
  7. The application will be accessible at http://localhost:3000.

Please make sure to keep the serviceAccountKey.json file and sensitive information secure and not commit them to version control.

GIFs

chrome-capture-2022-8-7

chrome-capture-2022-8-7 (1)

chrome-capture-2022-8-7 (2)