A versatile Flutter app featuring motivational quotes, wallpapers, and Google AdMob integration
- User Authentication: Register or sign in using email/password or Google Sign-In for a secure authentication process.
- 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.
- 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.
- Local Storage: Manages locally stored quotes using an SQLite database.
- Efficient Management: Add, retrieve, and display favorite quotes for a personalized collection.
- Personalized Experience: Customize wallpapers based on preferences.
- History Tracking: Track recently viewed wallpapers and manage account information.
- 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.
- 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]
๐ฆ 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
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:
- 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.
- 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.
- 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
tointro_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.
firebase_options.dart
: Configuration file for Firebase options.main.dart
: The main entry point of the application.
.gitignore
: Ignored files and directories for version control.
This organized structure adheres to the MVC pattern, promoting maintainability and scalability of the codebase.
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.
-
Clone the repository:
git clone https://github.com/tushal013/quetter cd your-flutter-app
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
- Create a Firebase project on Firebase Console.
- Add your Android and iOS app to the project.
- Copy the Firebase configuration files into your app.
- Enable Firebase Authentication, Firestore, and Cloud Firestore.
- Create an AdMob account on Google AdMob.
- Register your app and get AdMob Ad Unit IDs.
- Implement AdMob IDs in the
ad_helper.dart
file.
Contributions are welcome! Feel free to open issues, suggest improvements, or submit pull requests following our guidelines.
Quetter is licensed under the MIT License, promoting an open and collaborative development environment. mix i talso