This project is an Instagram-like social media application built using Flutter. It features a highly appealing UI with various screens and functionalities. The app integrates with Firebase for backend services, including authentication and data fetching. It maintains state using the Provider pattern and follows a clean Flutter architecture.
- Appealing UI: The app has a visually appealing user interface with smooth animations and transitions.
- Multiple Screens: The app includes various screens such as Home, Profile, Post, Authentication, and more.
- Authentication: Users can sign up, sign in, and manage their profiles using Firebase Authentication.
- State Management: The app uses the Provider pattern for state management, ensuring a predictable and maintainable state.
- Firebase Integration: The app fetches data from Firebase Firestore and uses Firebase Storage for storing media files.
- Clean Architecture: The project follows a clean architecture, making it easy to scale and maintain.
Watch the video demonstration of the app to see it in action: Pinstagram Video Demonstration
-
User Authentication:
- Users can sign up or log in using their email and password.
- Firebase Authentication handles the authentication process.
-
Home Screen:
- Displays a list of posts from users.
- Users can like, comment, and share posts.
-
Search Functionality:
- Users can search for profiles and posts.
- The search results are fetched from Firebase Firestore.
-
Post Creation:
- Users can create new posts with images and captions.
- Posts are stored in Firebase Firestore and images in Firebase Storage.
-
Profile Management:
- Users can view and edit their profile information.
- Profile data is stored and retrieved from Firebase Firestore.
-
State Management:
- The app uses the Provider pattern to manage the state of the application.
- Ensures a predictable and maintainable state throughout the app.
-
Data Fetching:
- The app fetches data from Firebase Firestore for posts and user information.
- Firebase Storage is used for storing and retrieving media files.
-
Clean Architecture:
- The project follows a clean architecture, separating the UI, business logic, and data layers.
- Makes the codebase easy to maintain and scale.
Would you like to proceed with the technologies used section next?## Workflow
-
User Authentication:
- Users can sign up or log in using their email and password.
- Firebase Authentication handles the authentication process.
-
Home Screen:
- Displays a list of posts from users.
- Users can like, comment, and share posts.
-
Search Functionality:
- Users can search for profiles and posts.
- The search results are fetched from Firebase Firestore.
-
Post Creation:
- Users can create new posts with images and captions.
- Posts are stored in Firebase Firestore and images in Firebase Storage.
-
Profile Management:
- Users can view and edit their profile information.
- Profile data is stored and retrieved from Firebase Firestore.
-
State Management:
- The app uses the Provider pattern to manage the state of the application.
- Ensures a predictable and maintainable state throughout the app.
-
Data Fetching:
- The app fetches data from Firebase Firestore for posts and user information.
- Firebase Storage is used for storing and retrieving media files.
-
Clean Architecture:
- The project follows a clean architecture, separating the UI, business logic, and data layers.
- Makes the codebase easy to maintain and scale.
- Flutter: The framework used for building the app.
- Dart: The programming language used with Flutter.
- Firebase Authentication: For user authentication.
- Firebase Firestore: For storing and retrieving data.
- Firebase Storage: For storing media files.
- Provider: For state management and dependency injection.
- HTTP: For making network requests.
- Equatable: For value equality in Dart objects.
- Flutter Widgets: For building the UI components.