/instagram-clone

This Flutter-based Instagram clone app replicates the core functionalities of the popular social media platform, Instagram. It allows users to sign up, log in, share posts, like and comment on posts, follow other users, explore content, and communicate through direct messaging.

Primary LanguageDart

Instagram Clone

Overview

This Flutter-based Instagram clone app replicates the core functionalities of the popular social media platform, Instagram. It allows users to sign up, log in, share posts, like and comment on posts, follow other users, explore content, and communicate through direct messaging.

Features

  • User Authentication: Secure user authentication system using Firebase Authentication for sign-up, log-in, and password reset functionalities.
  • Profile Management: Users can customize their profiles, upload profile pictures, and update personal information.
  • Post Creation and Sharing: Ability to create and share posts with captions and images, mimicking Instagram's post-sharing feature.
  • Feed and Explore: Dynamic feed displaying posts from followed users and explore feature to discover new content.
  • Likes and Comments: Users can like, comment, and view interactions on posts, fostering community engagement.
  • Notifications: Real-time notifications for likes, comments, and new followers, enhancing user engagement.
  • Direct Messaging: Private messaging functionality enabling users to communicate directly within the app.

Technologies Used

  • Flutter: UI development framework for building cross-platform mobile applications.
  • Firebase: Backend services for authentication, database management, and storage.

Getting Started

  1. Clone the repository.
  2. Set up a Firebase project and configure Firebase Authentication, Firestore database, and Storage.
  3. Add your Firebase configuration details to the project.
  4. Run the app on a simulator or physical device.

Folder Structure

  • lib: Contains the Flutter application code organized into modules for better maintainability.
    • screens: Contains the different screens of the application (e.g., authentication, feed, profile).
    • models: Contains data models used throughout the application.
    • widgets: Contains reusable UI components used across different screens.
  • assets: Contains static assets such as images and fonts used in the application.

Preview

Contributing

Contributions are welcome! Please feel free to open issues for bug fixes or feature requests. Pull requests are also encouraged.