https://github.com/ehiane/fundraiserapplication_winforms
A C# WinForms mock application for managing the WSU fundraising ecosystem for students, donors, and administrators, featuring OOP design and XML data storage.
https://github.com/ehiane/fundraiserapplication_winforms
csharp design-patterns fundraising oop oop-in-csharp winforms
Last synced: 3 months ago
JSON representation
A C# WinForms mock application for managing the WSU fundraising ecosystem for students, donors, and administrators, featuring OOP design and XML data storage.
- Host: GitHub
- URL: https://github.com/ehiane/fundraiserapplication_winforms
- Owner: Ehiane
- Created: 2025-06-05T21:12:13.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-06-05T21:33:56.000Z (4 months ago)
- Last Synced: 2025-06-05T22:25:47.633Z (4 months ago)
- Topics: csharp, design-patterns, fundraising, oop, oop-in-csharp, winforms
- Language: C#
- Homepage:
- Size: 89.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WSU Fundraiser Management System ๐๐ฐ
A mock C#-based Windows Forms application designed to simulate a comprehensive fundraising ecosystem for a university environment. This project serves as a practical demonstration of Object-Oriented Programming (OOP), software design patterns, and UI development with WinForms.
---
## ๐ About The Project
This application provides a centralized platform for students, donors, and administrators to manage university clubs, fundraising projects, scholarships, and donations. Built entirely in C# with data persistence handled through XML, it showcases core software engineering principles in a desktop application format. The user-friendly interface allows for seamless interaction, from creating a club to processing donations and awarding scholarships.
This project was developed to model real-world software engineering practices, emphasizing a clean architecture and robust functionality for academic and portfolio purposes.
### โจ Key Features
* **User Authentication & Roles**: Secure login system for different user types (**Student**, **Donor**, **Guest**, and **Administrator**) with distinct permissions and views.
* **Club & Project Management**: Students can create and manage their own clubs, create fundraising projects associated with those clubs, and track progress.
* **Scholarship System**: A complete workflow for creating scholarship opportunities, allowing students to apply, and for administrators to review applications and award funds.
* **Donation & Transaction Handling**: Donors can easily contribute to specific clubs or projects. The system logs all transactions, providing summaries and tracking financial data.
* **Data Persistence**: All application data, including users, clubs, and transactions, is saved and loaded from a local `WSUFundraiserDatabase.xml` file, simulating a database.
* **User Profile Personalization**: Users can upload and manage their profile pictures, which are stored locally.
* **Comprehensive Testing**: Includes a dedicated test suite using **NUnit** to validate the application's logic, covering normal operations, boundary conditions, and exceptional scenarios.---
### ๐งฐ Technologies & Principles
* **Backend**: C# (.NET Framework)
* **Frontend**: Windows Forms (WinForms)
* **Data Storage**: XML
* **Testing**: NUnit
* **Core Principles**: Object-Oriented Programming (OOP)
* **Architectural Patterns**: Utilizes foundational patterns like **Singleton** (for the `Fundraiser` engine), **Factory** (for user creation), and a structure inspired by **Model-View-Controller (MVC)**.---
## ๐ Getting Started
Follow these instructions to get a local copy of the project up and running on your machine.
### Prerequisites
* **Visual Studio** 2019 or later
* **.NET Framework** 4.7.2 or later### Installation & Setup
1. **Clone the repository:**
```sh
git clone [https://github.com/Ehiane/FundraiserApplication_WinForms.git](https://github.com/Ehiane/FundraiserApplication_WinForms.git)
```
2. **Navigate to the project directory:**
```sh
cd FundraiserApplication_WinForms
```
3. **Open the solution file** (`FundraiserApplication_WinForms.sln`) in Visual Studio.
4. **Build the solution** to restore dependencies (Right-click on the solution in Solution Explorer -> `Build Solution`).
5. **Run the application** by setting `FundraiserApp` as the startup project and pressing `F5` or the "Start" button. The main entry point is `FundraiserApp.cs`.---
### ๐พ Data Storage
* **Database**: The application uses a single XML file, `WSUFundraiserDatabase.xml`, which acts as the database. It will be created automatically in a fixed local path (`C:\Users\Public\WSUFundraiserDatabase.xml`) upon first run if it doesn't exist.
* **User Images**: Profile pictures are stored in the `FundraiserApplication_WinForms/Images/` directory within the project structure.---
## ๐งช Testing
The solution includes a `Fundraiser_NUnit_Tests` project that contains a suite of unit tests built with NUnit. These tests cover the core logic of the `WSUFundraiserEngine` to ensure reliability and correctness.
To run the tests:
1. Open the **Test Explorer** in Visual Studio (`Test` > `Test Explorer`).
2. Build the solution to discover the tests.
3. Click **Run All Tests**.