A premium, modern Portfolio and Admin Dashboard Application built with Flutter, following strict Clean Architecture patterns, and backed by Firebase Firestore. The application is designed to dynamically load and display professional information (profile, skills, projects, certificates, experiences) while providing a fully-featured, secure admin dashboard to edit, manage, and update the data in real-time.
🔗 Live Demo: ahmedzamzam.netlify.app
- Dynamic Data Seeding: Automatic database seeder to populate Firestore with initial credentials, projects, and certifications.
- Dynamic Profile & Portfolio: Displays professional bio, badges, projects, certificates, and skills dynamically loaded from Firebase Firestore.
- Secure Admin Panel: Integrated administrator panel to add, edit, or delete items on the fly.
- Robust Authentication: Firebase Authentication implementation for secure login to the admin workspace.
- State Management: Scalable and predictable state management powered by Flutter BLoC / Cubit.
- Dynamic Theme Mode: Smooth switching between beautiful Light and Dark themes (managed by
ThemeCubit). - Clean Architecture & Dependency Injection: Modular structure separating Data, Domain, and Presentation layers, coupled with GetIt for dependency injection.
- Framework: Flutter (Dart)
- State Management: flutter_bloc
- Navigation: go_router
- Dependency Injection: get_it
- Backend Services:
firebase_core&cloud_firestore(Data storage)firebase_auth(Secure admin authentication)
- Iconography & Styling: Custom premium styling with dynamic themes.
The project strictly adheres to Clean Architecture combined with Feature-first organization, making the codebase highly maintainable, testable, and scalable.
lib/
├── core/
│ ├── di/ # Dependency Injection setup (GetIt)
│ ├── router/ # Navigation routing configurations (GoRouter)
│ ├── theme/ # Theme styling definitions (AppTheme & ThemeCubit)
│ └── utils/ # Database seeding and utility classes
├── features/
│ ├── admin/ # Admin panel presentation & management business logic
│ ├── auth/ # Login & authorization controls for the dashboard
│ └── portfolio/ # Core portfolio features
│ ├── data/ # Data source contracts, Firestore models, repositories
│ ├── domain/ # Domain entities & usecase definitions
│ └── presentation/ # Widgets, Cubits, and pages (e.g., PortfolioPage)
├── firebase_options.dart # Firebase platform configuration
└── main.dart # App entry point
Before running the application, make sure you have:
- Flutter SDK installed on your system.
- A Firebase project configured.
- Git command line utility.
- Create a project in the Firebase Console.
- Enable Cloud Firestore and Firebase Authentication (Email/Password provider).
- Set up Firestore Security Rules to allow read access to everyone, but write access only to authenticated users (admins).
- Run
flutterfire configureto generate/update thelib/firebase_options.dartfile.
-
Clone the repository:
git clone https://github.com/AHMEDZMZA/portfolio.git cd portfolio -
Install dependencies:
flutter pub get
-
Seeding the Database: The project contains a built-in database seeder (
lib/core/utils/db_seeder.dart) which automatically uploads the profile data, skills, projects, and certificates to Firestore. It runs on the first app start:// inside lib/main.dart await seedDatabase(); // Runs on startup
Note: After the first run, you can comment this call out in
lib/main.dart. -
Run the App:
flutter run
- Title: Junior Flutter Developer | Mobile Application Developer
- Bio: 2026 Computer Science and Information Technology Graduate passionate about building modern, responsive, and clean mobile applications. Specialized in Flutter, Clean Architecture, BLoC, and Firebase integrations.
- Email: ahmedzamzam3112004@gmail.com
- Phone: +20 155 454 8893
- LinkedIn: Ahmed Zamzam
- GitHub: @AHMEDZMZA
- GraduatChildMonitor 🧩
- Description: A graduation project designed to support children with Autism Spectrum Disorder (ASD). Helps parents track daily activities, progress, and communicate with specialists. Follows clean architecture.
- HungryApp 🍔
- Description: A modern food ordering application featuring meal browsing, menu details, favorites management, and responsive interfaces.
- BooklyApp 📚
- Description: A Flutter application for discovering and exploring books using REST APIs, featuring search and detailed views.
- WeatherApp ☀️
- Description: Real-time weather forecasting application providing current conditions, temperature, humidity, and speed using external APIs.
- News-App 📰
- Description: Clean-architecture based news application fetching and categorizing articles using REST APIs.