Obiadekchat - https://obiadekchat.now.sh/
Built with MERN stack (MongoDB, Express, React and Node) and socket.io. End to end RSA encrypted web chat single page application. User's have intuitive ways to customize their profiles and they can easily adjust security options in settings.
⚡️⚡️⚡️ Obiadekchat ⚡️⚡️⚡️
This website enables users to message their friends without the need to provide any personal data. Messages are end-to-end RSA encrypted and by default are deleted 5 minutes after being viewed by the receiving user.
- Registration and authentication
- User account is generated when the new user visit the website for a first time.
- Because of this fact, customizing it is intuitive and easily accessible.
- User settings and profile customization
- There are real time notifications about user's contacts
- Adding new contacts with a Search ID
- Adding new contacts with a URL
- Removing contacts
- Especially for a chat application it is very important to look (and work) good on mobile devices. Please see for yourself using developer's tools in your browser
Project is created with:
- Express
- Mongoose
- JWT Tokens for authentication
- bcryptjs for one way password hashing
- socket.io for real-time, bidirectional, event based communication between client and server. Oh and also for having a level of abstraction over managing WebSockets, long polling, etc.
- mocha
- React JS
- Redux (although I am moving away from it)
- Redux Thunk
- Axios
- rsuite (although I am moving away from it because of bad a11y support)
- Hybrid Crypto JS
- WDYR for help with optimization in development mode
- Full a11y compliance. As of now only the Starting page is easily navigated with keyboard and has 100% correct aria labels.
- Polish localization.
- Being able to use one account on different devices.
- Better test coverage.
- Cleaner and faster code.
- Many, many other things.
To run this project, install it locally using npm:
$ git clone https://github.com/radekxrandom/obiadekchat.git
Backend
$ cd obiadekchat/back
$ yarn install (install backend dependencies)
$ yarn run devstart (use nodemon to auto reload on changes)
Frontend
$ cd obiadekchat/front
$ yarn install (install frontend dependencies)
$ yarn start
Remember to create .env file and populate it with constants needed for the application to work.