This is ongoing project and it will has plan for several co-workers and friends.

Overview

MERN: Full-stack Chat Application

Introduction

The MERN stack which consists of Mongo DB, Express.js, Node.js, and React.js is a popular stack for building full-stack web-based applications because of its simplicity and ease of use. In recent years, with the explosive popularity and the growing maturity of the JavaScript ecosystem, the MERN stack has been the goto stack for a large number of web applications. This stack is also highly popular among newcomers to the JS field because of how easy it is to get started with this stack.

This repo consists of a Chat Application built with the MERN stack. I built this sometime back when I was trying to learn the stack and I have left it here for anyone new to the stack so that they can use this repo as a guide.

This is a full-stack chat application that can be up and running with just a few steps. Its frontend is built with Material UI running on top of React. The backend is built with Express.js and Node.js. Real-time message broadcasting is developed using Socket.IO.

Features

This application provides users with the following features

  • Authentication using JWT Tokens
  • A Global Chat which can be used by anyone using the application to broadcast messages to everyone else.
  • A Private Chat functionality where users can chat with other users privately.
  • Real-time updates to the user list, conversation list, and conversation messages

Screenshots

Global Chat

Global Chat

Private Chat

Private Chat

Login

Login

Register

Register

How to use

You can have this application up and running with just a few steps because it has both the frontend and the backend in a single repository. Follow the steps below to do so.

  1. Clone this repo
  2. Once you have the repo, you need to install its dependencies. So using a terminal, move into the root directory of the project and execute npm install to install the dependencies of the Node.js server and then run npm run client-install to install the dependencies of the frontend. The second command is a custom command that I wrote to simplify the installation process.
  3. This application uses MongoDB as its Database. So make sure you have it installed. You can find detailed guides on how to do so here. Once installed, make sure that your local MongoDB server is not protected by any kind of authentication. If there is authentication involved, make sure you edit the mongoURI in the config/keys.js file.
  4. Finally, all you have to do is simply run npm run dev. If this command fails, try installing the package concurrently globally by running npm install -g concurrently and then running the dev command.
  5. The frontend of the application will be automatically opened in your web browser and you can test it away.

Things to note

Disclaimer

This repository contains beginner level code and might contain some things I wish to change or remove. I have not maintained this for quite some time, but now I am trying to slowly fix these issues. You are welcome to open issues if you find any and I will accept PR's as well.

Cheers 💻 🍺 🔥 🙌

You might also like...

Solid Forms provides several form control objects useful for making working with forms easier.

Solid Forms Solid Forms provides several form control objects useful for making working with forms easier. Demos and examples below. # solidjs yarn ad

Jan 2, 2023

Plugin builder that compiles to several different discord client mods.

Builder Plugin builder that compiles to several different discord client mods. Supports Powercord Unbound Asstra BetterDiscord Installation git submod

Dec 1, 2022

A full-stack social media application where users can post and share their coding projects, adding friends, and joining the discussion in threaded comments on project posts.

A full-stack social media application where users can post and share their coding projects, adding friends, and joining the discussion in threaded comments on project posts.

CodeFlow Description CodeFlow is a social media application where users can post and share their coding projects with others. By logging in or signing

Dec 8, 2022

✨ View all of your GitHub stats and compare your stats with friends, made using nextjs and tailwind.

Octotastic All of your GitHub Stats in one place. Features: View your own stats or any other user's stats. View advanced stats using graphs and charts

Sep 6, 2022

This site compares your GitHub Profile to your friends, and analyses and tells your GitHub profile score too.

GitHub ⚔️ Duel Deployed at 🚀 : https://githubduel.vercel.app/ Compare your GitHub profiles with your friends It gives score to GitHub profile based o

Nov 21, 2022

Friend Finder App, asks questions and recommends friends

Friendology Friend Finder app created as a Course Project for CS-522 Social Computing, at IIT Ropar. The application asks questions regarding lifestyl

Apr 26, 2022

Planning a getaway with family or friends and looking for a trip planner app to help you figure out the logistics?

Never-Wavering-Wayfaring-Wanderlust-Adventure-Planner Planning a getaway with family or friends and looking for a trip planner app to help you figure

Jun 15, 2022

Make friends through music. Discover great sound tracks on Solana and play them with your buddies :dancer:.

Make friends through music. Discover great sound tracks on Solana and play them with your buddies :dancer:.

Acoustic Licious COVID-19 has significantly impacted the mental health of children and adults alike. Globally, the population suffering from lonelines

Oct 28, 2022

Diush - a secure funnel for selling items to your friends and network

Diush - a secure funnel for selling items to your friends and network

diush a secure funnel for selling items to your friends and network. learn more at diush.xyz » diush is an open-source mobile platform that acts as a

Dec 21, 2022
Owner
RainBow
Rainbow is beautiful and it is after heavy rain.
RainBow
An ongoing curated list of frameworks, books, articles, talks, screencasts, recordings, libraries, learning tutorials and shiny resources about Javascript Development.

Javascript Frameworks Development Welcome to the world of Javascript Frameworks. An ongoing curated list of frameworks, books, articles, talks, screen

Paul Veillard 3 Jul 31, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
The Plan: Equator

The Plan: Equator Most people overestimate what they can do in one year and underestimate what they can do in ten years. See ?? what I'm going to do i

ZhengHe 1 Jan 7, 2022
Test cloud functions, firestore triggers, fcm locally without need to upgrade for blaze plan 🔥

Idea Test and try cloud functions with FCM locally and for free without upgrade to firebase blaze plan ?? What you will learn ??‍?? Setup NodeJs for c

Emad Beltaje 18 Dec 15, 2022
In this project I write the test for several functions and used the TDD with Jest and JavaScript.

JavaScript-Testing-with-Jest npm init -y npm install --save-dev jest Once installed, you should see it in already created Json file Change Jest Script

Ben Kiboma Omayio 2 Jun 11, 2022
Several custom made and legacy icons, and icons collected all over the internet in 1 set, UI selectable.

Custom icon library Several custom made and legacy icons, and icons collected all over the internet in 1 set, UI selectable. Upon each Material Design

Marius 12 Dec 12, 2022
Claim $ARB airdrop of several wallets at the same time and transfer all the tokens to one address

arbitrum-airdrop-claimer Claim $ARB airdrop of several wallets at the same time and transfer all tokens to one address You need to have Node.js instal

Wizer 4 Mar 21, 2023
Metaschool is a virtual school that includes a set of several existing schools in society.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Balep Martin 2 Jul 9, 2022