/WeConnect

WeConnect is an real time chat application with individual / group chat options and various other features like notifications/auth etc.

Primary LanguageJavaScript

Contributors Forks Stargazers Issues

LinkedIn


Logo

We-Connect

An awesome Real time chat application with message encryption!


View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

WeConnect is a Real time chat application with message encryption & password hashing. This is an individual project with took around 8 days to complete.

Features:

  • End to End encryption done (users messeges do not go to server side directly, they are encrypted with a key which is only accessable to client side. They are only decrypted once the messeges are fetched in client side using the key which was used for encrypting it)
  • Messenging (Single/Group chat)
  • Authentication (JWT + httpOnly Cookies)
  • Responsiveness
  • Profile Images using cloudinary (Users can upload their profile images)
  • Searching users from database
  • Debouncing (a debounce of 500ms is implemented in search results)
  • Context API
  • Creating groups in individual chats
  • Loading indicators
  • Dark/Light themes
  • Chat update time is dynamic

Currently Working on:-

  • OAuth
  • Adding Multer to make user profile

(back to top)

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

  • React
  • ChakraUI
  • NodeJs
  • Express
  • MongoDB
  • Mongoose
  • SocketIO

(back to top)

Getting Started

The setup of the project is quite easy. Clone the repository, there are two main folders named "Frontend" & "Backend". You need to setup both server(Backend) & frontend(Frontend) seperately.

Prerequisites

Node version 14 OR 14+ is preferable, to check your current node version you can use the command below-

  • npm
    node -v

Installation

Step by step setup of the project in local environment.

  1. Clone the repo

    git clone https://github.com/aaryansinha16/weconnect.git
  2. First let's start the backend server

    cd backend
  3. Install node modules

    npm i
  4. Finally Start Command

    npm start

    With this your backend server is live now(locally), Now to start the frontend create a new instance of terminal in the same folder then:-

  5. Go to the frontend folder

    cd frontend
  6. Install node modules

    npm i
  7. Finally Start Command

    npm run dev

NOTE: I have used Vite + React in frontend, thus remember to use npm run dev for start command

(back to top)

Some Screenshots of the Project

encrypt abc lig chatP src grp

(back to top)

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Contact

Aaryan - @aaryansinha16 - aaryansinha16@gmail.com

Project Link: https://we-connect-now.vercel.app/

(back to top)