Skip to content

💬 Web based Chat application built with NodeJS and React

License

Notifications You must be signed in to change notification settings

andyzhp234/QuickChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation





Logo



QuickChat

Quickchat is a chat application that allows users to connect and communicate in real-time. With Quickchat, users can easily create accounts, find and add friends, and start conversations with individuals or groups. Quickchat is designed to be fast, simple, and intuitive, with a clean and modern interface that makes it easy to use

Project is live on quick-chat.app

Documents

Design Documentations can be found here.

Screenshots

screenshot

screenshot

screenshot

Features

  • Avatar
  • Rate Limiter
  • User authentication
  • Real-time messaging
  • Direct messaging
  • Group Chats
  • Audio and video calls
  • Screen sharing
  • View message history and retrieve messages using pagination
  • Friends list
  • Friend Requests
  • Online indicators
  • Group Chat All Participants info
  • Emojis support
  • Multi-device compatibility
  • Responsive Layout

Technologies

Frontend

Technologies Description
React.js Javascript Library for building user interfaces
React Hooks New addition in React 16.8 that let you use state and other React features without writing a class
React Router v6.4.2 Javascript standard library for routing in React
Axios Node.js packages that implements the Promise API and used to make HTTP Requests
Redux.js An open-source JavaScript library for managing and centralizing application state.
Redux toolkit Redux official, opinionated, batteries-included toolset for efficient Redux development
Redux DevTools Chrome extensions that helps for debugging Redux state
Emoji-mart Node.js packages that is a customizable emoji picker
Socket.io-client Node.js packages that enables real-time bidirectional communication between a web browser and a server using the WebSocket protocol
WebRTC API A technology that support video chat, voice calls, file sharing, and other peer-to-peer communication features directly in the browser, without the need for a separate communication infrastructure.
Vite Modern dev & build tool for JavaScript projects

Backend

Technologies Description
Node.js An open-source server environment
Express.js A back end web application framework for building RESTful APIs with Node.js
Dotenv Node.js packages that loads environment variables from .env file into process.env
Cors Node.js packages that can be used to enable CORS with various options
Bcrypt.js Node.js packages that enables storing of passwords as hashed passwords instead of plaintext
Google Domain A domain name registrar operated by Google.
Redis node-redis is a modern, high performance Redis client for Node.js.
Helmet Help secure Express/Connect apps with various HTTP headers
PostgreSQL a free and open-source relational database management system emphasizing extensibility and SQL compliance.
Sequelize Node.js ORM for PostgreSQL
Socket.io Node.js packages that enables real-time bidirectional event-based communication
uuid Node.js packages that generate unique ID

Dev Tools

Technologies Description
Visual Studio Code Code Editor
Postman API platform for developers to design, build, test and iterate their APIs

Improvement

  • Support file sharing.
  • Allowing users to upload their avatar
  • Voice messages
  • Rich Text Sending
  • Chatbot intergrations