# Reviving Cineverse: From Local Storage to Firebase 🚀

> Source: <https://dev.to/ali_mohamed/reviving-cineverse-from-local-storage-to-firebase-3jn7>
> Published: 2026-05-22 16:54:47+00:00

This is a submission for the GitHub Finish-Up-A-Thon Challenge
I built Cineverse, a cinematic movie discovery app powered by the TMDB API. It allows users to:
The app is built with Flutter, backed by Firebase Authentication and Cloud Firestore, and designed with a premium dark cinematic theme.
🔗 GitHub Repository: github.com/Ali23102001/cineverse_app
Cineverse started as a basic Flutter project — a simple movie browsing app with:
I abandoned it because the jump from "local prototype" to "production-ready app" felt overwhelming. Firebase configuration, platform-specific issues, authentication flows... it was too much to tackle at the time.
When the GitHub Finish-Up-A-Thon Challenge dropped, I knew this was the one. Here's everything I changed:
🔥 Firebase Authentication — Completely replaced local storage auth with Firebase. Users can now sign up with Email/Password or Google Sign-In, with full email verification flow.
☁️ Cloud Firestore Integration — User profiles, favorites, and watchlists are stored in Firestore and sync across all devices in real-time.
🛡️ Admin Dashboard — Built a secure admin panel restricted by email-based role checking. Unauthorized users get automatically redirected to the home screen.
🔧 Platform Fixes — Resolved deep Android build crashes (build.gradle.kts
, AndroidManifest.xml
) and Web configuration issues that were preventing Firebase from initializing properly.
🎨 Polished UI — Refined the splash screen, navigation shell, and overall theme to feel premium and cinematic.
📧 Email Verification Screen — Added a dedicated verification flow so users can't access the app without confirming their email first.
The app went from a broken prototype to a fully functional, cloud-synced movie discovery platform.
GitHub Copilot was instrumental in finishing this project. Here's specifically how it helped:
Setting up firebase_auth
, google_sign_in
, and cloud_firestore
involves a LOT of repetitive setup code. Copilot auto-completed entire authentication service methods — sign in, sign up, sign out, email verification — saving me hours of typing and documentation-checking.
The hardest part of reviving Cineverse was fixing Android and Web platform configs. Copilot helped me:
build.gradle.kts
Kotlin DSL syntax for Firebase pluginsAndroidManifest.xml
intent filters for Google Sign-Infirebase_options.dart
with the right project configurationWhen I needed to restrict the Admin Dashboard to a specific admin email, Copilot immediately suggested the pattern: check FirebaseAuth.instance.currentUser?.email
on screen load, and redirect unauthorized users using Navigator.pushReplacement
. Clean and effective.
Copilot helped me refactor the app's navigation from simple push/pop to a proper shell-based layout with a bottom navigation bar, ensuring smooth transitions between Home, Search, Favorites, Watchlist, and Profile screens.
Bottom line: Copilot turned what would have been a multi-week slog through Firebase docs into a focused, productive revival. It felt like pair-programming with someone who already knew the entire Firebase + Flutter ecosystem by heart.
Built with ❤️ using Flutter, Firebase, and GitHub Copilot
