Social media app based on Twitter with Firebase, Modular and MobX

TweetApp – Twitter-based Social Network

Welcome to the TweetApp repository, a mobile project for a social network based on Twitter, developed using Dart with Flutter. This application allows users to share their thoughts in short messages called Tweets, as well as interact with others through comments, likes, and following other users.

Features

TweetApp currently includes the following features:

  1. User Login and Registration: Users can create accounts, log in, and access their existing accounts.

  2. Tweet Creation: Users can compose Tweets to share with their followers.

  3. Comment Creation: In addition to Tweets, users can comment on other users’ posts.

  4. Photo and Like System: Users can include photos in their Tweets and comments, as well as give likes to other users’ posts.

  5. Follow System: Users can follow other users and view a feed of Tweets from those they follow.

  6. Personalized Feed: The app presents a feed that combines Tweets from the users the current user is following.

  7. User Search by Identifier: Users can search for other users by specific identifiers.

How to Run the Project

  1. Make sure you have Flutter installed on your machine. If you haven’t installed it yet, follow the instructions at flutter.dev to install the latest stable version.
  2. Clone this repository:
bashCopy code
git clone https://github.com/your-username/TweetApp.git
  1. Navigate to the project folder:
bashCopy code
cd TweetApp
  1. Create a project on Firebase at https://console.firebase.google.com.
  2. Add the appropriate configurations for Firebase services (Firebase Auth, Firebase Firestore, and Firebase Storage) to ensure TweetApp functions correctly.
  3. Run the project on an emulator or physical device:
bashCopy code
flutter run

State Management

TweetApp uses Mobx for state management, a powerful library for reactive state control. Mobx makes it easy to update user interface components in response to changes in the app’s state.

Dependency and Routing Management

For dependency management and routing handling, TweetApp utilizes Flutter Modular. Flutter Modular is a library that organizes and modularizes the project’s structure, making it easier to maintain and scale.

Back-End: Firebase

TweetApp utilizes Firebase services as the back-end platform, leveraging the resources provided by Firebase to ensure a smooth and reliable user experience. The Firebase setup includes:

  • Firebase Auth: Used for user authentication, enabling secure registration and login.
  • Firebase Firestore: Responsible for storing user information, Tweets, and the Follow system. It is a real-time database that keeps information synchronized across all connected devices.
  • Firebase Storage: Utilized to store photos of Tweets, comments, user profile pictures, and banners.

Contributing

Contributions are welcome! Feel free to open issues or send pull requests with improvements, bug fixes, or new features.

License

This project is licensed under the MIT License.

GitHub

View Github