Coder Social home page Coder Social logo

kylejvh / materialchat Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 2.34 MB

Real-time chat app built with React, Material-UI, & socket.io+Node.js. Try it out! ⬇

Home Page: https://kjvh-materialchat.herokuapp.com/login

HTML 7.30% JavaScript 92.70%
react redux material-ui socket-io mongodb express nodejs mongoose chatrooms realtime

materialchat's Introduction

MaterialChat

A real-time, multi-user chat application built using React, Material-UI and Socket.io/Node.js/Express.

Production Build: Demo

Please be patient, Heroku servers can take a minute to spin up from sleep.

Recordit GIF


Features

  • Fully persitent: Create chatrooms, send messages, and customize your username and avatar - all saved on the backend database.

  • Realtime: Interact in chatrooms as you wish. New messages, chatrooms, and active users will update nearly instantly.


Libraries and Technologies

Frontend

  • Built with React, React Hooks, and Redux.
  • Uses Material-UI styled components and design system.

Backend

  • Node.js/Express
  • MongoDB, Mongoose
  • JWT, SendGrid, Stripe

Additional

  • Uses socket.io for realtime events such as messaging, chatroom tracking, active user lists, and typing notifiers.
  • Basic Cypress and Jest tests are included and will be improved as time allows.

Project Setup

This project is set up as a monorepo - it has separate package.json files for the client and server. The root directory package.json is set up for the backend server, and the package.json inside the client folder is for the Create-React-App based client.

Backend Configuration

The backend server will not function without a MongoDB server and the correct cofiguration variables. In the future, I may use Docker to make this easier to get up and running. For now, you will need:

  • MongoDB server
  • JWT
  • SendGrid API key

Setup Steps

  1. Fork or clone this repository.

  2. Install the required dependencies for the server and client by navigating to the root project directory and running:

npm i
cd client
npm i
  1. Configure the backend server using the configuration guidelines above.

  2. To run the application in development, you will have to run the commands to start the server, and change directories to start the client dev server. From the root directory, run:

npm run server
cd client
npm start
  1. Navigate to localhost:3000 in your browser and you should see the client dev server.

  2. If the backend server is configured and running, you can make requests at localhost:3100 with Postman or other development tools.


Contact

Reach out to me with questions, comments, etc:

My portfolio:

materialchat's People

Contributors

dependabot[bot] avatar kylejvh avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

behzad-az

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.