This Flutter project utilizes the Bloc state management pattern along with Firebase for backend functionalities. It aims to provide a robust platform for users to interact, share content, and communicate seamlessly.
- Easy handle user authentication, allowing smooth login and registration processes.
- Implemented validation to ensure each user registers with a unique email.
- Allow users to edit their profile information.
- Introduced features for users to follow and unfollow each other.
- Enhanced user experience with intuitive profiles, enabling easy exploration of other users' details.
- Simplified user discovery through robust search functionality.
- Implemented a dynamic post feed, displaying posts which created by followings of the user with the ability to load more for endless content consumption.
- Enabled users to create, edit, and delete their posts, ensuring full control over their content.
- Fostered engagement with features like liking posts and leaving comments.
- Enabled users to edit and delete their comments , and for thier posts they can delete any comment.
- Facilitated communication between users with a robust messaging system.
- Empowered users to edit and delete their messages..
- Allowing the user to delete the other user’s message, and this only affects the user’s chat and not the other user’s chat.
- Simplified organization with the ability to delete entire chat and this lead to delete all messages in this chat in user's chat not in other user's chat.
This project uses the following dependencies:
cupertino_icons
for Flutter's Cupertino iconsflutter_bloc
for implementing the Bloc state management patternbloc
for core functionality in Bloc-based state managementconditional_builder_null_safety
for conditional widget buildinghexcolor
for converting hexadecimal color codesshared_preferences
for persistent key-value storagesmooth_page_indicator
for customizable page indicatorsdio
for HTTP requestsfluttertoast
for displaying toast notificationsimage_picker
for picking images from devicelike_button
for customizable like buttonsfirebase_core
for initializing Firebase appsfirebase_auth
for authentication servicescloud_firestore
for real-time NoSQL database capabilitiesfirebase_storage
for accessing Firebase Cloud Storagefirebase_cloud_messaging
for real-time messaging between users