Shoply is a modern, feature-rich e-commerce mobile application built with Flutter. It's designed with a feature-first clean architecture approach to ensure scalability, maintainability, and high-quality code.
This README will be actively maintained and updated as the project evolves.
- User Authentication: Secure sign-up and sign-in functionality using Firebase Auth (including Google Sign-In).
- Dynamic Product Catalog: Browse a list of products fetched from a Cloud Firestore backend.
- Modern UI/UX: A clean, intuitive, and engaging user interface.
- (More features are currently in development and will be added soon!)
This project follows a Feature-First Clean Architecture. The code is organized by features (e.g., AUTH, PRODUCTS) to promote modularity and separation of concerns.
lib/features: Each feature has its own dedicated folder containing itsdata(repositories, data sources, models),domain(entities, use cases), andpresentation(bloc, pages, widgets) layers.lib/core: Contains shared code used across multiple features, such as theme definitions, router configuration, dependency injection, and utility classes.
This structure makes the codebase easy to navigate, test, and scale.
- Framework: Flutter
- State Management: flutter_bloc
- Backend & Authentication: Firebase (Auth, Cloud Firestore)
- Navigation: go_router for a declarative, URL-based routing solution.
- Dependency Injection: get_it
- Functional Programming: dartz for
EitherandOptiontypes to handle errors and nullable data gracefully. - Value Equality: equatable
- External Links: url_launcher
- Local Storage: hive
- UI: Google Fonts, Flutter SVG
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
You need to have Flutter installed on your system. You can find instructions here.
-
Clone the repository:
git clone https://github.com/your-username/shoplyapp.git cd shoplyapp -
Install dependencies:
flutter pub get
-
Run the app:
flutter run
shoplyapp/
├── lib/
│ ├── core/ # Shared code (DI, router, theme, utils)
│ │ ├── di/
│ │ ├── router/
│ │ └── theme/
│ ├── features/ # Feature-based modules
│ │ ├── AUTH/
│ │ │ ├── data/
│ │ │ ├── domain/
│ │ │ └── presentation/ # BLoC, pages, widgets
│ │ └── ... # Other features
│ ├── firebase_options.dart # Firebase configuration
│ └── main.dart # App entry point
├── assets/ # Images and SVG icons
└── pubspec.yaml # Project dependencies
Shoply is an ongoing project. I am continuously working on adding new features and improving the existing ones. The README will be updated accordingly to reflect the latest changes and additions.