GithubHelp home page GithubHelp logo

quetter's Introduction

Quetter

Quetter

A versatile Flutter app featuring motivational quotes, wallpapers, and Google AdMob integration

Features

Authentication Page

  • User Authentication: Register or sign in using email/password or Google Sign-In for a secure authentication process.

Quote Page

  • Inspiring Quotes: Curated collection of motivational and thought-provoking quotes to uplift and inspire users.
  • Category Exploration: Explore different quote categories, save favorites, and share wisdom with friends.

Wallpaper Page

  • Diverse Wallpapers: Utilizes the PixaBay API to offer a wide range of wallpapers in various categories.
  • Color Analysis: Enhances visual experience through color analysis, providing dynamic and aesthetically pleasing wallpapers.
  • User Customization: Allows users to personalize their profile with custom wallpapers.

Downloaded Quotes Page

  • Local Storage: Manages locally stored quotes using an SQLite database.
  • Efficient Management: Add, retrieve, and display favorite quotes for a personalized collection.

Profile Page

  • Personalized Experience: Customize wallpapers based on preferences.
  • History Tracking: Track recently viewed wallpapers and manage account information.

Google AdMob Integration

  • In-App Monetization: Implement Google AdMob for effective monetization.
  • Rewarded Ads: Allow users to earn rewards by watching ads.
  • Banner Ads: Display non-intrusive banner ads for additional revenue.

Technologies Used

  • Flutter: Google's UI toolkit for natively compiled applications.
  • Firebase Authentication: Securely authenticate and manage user profiles.
  • SQLite Database: Local storage for efficient quote management.
  • PixaBay API: Integration for diverse and dynamic wallpapers.
  • Google AdMob: Monetize the app with effective in-app advertisements.
  • [Other dependencies]

Directory Structure

๐Ÿ“ฆ Qutter
โ”ฃ ๐Ÿ“‚ lib
โ”ƒ โ”ฃ ๐Ÿ“‚ controller
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ db_controller.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ pixa_controller.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ quet_controller.dart
โ”ƒ โ”ƒ โ”— ๐Ÿ“œ user_controller.dart
โ”ƒ โ”ฃ ๐Ÿ“‚ helper
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ ad_helper.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ db_helper.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ fb_auth_helper.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ fb_store_helper.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ fbs_helper.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ pixa_helper.dart
โ”ƒ โ”ƒ โ”— ๐Ÿ“œ quet_helper.dart
โ”ƒ โ”ฃ ๐Ÿ“‚ views
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚ component
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ background_tile.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ category_tile.dart
โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œ quote_tile.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚ modal
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ quate_modal.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ topic_modal.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ user_modal.dart
โ”ƒ โ”ƒ โ”— ๐Ÿ“œ yquate_modal.dart
โ”ƒ โ”ฃ ๐Ÿ“‚ utility
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ preferred_lists.dart
โ”ƒ โ”ƒ โ”— ๐Ÿ“œ topics.dart
โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚ screens
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ add_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ background_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ dwonload_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ favorite_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ home_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ intro_page1.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ intro_page2.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ intro_page3.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ intro_page4.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ past_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ prefrence_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ qoute_priview.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ setting_page.dart
โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œ splesh_screen.dart
โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œ your_page.dart
โ”ƒ โ”ฃ ๐Ÿ“œ firebase_options.dart
โ”ƒ โ”ฃ ๐Ÿ“œ main.dart
โ”— ๐Ÿ“œ .gitignore

MVC Architecture Overview

The app follows the MVC (Model-View-Controller) architectural pattern, promoting a well-structured and modular codebase. Below are the key components of the MVC pattern observed in the Qutter project:

Controllers (lib/controller)

  • Responsibility: Manages application logic and acts as an intermediary between the Model and the View.
  • Key Controllers:
    • db_controller.dart: Handles database-related operations and interactions.
    • pixa_controller.dart: Manages PixaBay API interactions for wallpapers.
    • quet_controller.dart: Controls quote-related functionalities.
    • user_controller.dart: Handles user-related operations.

Helpers (lib/helper)

  • Responsibility: Provides utility and helper functions across the app.
  • Key Helpers:
    • ad_helper.dart: Assists with ad-related functionalities, including AdMob integration.
    • db_helper.dart: Facilitates operations related to database management.
    • fb_auth_helper.dart: Handles Firebase authentication operations.
    • fb_store_helper.dart: Assists in handling interactions with Firestore.
    • fbs_helper.dart: Utility functions for Firebase services.
    • pixa_helper.dart: Supports interactions with the PixaBay API.
    • quet_helper.dart: Helper functions for managing quotes.

Views (lib/views)

  • Responsibility: Represents the visual elements of the app.
  • Key Subdirectories:
    • component: Custom widgets and components used across the app.
      • background_tile.dart: Custom widget for displaying background options.
      • category_tile.dart: Custom widget for displaying quote categories.
      • quote_tile.dart: Custom widget for displaying individual quotes.
    • modal: Modal classes defining the structure of data objects.
      • quate_modal.dart: Represents the structure of a quote.
      • topic_modal.dart: Represents the structure of a topic.
      • user_modal.dart: Describes the attributes and properties of a user.
      • yquate_modal.dart: Represents a specialized quote structure.
    • utility: Utility classes providing additional functionalities.
      • preferred_lists.dart: Handles preferred lists.
      • topics.dart: Utility functions related to topics.
    • screens: Individual screens of the app.
      • add_page.dart: Screen for adding new quotes.
      • background_page.dart: Screen for managing background options.
      • download_page.dart: Screen for managing downloaded content.
      • favorite_page.dart: Screen for managing favorite quotes.
      • home_page.dart: Main screen displaying quotes and categories.
      • intro_page1.dart to intro_page4.dart: Introduction screens.
      • past_page.dart: Screen for viewing past quotes.
      • preference_page.dart: Screen for managing user preferences.
      • quote_preview.dart: Screen for previewing a quote.
      • setting_page.dart: Screen for app settings.
      • your_page.dart: User-specific screen.

Other Key Files

  • firebase_options.dart: Configuration file for Firebase options.
  • main.dart: The main entry point of the application.

Git Ignore

  • .gitignore: Ignored files and directories for version control.

This organized structure adheres to the MVC pattern, promoting maintainability and scalability of the codebase.

Dependencies

Google's UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.

State management for efficient communication between different components of the app.

SQLite plugin for Flutter. Used for local database storage for persistent data management.

Provides common operations for working with file and directory paths. Used in conjunction with path_provider.

Provides a platform-agnostic way to find commonly used locations on the filesystem.

A Flutter package for capturing screenshots of widgets. Potential use for sharing quotes.

A collection of Flutter widgets for animated text. Enhances the visual appeal of text elements.

Facilitates communication with external APIs. Could be used for fetching quotes or other data.

A powerful logging package for detailed debugging and error tracking.

A Flutter package for customizable and flexible dialogs. Could be used for displaying messages or alerts.

Beautiful page transition animations for Flutter apps. Enhances the user experience when navigating between screens.

A Flutter package to generate a color palette from an image. Could be useful for dynamic theming based on background images.

Flutter plugin for Firebase Core, enabling Firebase services in the app.

Authentication services provided by Firebase. Allows users to sign in with Google and contribute quotes.

A NoSQL document database for storing and syncing data in real-time. Used for storing user data and quotes.

Provides support for uploading and downloading files to/from Firebase Cloud Storage.

A package for displaying local notifications in the app.

Icons from the Fluent System for use in the app.

A package for integrating Google Mobile Ads, supporting app monetization.

Google Sign-In integration for user authentication.

A carousel slider widget for Flutter.

A Flutter plugin for sharing content with other applications.

A Flutter plugin for text-to-speech.

A Flutter package for displaying toast messages.

A package for updating Flutter launcher icons.

Screenshots

Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image

Getting Started

  1. Clone the repository:

    git clone https://github.com/tushal013/quetter
    cd your-flutter-app
  2. Install dependencies:

    flutter pub get
  3. Run the app:

    flutter run

Firebase Setup

  1. Create a Firebase project on Firebase Console.
  2. Add your Android and iOS app to the project.
  3. Copy the Firebase configuration files into your app.
  4. Enable Firebase Authentication, Firestore, and Cloud Firestore.

Google AdMob Setup

  1. Create an AdMob account on Google AdMob.
  2. Register your app and get AdMob Ad Unit IDs.
  3. Implement AdMob IDs in the ad_helper.dart file.

Contributing

Contributions are welcome! Feel free to open issues, suggest improvements, or submit pull requests following our guidelines.

License

Quetter is licensed under the MIT License, promoting an open and collaborative development environment. mix i talso

quetter's People

Contributors

shodlik-shomuratov avatar tushal13 avatar dodcol avatar

Watchers

Siroj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.