Skip to content

Quotify — A Flutter-powered quotes app featuring daily inspiration, and a clean, intuitive UI. Fetch quotes from RESTful APIs, save favorites with Hive, and offer users a refreshing and uplifting reading experience every day!

Notifications You must be signed in to change notification settings

MohamedAliShosha/Quotify

Repository files navigation

Quotify 💬

🌟 Overview

  • A motivational quotes app that delivers daily inspiration with a clean, minimalist interface. Users can browse, save, and revisit their saved quotes from renowned authors and thinkers.

App Overview

🎨 Views

🖼️ Onboarding View:

  • Bold centered text: “Get Inspired”.
  • Simple black background for a minimalist and elegant look.
  • A “Get Started” button at the bottom navigates to the authentication flow.

App Overview

🔐 Sign-In View:

  • Greeting text: “Hello, Welcome Back!”.
  • Three input fields: Username, Email, Password.
  • “Sign In” button for logging in.
  • Below it, a small text link: “Don’t have an account? Sign Up.” for navigation to registration.

App Overview

📝 Sign-Up View:

  • Greeting text: “Hello, Welcome to Quote!”.
  • Three input fields: Username, Email, Password.
  • “Sign Up” button to create an account.- Bottom has two buttons:
  • A bottom text link: “Already have an account? Sign In.” to go back to login.

App Overview

🏠 Home View:

  • Large centered quote icon and title:
  • “Discover Your Favorite Quotes!”
  • Subtitle: “Browse through inspiring quotes or add your own to share with others.”
  • Bottom navigation bar with icons for:
  • 🏠 Home / 💬 Quotes / 🔖 Saved / 👤 Profile

App Overview

💬 Quotes View:

  • Scrollable list of quote cards.
  • Each card contains:
  • Quote text in quotation marks.
  • Author name below (e.g., Dr. Seuss, Steve Jobs).
  • A bookmark icon to save quotes.
  • Bottom navigation bar with icons for: Clean and structured for readability.

App Overview

🔖 Saved Quotes View:

  • Displays user-saved quotes in the same card format as the Quotes view.
  • Each card shows a quote, text and, author.
  • Same bottom navigation bar for consistency.

App Overview

👤 Profile View:

  • Shows user avatar placeholder at the top.
  • Displays username and email in separate cards or fields.
  • Logout button below for signing out.
  • Minimal black-and-white design maintaining the app’s theme.

App Overview

🛠️ Tech Stack

📱 Frontend

  • Framework: Flutter.
  • State Management: Bloc.

🌐 Backend

  • API: [Rest API].
  • Database: Hive (for saved quotes).

🏗️ Architecture

  • 🧩 MVVM pattern.
  • 📡 REST API integration.
  • 💽 Local storage (Hive, Shared Prefrences).
lib/
│
├── core/
│   ├── utils/                        # App-wide utilities (router, styles, service locator, etc.)
│   ├── widgets/                      # Shared/reusable widgets (loading, error, etc.)
│   ├── errors/                       # Centralized management for app failures and edge cases.
│   └── functions/                    # Centralized management for app-wide helper functions.
│    
│
├── features/
│   ├── auth/
│   │   ├── data/                     # Models, repositories, data sources for authentication
│   │   │   ├── models/               # Auth-related data models (e.g., User, Credentials)
│   │   │   └── repos/                # Auth repository implementations
│   │   └── presentation/
│   │       ├── manager/              # Cubits, states for auth feature
│   │       ├── views/                # Auth views (sign in, sign up, etc.)
│   │       └── widgets/              # Auth-specific widgets (input fields, buttons)
│   │
│   ├── home/
│   │   ├── data/
│   │   │   ├── models/               # Models for home feature
│   │   │   └── repos/                # Home repository implementations
│   │   └── presentation/
│   │       ├── manager/              # Cubits, states for home feature
│   │       ├── views/                # Home view(s)
│   │       └── widgets/              # Home-specific widgets
│   │
│   ├── onboarding/
│   │   ├── data/
│   │   │   └── models/               # Models for onboarding (e.g., onboarding steps)
│   │   └── presentation/
│   │       ├── manager/              # Cubits, states for onboarding flow
│   │       ├── views/                # Onboarding view
│   │       └── widgets/              # Onboarding widgets
│   │
│   ├── quotes/
│   │   ├── data/                     # Models, repositories, data sources for quotes
│   │   │   ├── models/               # Quote data models
│   │   │   └── repos/                # Quotes repository implementations
│   │   └── presentation/
│   │       ├── manager/              # Cubits, states for quotes feature
│   │       ├── views/                # Quotes views
│   │       └── widgets/              # Quotes-specific widgets (quote item, etc.)
│   │
│   ├── saved_quotes/
│   │   ├── data/                     # Models, repositories for saved quotes
│   │   └── presentation/
│   │       ├── manager/              # Cubits, states for saved quotes
│   │       ├── views/                # Saved quotes view
│   │       └── widgets/              # Saved quotes widgets
│   │
│   ├── profile/
│   │   ├── data/                     # Models, repositories, services for user data/profile
│   │   └── presentation/
│   │       ├── manager/              # Cubits, states for user profile
│   │       ├── views/                # Profile view
│   │       └── widgets/              # Profile widgets (avatar, info, etc.)
│
└── main.dart                         # App entry point

assets/
└── images/                           # App image                   
└── fonts/                            # App fonts 
└── screen_shots/                     # screen shots 

Key Points:

  • core/: Common utilities, local storage services, and shared widgets used across the app.
  • features/: Each feature (Auth, Home, Onboarding, Quotes, Profile) is isolated with its own data and presentation layers.
  • data/: Contains models and repository implementations for each feature.
  • presentation/manager/: State management (Cubit/BLoC) for each feature.
  • presentation/views/: views for each feature.
  • presentation/widgets/: UI components and reusable widgets specific to each feature.
  • assets/: Static resources such as images and icons.
  • main.dart: App entry point.

This structure is scalable, modular, and easy to maintain as your app grows.

About

Quotify — A Flutter-powered quotes app featuring daily inspiration, and a clean, intuitive UI. Fetch quotes from RESTful APIs, save favorites with Hive, and offer users a refreshing and uplifting reading experience every day!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published