Welcome to BudgetBuddy, your personal finance management tool developed as a part of the Event-Driven Programming course. This application aims to empower users in handling their finances efficiently and securely. Below, you'll find details about the project, features, technologies, and how we collaborate.
BudgetBuddy is a WinForms application built on the .NET framework, following the MVP (Model-View-Presenter) pattern, implementing the repository pattern, dependency injection, and the singleton pattern. It leverages a SQL Server database for robust and structured data storage.
- Login: Secure user login with credentials.
- Register: New users can register for a BudgetBuddy account.
- Recovery: Password recovery through a secure process.
- SMTP via Gmail: Utilizes Gmail's SMTP server to send one-time passwords for enhanced security during user authentication.
- Password Encryption: Passwords are securely hashed using Rfc2898DeriveBytes and salted hash techniques for enhanced security.
- Send and Request Money: Seamlessly transfer money between users.
- Payments: Effortlessly make payments to vendors or friends.
- Transaction List: View a comprehensive list of transactions.
- Checking and Savings Account: Link and manage your bank accounts securely.
- Expenses Visualization: Utilize Guna Charts to visualize your expenses.
- Voucher Generation: Implements a voucher system for managing discounts and special offers.
- Profile Picture: Customize your profile with a picture.
- Profile Details: Update and manage personal details.
- Database: SQL Server
- UI Framework: WinForms .NET
- Charting Library: Guna.Charts.WinForms, Guna.UI2.WinForms
- Email Handling: MailKit
- Object-Relational Mapping: LINQ to SQL
- JSON Handling: Newtonsoft.Json
- MVP Pattern: Implemented using the Model-View-Presenter pattern for a structured and maintainable architecture.
- Repository Pattern: Utilizes the repository pattern for efficient data access and manipulation.
- Dependency Injection: Promotes loose coupling and maintainability.
- Singleton Pattern: Ensures a single instance of key components for consistency.
- REST API (Bank Integration): Utilizes a fake JSON server (metrobank) for simulated bank integration.
Follow these steps to set up and run BudgetBuddy locally:
-
Clone the Repository:
git clone https://github.com/TimyVillarmia/BudgetBuddy
-
Database Setup:
- Set up a SQL Server database and update the connection string in the app.
-
Build and Run:
- Open the solution in Visual Studio.
- Build and run the application.
/
├─── BudgetBuddy/
│ ├─── Models/
│ ├─── Views/
│ │ └─── UserControls/
│ ├─── Presenters/
│ ├─── _Repositories/
│ ├─── Resources/
│ ├─── DataClasses1.dbml/
│ └─── Program.cs
├─── packages/
├─── BudgetBuddy.sln
└─── README.md
Design: Figma for collaborative design. Development: Git for version control.
This project is licensed under the MIT License. Feel free to use, modify, and distribute the code for educational and non-commercial purposes. Refer to the license file for more details.