Charcha is a chat application made using flutter and leveraging the power of Bloc architecture. This project aims to provide users with a seamless and responsive chatting experience while showcasing the advantages of using the Bloc pattern for state management.
- Developed entirely with Flutter, a cross-platform UI toolkit, ensuring a consistent user experience on both Android and iOS devices.
- Utilizes the Bloc (Business Logic Component) architecture to manage the application's state in a clean and modular way.
- Separates concerns by dividing the application into three main components: Events, States, and Blocs.
- Implements a secure user authentication system using JWT, ensuring that only authorized users can access the chat application.
- Both sign up and sign in features implemented in such a way that after entering email, user will be redirected to respective screen based on if they have already reistered or not.
- Real time messaging system created using websockets. Users will be able send messages and also receive them without refreshing the current screen as sockets will keep listening to new message events.
- Read receipts are also created to show whether the receiver has opened the message or not. This feature is also implemented using Websockets and users can see the tick color changing from light grey to white when receiver opens the message.
- Users can reply to any previous message by just double clicking on the message.
- UI has been created for both light mode and dark mode lovers. Users will be able to select which mode they want for the app.
Backend of charcha is made using node.js with typescript, expressjs and mongoDB. Link to the backend repository: https://github.com/Akshat1903/charcha-backend
- Profile creation and edit screens.
- Group chats.
- Call feature.
⭐️ If you find this project helpful, consider leaving a star to show your support! ⭐️