flutter-clean-architecture-instagram

Instagram clean architecture using Flutter and Firebase ( frontend & backend ) with almost all functionalities

If you want to work with me, you can find me here:

Notes

Features

SnapShots for web

You can see the screen record from here google drive

SnapShots

|——— Sign page ———-|——- Welcome page ——–|————– Stories ———-|

|——– Home screen ——–|—— Comment screen ——|——– Create story ———-|

|——— Share post ——— |——— Videos page ———|—- personal profile page —|

|—- Change app theme —–|——- Logout & Login ——–|– Change app language – |

|—— Following users ——-|—– Unfollow all users ——|—- Change profile image —-|

|—– All users time line ——|—– Search about user ——|———- Create post ——- |

|——– Create video ———|—- Show created video —–|—- share created video —–|

|———– Edit post ———-|——– Notifications ———|——– Activity page ——–|

|————————— Chatting —————————-|

|————————– Video call —————————|

Getting started

1. Setup Flutter

2. Clone the repo

$ git clone https://github.com/AhmedAbdoElhawary/flutter-clean-architecture-instagram
$ cd flutter-clean-architecture-instagram/

3. Setup the app

I made the setup with more details and visuals to make it easy for any level to set up the app.

Click to expand <!DOCTYPE html>

.Connection with Firebase

  1. Run this line in your PowerShell as administrator:
Set-ExecutionPolicy RemoteSigned 
  1. We need to log in with Firebase. Run this line:
firebase login
  1. In PowerShell, write the disk that the project is exciting. For example, I have InstaAwesome in D. So, I will write it Like this:
d:
  1. Add the following line, replacing <path-to-project-root> with the path to the project root:
cd <path-to-project-root>
  1. Then, run this line:
dart pub global activate flutterfire_cli
  1. Then, run this line:
flutterfire configure
Enable Firebase services

Enable those services: Authentication, Firestor Database, Storage, and Messaging. And take the ‘Cloud Messaging server key’ copy from ‘Cloud Messaging’ in ‘Project settings’.

  1. Enable Email/Password in Authentication:
    Screenshot-94
    Screenshot-95
    Screenshot-98

  2. Enable Firestor Database:
    Screenshot-99
    Screenshot-100
    Screenshot-101

  1. Enable Storage the same as Firebase Database:
    Screenshot-104
    Screenshot-105
    Screenshot-106

  2. Enable Messaging
    Screenshot-107
    Screenshot-108
    Screenshot-110
    Screenshot-111
    Screenshot-112

  3. Enable Messaging Server key
    Screenshot-109
    Screenshot-114
    Screenshot-115

.Connection with Agora

Agora is a real-time communication platform that provides a set of APIs and SDKs for adding voice↳

Step 1: Create an Agora Account and Get a Test Key

Before we can connect our Flutter app with Agora, we need to create an Agora account and get a test key. Here are the steps to get an Agora test key:

  1. Go to the Agora website and sign up for an account.

  2. After you have signed up, log in to the Agora Project Management with your account credentials.
    Screenshot-124

  3. Click on the “Create a Project”
    Screenshot-125

  4. Enter a name for your project and select any Use Case.

  5. Select Testing mode: APP ID

  6. Press Sumbit
    Screenshot-126

  7. Take App ID copy
    Screenshot-127

  8. Past it in agoraAppId variable.
    Screenshot-128

Congratulations! The project is ready.

</div>

What’s Next?

How to Contribute

  1. Fork the project
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make required changes and commit (git commit -am ‘Add some feature’)
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request