A chat app client written in React!
This Chat Client has the following functionality:
- Register a new user.
- Login an existing user.
- Forgot Password functionality.
- Once logged in, User can retrieve chat history and chat with connected users.
A new user has to enter their details (name, email, password). The details will be sent to the /register
API endpoint and the server tries to register the new user. If there are errors, server responds with the specific errors. If not, the user will be registered in the DB and success notification is sent back.
User enters their details (email & password). The details will be sent to the /login
API endpoint and the server tries to login the user. If there are errors, server responds with the specific errors. If not, the user will be logged in, session created, and success notification is sent back along with chat history.
User enters their details (email). The details will be sent to the /forgotpassword
API endpoint and the server tries to send mail with reset details to the user. If there are errors, server responds with the specific errors. If not, the user will be sent an email with the reset token (a cryptographically secure random number), and success notification is sent back.
The email sent will have a reset link where the user enters their details (email, reset token, new password). The details will be sent to the /resetpassword
API endpoint and the server tries to reset the user. If there are errors, server responds with the specific errors. If not, the user will be reset, the reset token destroyed, new password updated in DB and then success notification is sent back.
User can read the chat history upon login. They can send & receive messages in realtime with whoever is connected to the server!
Note: I've added elements to the application to experiment with the new trend of neumorphism, you can disable it by modifying the drop-shadow
property for the relevant elements in the DOM!
This project has a code coverage of 100% with functional as well as unit tests written with care.