Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/selvamuthukumaranrajan/spendwise
SpendWise helps users easily track expenses and income. With a user-friendly interface, users can log and categorize transactions to stay organized. Local notifications remind users to update their finances, ensuring they never miss a transaction.
https://github.com/selvamuthukumaranrajan/spendwise
android-app animations dart firebase firebase-auth flutter flutter-app ios-app kotlin localnotifications mvvm mvvm-architecture provider provider-state-management realm realm-database realmdb swift
Last synced: 6 days ago
JSON representation
SpendWise helps users easily track expenses and income. With a user-friendly interface, users can log and categorize transactions to stay organized. Local notifications remind users to update their finances, ensuring they never miss a transaction.
- Host: GitHub
- URL: https://github.com/selvamuthukumaranrajan/spendwise
- Owner: SelvamuthukumaranRajan
- License: mit
- Created: 2024-08-11T18:41:05.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-08-14T19:07:37.000Z (4 months ago)
- Last Synced: 2024-12-18T23:43:07.165Z (6 days ago)
- Topics: android-app, animations, dart, firebase, firebase-auth, flutter, flutter-app, ios-app, kotlin, localnotifications, mvvm, mvvm-architecture, provider, provider-state-management, realm, realm-database, realmdb, swift
- Language: Dart
- Homepage:
- Size: 60.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SpendWise
Turn Your Expenses into Insights!This application empowers users to effortlessly manage their finances by tracking both income and
expenses. It offers a comprehensive summary of all transactions, enabling users to seamlessly
monitor and stay on top of their financial activities.## Features
- **Transaction Management:** Users can add, edit, and delete transactions, categorizing them as
either
income or expense.
- **Summary Overview:** The app offers a clear and concise summary of all transactions, helping
users
understand their financial status at a glance.
- **Filtering Options:** Users can apply multiple filters to view specific transactions based on
categories, dates, or types (income/expense), making it easier to analyze spending patterns.
- **Daily Reminders:** The app includes a notification feature that reminds users to add their daily
transactions, ensuring that no expense or income is overlooked.
- **User-Friendly Interface:** Designed with simplicity and efficiency in mind, the app offers a
seamless user experience, making financial tracking easy for everyone.
- **Architecture:** Follow MVVM pattern for clear separation of concerns.
- **Authentication with Firebase:** Secure user authentication using Firebase, supporting multiple
sign-in methods to protect user data.
- **Light and Dark Dynamic Theming:** Enjoy a visually appealing interface with both light and dark
themes that dynamically adjust to user preferences.
- **Efficient CRUD Operations with Realm:** Leverages Realm database for fast and reliable Create,
Read,
Update, and Delete operations on transactions.
- **Unit Testing with Mockito:** Ensures code reliability through unit tests using Mockito,
maintaining a high standard of app performance and stability.### Prerequisites
- Flutter SDK
- Dart SDK## Getting Started
To run this application locally, follow these steps:
1. Make sure you have Flutter installed. For installation instructions, refer to
the [Flutter documentation](https://flutter.dev/docs/get-started/install).
2. Clone this repository to your local machine.
3. Navigate to the project directory and run `flutter pub get` to install dependencies.
4. Connect a device or start an emulator.
5. Run the app using the command `flutter run`.## Dependencies
This project uses several third-party dependencies. Some of the key dependencies include:
- `provider`: Simplifies state management by allowing easy access to and updates of state across the
app.
- `realm`: Provides local database storage with real-time syncing capabilities, enabling efficient
data management.
- `flutter_local_notifications`: Allows scheduling and displaying local notifications on Android and
iOS.
- `firebase_core`: Initializes and configures Firebase services in the app.
- `firebase_auth`: Manages user authentication with various sign-in methods.
- `cloud_firestore`: A NoSQL cloud database for real-time data storage and syncing.For a full list of dependencies, refer to the `pubspec.yaml` file.
## Directory Structure
lib/
|-- data/
|-- models/ # Contains data models used throughout the application.
|-- repositories/ # Manages data operations and interfaces with data sources.
|-- generated/
|-- (auto-generated files) # Stores auto-generated files. Avoid manual modifications.
|-- utils/
|-- configs/ # Configuration settings used across the application.
|-- core/ # Core functionalities and utilities essential for the app's functionality.
|-- routes/ # Handles navigation and route management within the app.
|-- viewModels/
|-- (ViewModel classes) # Contains ViewModel classes for business logic and state management.
|-- views/
|-- (UI components) # Houses the UI components and screens that form the application's interface.
|-- widgets/
|-- (custom widgets) # Custom widgets that are reusable across different parts of the application.
main.dart
|-- (entry point) # The main entry point of the application.## License
Distributed under the MIT License. See LICENSE for more information.
## Contact
Twitter - https://x.com/iamSmkz
LinkedIn - https://www.linkedin.com/in/iamsmk## Acknowledgements
Flutter
Provider
Firebase
Realm DB## Screenshots
Dark Mode| Splash Screen | Auth Screen | Auth Screen |
|-------------------------------------------|-----------------------------------------|------------------------------------------|
| ![Screenshot](screenshots/SplashDark.png) | ![Screenshot](screenshots/AuthDark.png) | ![Screenshot](screenshots/LoginDark.png) || Auth Screen | Home Screen | Home Screen |
|-------------------------------------------|-----------------------------------------|------------------------------------------|
| ![Screenshot](screenshots/SignupDark.png) | ![Screenshot](screenshots/HomeDark.png) | ![Screenshot](screenshots/Home2Dark.png) || Summary Screen | Summary Screen | Summary Screen |
|--------------------------------------------|---------------------------------------------|---------------------------------------------|
| ![Screenshot](screenshots/SummaryDark.png) | ![Screenshot](screenshots/Summary2Dark.png) | ![Screenshot](screenshots/Summary3Dark.png) |
Light Mode| Splash Screen | Auth Screen | Auth Screen |
|--------------------------------------------|------------------------------------------|-------------------------------------------|
| ![Screenshot](screenshots/SplashLight.png) | ![Screenshot](screenshots/AuthLight.png) | ![Screenshot](screenshots/LoginLight.png) || Auth Screen | Home Screen | Home Screen |
|--------------------------------------------|------------------------------------------|-------------------------------------------|
| ![Screenshot](screenshots/SignupLight.png) | ![Screenshot](screenshots/HomeLight.png) | ![Screenshot](screenshots/Home2Light.png) || Summary Screen | Summary Screen | Summary Screen |
|---------------------------------------------|----------------------------------------------|----------------------------------------------|
| ![Screenshot](screenshots/SummaryLight.png) | ![Screenshot](screenshots/Summary2Light.png) | ![Screenshot](screenshots/Summary3Light.png) |## ScreenRecordings
Available in 'screenrecords' directory.