A beautiful, feature‑rich Flutter application that serves you inspiring quotes, random words with illustrations, and full user authentication & profile management. Built with clean architecture (core → data → domain → UI), BLoC state‑management, and a local/remote repository pattern.
-
User Authentication
- Sign Up, Login and Logout flows
- Profile management (view and edit)
-
Quotes
- Browse all quotes in paginated lists
- “Quote of the Day” widget on the home screen
- Detailed quote view with author, category, and share & download options
- Mark quotes as “Favorite” and view your favorites list
-
Random Word Explorer
- Fetch a random word, see its definition & a curated illustration
- Option to download the illustration locally
-
Search
- Full-text search across quotes
lib/
├── core/ # Themes, assets, utilities, failure handling
│ ├── theme/ # Colors, typography, sizes, AppTheme
│ ├── utils/ # Download image, gradient text, URL launcher
│ └── failure/ # Failure models & error handling
├── data/ # Data sources & implementations
│ ├── models/ # JSON ↔ Dart model classes
│ ├── local\_db/ # Shared Preferences implementation
│ └── remote\_db/ # REST API repositories
├── domain/ # Business logic
│ ├── entities/ # Core entities (Quote, Profile, RandomWord…)
│ ├── repositories/ # Abstract contracts
│ └── use\_cases/ # Single-purpose interactors
├── ui/ # Presentation layer (Widgets & Pages)
│ ├── widgets/ # Reusable UI components
│ ├── home/, login/, profile/, …
│ └── … # feature folders each with BLoC, events, states
└── main.dart # App entry point & initialization
-
Clean Architecture:
- Separation of concerns via
core,data,domain,ui. - Data flows: UI → BLoC → UseCase → Repository → Data Source.
- Separation of concerns via
-
State Management:
- flutter_bloc for all feature flows.
- Each feature has its own BLoC, Event, and State class.
- Flutter SDK ≥ 3.7.0
- Dart SDK ≥ 2.18.0
- A connected device or emulator (iOS, Android, Web, Desktop)
-
Clone the repo
git clone https://github.com/malikhaider1/top_quotes.git cd top_quotes -
Install dependencies
flutter pub get
-
Run the app
flutter run
-
Generate serialization code (if you modify the models)
flutter pub run build_runner build --delete-conflicting-outputs
| Package | Purpose |
|---|---|
| flutter_bloc | BLoC state management |
| equatable | Value equality for BLoC states/events |
| json_serializable | JSON ↔ Dart code generation |
| dio | HTTP client |
| sharedPreferences | local database for userToken |
| cached_network_image | Image caching |
| url_launcher | Opening links & downloads |
| etc for other features and widgets | |
| -- |
Contributions, issues, and feature requests are welcome!
- Fork the project
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -am 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
Malik Haider ✉️ malikha499@gmail.com 📁 GitHub/malikhaider1
Enjoy inspiring your users with every tap! 🚀
