Effortlessly track your daily expenses with a simple and intuitive Flutter app
SpendView is a feature-rich expense management Flutter application designed to provide users with complete control over their finances. The app offers a user-friendly interface and a robust set of features for efficiently tracking expenses, setting and achieving savings goals, and gaining insights into spending patterns.
-
Effortless Recording: Record daily expenses with ease, providing a seamless experience for users to log transactions on the go.
-
Comprehensive Details: Categorize transactions, add notes, and attach receipts for comprehensive record-keeping.
-
Goal Planning: Plan for the future by setting savings goals. Users can define their objectives and track their progress over time.
-
Visual Progress: Monitor savings goal progress with visual indicators and celebrate financial milestones.
-
Visual Insights: Gain insights into your financial health with interactive charts. Analyze spending patterns through visually appealing visualizations, helping users understand their financial habits.
-
Customization: Users can customize charts to focus on specific time periods or expense categories.
-
Organized Transactions: Organize transactions by categorizing them into predefined or custom categories. The app provides a structured approach to financial management.
-
Category Insights: Users can analyze spending patterns based on categories, helping them make informed decisions.
-
Visualize Activities: The Heatmap Calendar allows users to visualize spending activities on a color-coded calendar.
-
Identify Patterns: Users can identify peak spending days and optimize their budget based on historical data.
-
Smooth Transitions: The app incorporates smooth animations for a delightful user experience.
-
Interactive Elements: Animated buttons, transitions, and visual feedback enhance user engagement.
-
Export PDF Reports: Users can generate and export PDF summaries of their financial data.
-
Customizable Reports: Choose specific date ranges or categories for detailed and customizable PDF reports.
- Personalize your avatar with random customization options.
-
Flutter: Google's UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.
-
Provider Package: State management for efficient communication between different components of the app.
-
SQFlite Database: Local database storage for persistent data management.
-
Fl_chart Package: A Flutter charting library for visually appealing and customizable charts.
-
Shared Preferences: Light storage for user preferences.
-
HTTP Package: Facilitates communication with external APIs.
-
Logger: A powerful logging package for detailed debugging and error tracking.
-
PDF Package and Printing Package: Integration for generating and exporting PDF reports.
-
Other Dependencies:
-
animated_bottom_navigation_bar
: A customizable animated bottom navigation bar for Flutter.percent_indicator
: Circular percent indicators for visualizing progress.url_launcher
: A Flutter plugin for launching URLs in the mobile platform.google_fonts
: A package to include Google Fonts in your Flutter app.page_transition
: Beautiful page transition animations for Flutter apps.simple_animations
: Create custom animations using the AnimationController.intl
: Provides internationalization and localization support.fluentui_system_icons
: Icons from the Fluent System.loading_btn
: A Flutter package for creating loading buttons.animated_text_kit
: A collection of Flutter widgets for animated text.flutter_heatmap_calendar
: A Flutter package to display a heatmap calendar.syncfusion_flutter_charts
: Data visualization library for Flutter with various chart types.path_provider
: Provides a platform-agnostic way to find commonly used locations on the filesystem.introduction_screen
: A Flutter package to build customizable introduction screens.flutter_slidable
: A Flutter package that provides a slideable widget.awesome_dialog
: A Flutter package for a customizable and flexible dialog.flutter_launcher_icons
: A package for updating Flutter launcher icons.
📦 spendview_flutter_app
┣ 📂 lib
┃ ┣ 📂 controller
┃ ┃ ┣ 📜 api_controller.dart
┃ ┃ ┣ 📜 category_controller.dart
┃ ┃ ┣ 📜 heatmap_controller.dart
┃ ┃ ┣ 📜 login_screen_controller.dart
┃ ┃ ┣ 📜 page_index_controller.dart
┃ ┃ ┣ 📜 savings_controller.dart
┃ ┃ ┣ 📜 transaction_controller.dart
┃ ┃ ┗ 📜 user_controller.dart
┃ ┣ 📂 helper
┃ ┃ ┣ 📜 api_helper.dart
┃ ┃ ┗ 📜 database_helper.dart
┃ ┣ 📂 modal
┃ ┃ ┣ 📜 category_modal.dart
┃ ┃ ┣ 📜 chart_modal.dart
┃ ┃ ┣ 📜 saving_goal_modal.dart
┃ ┃ ┣ 📜 saving_modal.dart
┃ ┃ ┣ 📜 transaction_modal.dart
┃ ┃ ┗ 📜 user_modal.dart
┃ ┣ 📂 utility
┃ ┃ ┣ 📂 animation
┃ ┃ ┃ ┣ 📜 fade_animation.dart
┃ ┃ ┃ ┗ 📜 loop_animation.dart
┃ ┃ ┗ 📜 color_list.dart
┃ ┣ 📂 views
┃ ┃ ┣ 📂 component
┃ ┃ ┃ ┣ 📜 saving_tile.dart
┃ ┃ ┃ ┣ 📜 saving_tile_2.dart
┃ ┃ ┃ ┣ 📜 setting_tile.dart
┃ ┃ ┃ ┗ 📜 tran_tile.dart
┃ ┃ ┣ 📂 screens
┃ ┃ ┃ ┣ 📜 add_transaction.dart
┃ ┃ ┃ ┣ 📜 history.dart
┃ ┃ ┃ ┣ 📜 home.dart
┃ ┃ ┃ ┣ 📜 intro1.dart
┃ ┃ ┃ ┣ 📜 intro2.dart
┃ ┃ ┃ ┣ 📜 intro3.dart
┃ ┃ ┃ ┣ 📜 login.dart
┃ ┃ ┃ ┣ 📜 monthly.dart
┃ ┃ ┃ ┣ 📜 recent.dart
┃ ┃ ┃ ┣ 📜 saving_goal.dart
┃ ┃ ┃ ┣ 📜 saving.dart
┃ ┃ ┃ ┣ 📜 sign.dart
┃ ┃ ┃ ┣ 📜 splash.dart
┃ ┃ ┃ ┗ 📜 week.dart
┃ ┣ 📜 main.dart
┗ 📜 .gitignore
The app follows the MVC (Model-View-Controller) pattern:
- lib/controller: Contains all the controller classes responsible for managing app logic.
- lib/helper: Includes helper classes such as API helpers and database helpers.
- lib/modal: Holds modal classes defining the structure of data objects.
- lib/utility/animation: Houses animation-related utility classes.
- lib/views/component: Custom widgets and components used across the app.
- lib/views/screens: Individual screens of the app.
- lib/main.dart: The entry point of the application.
- lib/splash_screen.dart: SplashScreen, the initial screen displayed when the app launches.
- assets/images: Directory for storing image assets.
- The home screen provides a quick overview of recent transactions and savings goals.
- The analytics screen displays interactive charts, allowing users to analyze their spending patterns.
- Users can set and track their savings goals, ensuring better financial planning.
- The transactions screen lists all logged expenses, providing details such as date, category, and amount.
- The profile screen allows users to view and edit their account information.
- The app incorporates subtle animations for a more engaging user experience.
- Various custom widgets, such as
SavingTile
,SettingTile
, andTransactionTile
, enhance the UI.
- Utility classes, including
FadeAnimation
andLoopAnimation
, are utilized for animation effects.
- The app maintains a clear and organized directory structure, following best practices.
-
Clone the repository:
git clone https://github.com/your-username/spendview_flutter.git cd spendview_flutter
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
Explore SpendView's avatar customization feature to add a personal touch to your user profile.
SpendView employs the Logger package for detailed debugging and error tracking. View logs in the console or customize logging as needed.
// Example Usage
import 'package:logger/logger.dart';
final Logger logger = Logger();
void main() {
logger.d('Debug message');
logger.i('Information message');
logger.e('Error message');
}
Contributions are welcome! Feel free to open issues, suggest improvements, or submit pull requests following our guidelines.
SpendView is licensed under the MIT License. Refer to the GT file for details.
We extend our gratitude to the Flutter community, contributors, and third-party libraries that contribute to the success of SpendView.