Code Monkey home page Code Monkey logo

mern-chart-app's Introduction

Chat App

It is a normal chatting web app like any other app. Fully responsive, mobile first aproach. Build with MERN stack. Hosted with Netlify.


netlify deployment status MIT badge

screen shot of chat app

Get started

You can see this project live here.


Build with

These were the main technologies used in this project.

  • Mongodb - Nosql document based database
  • ExpressJS - NodeJS framework for web and mobile applications
  • React - JavaScript library for building user interfaces
  • Redux - A Predictable State Container for JS Apps
  • NodeJS - JavaScript runtime engine built on Chrome's V8 JavaScript engine a that runs javascript outside the web browser

some other technologies are,

  • Sass - Preprocessor scripting language for CSS
  • react-bootstrap - The most popular front-end framework for UI components
  • Bootstrap - The most popular front-end framework
  • Pusher - Powering realtime experiences for mobile and web
  • JWT - JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties
  • Mongoose - Mongoose provides a straight-forward, schema-based solution to model your application data
  • Multer - Package for handeling files from form data
  • Pug - Template generator for server side rendering.

Local setup

Client and server has separate repository and therefore two server will be running at the same time at different root level directory. So, keep them separately.

folder structure of project

Prerequisites

Install node, npm and git .


Server setup

git clone https://github.com/ramankarki/chat-app-api.git

cd chat-app-api

npm install nodemon -g

npm install

Create a config.env file in root and add some env variables.

NODE_ENV=development
DB_STRING=your mongodb database string

// I have used sendgrid to send emails,
// create a sendgrid account and after your setup is done add your credentials here

SENDGRID_USERNAME=your sendgrid username
SENDGRID_PW=your sendgrid password
EMAIL_FROM=email from which you are sending mails.

JWT_SECRET=any random string you want (preferred min 32 strings)
JWT_EXPIRES_IN=expiry date for your jwt tokens
JWT_COOKIE_EXPIRES_IN=expiry date for your cookies

// I have used pusher to make this app real time
// create a pusher account and after your setup is done add your credentials here

PUSHER_APP_ID=your pusher app id
PUSHER_KEY=your pusher app key
PUSHER_SECRET_KEY=your pusher secret key
PUSHER_CLUSTER=your pusher app cluster

Now you are done and can start your development server

npm run dev

Client setup


git clone https://github.com/ramankarki/chat-app-client.git

cd chat-app-client

npm install

Create a .env file in root and add an env variable, since I have used sass.

SASS_PATH=node_modules:src/*

Create a config folder inside /src folder and create dev.js file inside config folder to add some secret keys.

module.exports = {
  PUSHER_KEY: "YOUR PUSHER KEY FOR CLIENT SIDE",
  PUSHER_CLUSTER: "YOUR PUSHER CLUTER",
};

Now you are done for client side as well and can start your react development server

npm run dev

Now it should open homepage of this chat app on your default browser

home page for chat app

mern-chart-app's People

Contributors

sallamy2580 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.