This Flutter application allows users to upload photos to Firebase Storage, view a list of uploaded photos with metadata, search, paginate, and delete photos. The project uses GetX for state management and Firebase for authentication and storage.
- GetX Implementation: State management with GetX.
- Firebase Authentication: User login and authentication setup.
- Photo Upload: Select and upload photos to Firebase Storage.
- Display Photo and Metadata: View uploaded photos and their metadata (upload date and file name).
- List View: Display all uploaded photos and metadata.
- Search: Search for photos by file name in the list view.
- Pagination: Navigate through photos in the list view with next and previous buttons.
- Delete Photo: Delete photos from Firebase Storage and the list view.
- Dark Mode: This feature need some fix and it will be updated soon!
- Flutter SDK installed on your machine.
- Firebase account.
-
Clone the repository:
git clone https://github.com/yourusername/photo-upload-app.git cd photo-upload-app
-
Install dependencies:
flutter pub get
-
Set up Firebase:
- Create a new Firebase project.
- Add your Android and iOS app to the Firebase project.
- Download the
google-services.json
andGoogleService-Info.plist
files and place them in the respective directories. - Enable Firebase Authentication (Email/Password).
- Enable Firebase Storage.
- Enable Firebase Firestore.
-
Update
android/app/build.gradle
:dependencies { classpath 'com.google.gms:google-services:4.3.3' }
-
Update
android/app/build.gradle
:apply plugin: 'com.google.gms.google-services'
-
Initialize Firebase in your Flutter project:
void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); }
- Login: Authenticate using Firebase Authentication.
- Upload Photo: Navigate to the upload page, select a photo from your device, and upload it to Firebase Storage.
- View Photos: View a list of all uploaded photos with metadata.
- Search Photos: Use the search bar to find photos by file name.
- Paginate: Navigate between pages of photos using next and previous buttons.
- Delete Photo: Delete a photo from Firebase Storage and the list view.
This project is licensed under the MIT License. See the LICENSE file for details.