MyShopApp is a Flutter e-commerce application I built as a practice project to strengthen my skills in state management, API integration, and structuring a multi-feature mobile app. The app was fully functional during development, communicating with a REST API backend for authentication, products, categories, favorites, and search.
The app includes a complete user flow: onboarding for first-time users, login/register with token-based authentication, a home screen aggregating categories and favorites, product browsing, a favorites system, and search functionality — all connected to a live backend at the time.
Technically, the app uses Flutter Bloc/Cubit for state management, with each feature (login, onboarding, home, etc.) organized around its own Cubit for clear separation between UI and business logic. Networking is handled through Dio, wrapped in a centralized helper class for base URL configuration, headers, and token management. Local data — like onboarding status and auth tokens — is persisted using SharedPreferences. A custom BlocObserver was also implemented to track state changes and errors during development.
The project follows a feature-based layered architecture (modules, network, models, shared), keeping each feature self-contained and the codebase organized as it grew.
Note: This project used a third-party educational REST API for its backend, which has since been discontinued by its provider. The app is therefore not runnable in a live demo at the moment, but the full source code is available on GitHub for review.