Windows Form application: DotNet Personal Finance Management - C#

The second project is Windows Form application: DotNet Personal Finance Management:

Here is the requirement:

  • Introduction and Summary of project (describe your the project and it's purpose)

  • Development approach (approach and methodology used in creating the application for example any frameworks like Entity Framework, libraries, or external tools)

  • Flowchart (a diagram showing how different components/modules/class/function interact)

  • Role of team members (a brief description with summary table explaining the role of each team member)

  • Acknowledgments (if any)

  • References (if any)


Here is my Project:

The "DotNet Personal Finance Management" project is a comprehensive financial management application designed to help users manage their finances effectively. Developed by a team led by Ming-You Chen and his teammate, this project offers a secure user registration and login system, a user-friendly dashboard for an overview of financial situations, and various features in both user and admin modes. It empowers users to track and categorize daily expenses, record income sources, set budgets, maintain transaction history and perform efficient searches. In addition, the project also includes an admin mode for handling user-related information and app management.

Flow Chart

For this project I have charged:

Admin part, Login system, Introduction, Summary, Development approach, Flow chart, System Structure, User Assess, Admin Part and User data file.

 

The following file document:

Form1.cs (login page)

Register.cs

Add_user_admin.cs (Heritated from Register.cs)

Check_userfinance.cs

Check_userinfo.cs

Dashboard.cs

dashboard_admin.cs

Delete_user_admin.cs


Login page

Form1.cs (login page):

The "Login_Click" event verifies user credentials by checking for matches in the "parts" array. If a match is found, it distinguishes between regular and admin users using a role indicator. Ordinary users are directed to a "Dashboard" form, with user data and index passed, while admin users access a "dashboard_admin" form. In case of a failed login attempt, an error message is displayed. The "button3_Click" event clears the user ID and password fields, while "button2_Click" opens the "Register" form, passing the "parts" array and hiding the current form.

 

Register page

Register.cs:

Clicking the "Register" button validates user input, checking for email format, matching passwords, and ensuring all required fields are filled. If validation succeeds, it appends the user's information to an existing user data array, designates the user's role, writes the updated data to a text file, and displays a success message. The "Clear" button resets text fields, and the form's load event handles form initialization.

 

Check_userfinance page

Check_userfinance.cs:

When the "Search" button clicks, the form retrieves income and expense data from separate text files, filtering the data based on the selected user. It then populates a DataTable with these financial records, categorizing them as "Income" or "Expenses" and displaying relevant information such as date, category, amount, and description. The DataTable is used to populate a DataGridView for easy data visualization.

 

Check_userinfo page

Check_userinfo.cs:

Upon loading, the form constructs a DataTable. It populates it with user data from the "parts" array, displaying essential user details such as name, email, phone number, password, and admin status. Users can return to the admin dashboard by clicking the "Return" button. Additionally, there appears to be a button and code segment for deleting user data from the DataTable and the "parts" array.

 

Home page for user

Dashboard.cs:

The form offers a menu with options such as viewing the user's information, logging out, and performing various financial actions, including adding expenses, recording income, budgeting, checking transaction history, and searching for specific financial records. Each action opens a corresponding form for the user to interact with, enhancing the application's financial management capabilities. Additionally, the form allows users to log out, returning to the login screen after finishing their financial tasks.





Dashboard for admin page

dashboard_admin.cs:

The "dashboard_admin" form is designed for administrative users. It provides administrators with a user-friendly interface for managing user-related functions and information. The form displays a personalized welcome message for the administrator, showing their name from the "parts" array. It offers various functionalities, including adding new users, deleting existing users, viewing user information, and checking user finances. Administrators can also access their data, log out of the application, and receive details about their name, email, and phone number.





Deleteuseradmin page

Delete_user_admin.cs:

The form displays a table containing user information retrieved from the "parts" array, allowing administrators to select and delete user entries. When a user is deleted, the corresponding data is removed from the "parts" array, ensuring the user is no longer accessible in the application. The form provides administrators with a streamlined interface for managing user accounts efficiently. After deletion, the modified user data is updated in the "userid.txt" file, maintaining the integrity of the user database.


The Result 30/35

Tutor’s comment:

"Unique and technically challenging project addressing real-world problem (1/3) "

" "Interface Design " Includes form/window designs, with basic transition between forms/windows/GUI on button clicks or as appropriate (9/10) "

" "Functionality " Successful implementation of core features and requirements. (5/6) Adequate error handling and validations (2/2) Use of appropriate data structures and algorithms. (2/2) "

" "Code Design " "Includes high cohesion and low coupling for classes and methods, using properties, using enumerations, collections where 6 appropriate, etc. (6/6) " "

" "Code Quality " Includes proper indenting and white spacing. (2/2) Helpful comments (1/2) Meaningful class/method/property/field names. (2/2) -David Dyer, 13 Nov 2023 at 15:53

My review:

Due to the first session, I was getting used to the new environment. I would say it is not a perfect program. It is not actually “user-friendly“ app. For example: We don;t have the function to let user to modify their basic info. My teammate was working on other project, he did not put too much time and effort on this assignment. We need more time to discuss and improve the program together. At the end, I made the report and the most of the function for admin and user.












Previous
Previous

Intersection of Two Arrays - C#

Next
Next

dotnet Hospital Management System - C#