Skip to content

AlexanderRVulchev/Payments-Budget-System

Repository files navigation

Payments-Budget-System

Overview

"Payments and Budget System" is a web application with educational and demonstrative purposes. It mimics (in a much smaller scale) systems used by the institutions in the government sector to make payments and manage their annual budget. You can make different bank payments, cash payments, manage beneficiaries, hire and lay off employees, pay salaries with social security and tax deductions, acquire and manage assets, create and save financial reports and redistribute budget funds between institutions.

The application is deployed at: https://paymentsbudgetsystem.azurewebsites.net

Technologies used

  • .NET Core 6.0
  • ASP.NET Core
  • Entity Framework Core
  • HTML, CSS, Bootstrap
  • MS SQL Server
  • NUnit
  • Moq
  • EP Plus (a .NET library for managing Excel files)
  • JS

Users

There are 4 types of users with different access to the application's functionality:

  • Guest - logged off user. Guests can only view reports, which are made public by the Primary and Secondary users.
  • Secondary user ("Второстепенен разпоредител с бюджет") - Represents an institution which doesn't have its own budget, but relies on the consolidated budget of a primary institution instead. Can access the core functionality of the application. Each Secondary user must be attached to a Primary user.
  • Primary user ("Първостепенен разпоредител с бюджет") - Represents an institution which has its own budget funds and oversees its secondary institutions' spending. Primary users can have zero or more Secondary users related to them.
  • Administrator ("Администратор") - The administrator can alter the global settings of the application and delete reports.

Test credentials

You can test the application with pre-seeded data using the following credentials:

Secondary user

Username: daa
Password: 1111

Primary user

Username: mc
Password: 1111

Administrator

Username: admin
Password: 1111

Database diagram

Diagram

Functionality

Table of contents

User registration

On the registration page, you can create a new user profile as either Primary or Secondary user. If you want to create a Secondary user profile, you must select the Primary user you want to be connected to.

Register
Back to index table

Home page

On the home page, Guests can view the reports of the institutions, which are saved beforehand by the Primary and Secondary users.

GuestView

Upon choosing a report, Guests receive its contents as an Excel table (.xlsx file)

ReportExcel

Upon login, Primary and Secondary users' home page displays short information about the user's access level and unlocks the left navigation menu for the core functionality of the application.

LoggedInHome

Back to index table

Beneficiaries

Beneficiaries ("Контрагенти") are various business entities, which the institution can make bank payments towards.

Beneficiaries information page

On the information page, you can view all your beneficiaries. You can search a beneficiary by its name, identifier, bank account and address. You can sort the results by ascending or descending order. Pagination is implemented.

BeneficiariesInfo

Add and edit a beneficiary

You can create new beneficiaries and edit existing ones.

BeneficiariesNew BeneficiariesEdit

Back to index table

Managing assets

Users can manage their assets and purchase new ones.

Assets information page

The assets information page displays a list of all acquired assets and their status (their amortization, balance value etc.) for the selected year and month. You can choose any year and/or month to see the projected future or past status or your assets. You can filter and order the assets in ascending or descending order. Pagination is implemented. From this page, you can navigate to the information page of the payment, which was made for acquiring the asset, or open the Asset details page.

AssetsInfo

Asset details page

This page presents detailed information about the asset's amortization plan and values for all months throughout the selected year. Different settings are used for calculating the amortization plan for the different types of assets (those settings can be changed by Administrator).

AssetDetails Back to index table

Employees

Employees information page

On the information page, you can view all your employees with their name, personal identification number, gross salary, dates of hiring and layoff of the employee, and the sum of all payments which they have received. You can search an employee by their name and identifier. You can sort the results by ascending or descending order. Pagination is implemented.

EmployeesInfo

Hire new employee

You can hire a new employee by entering their data and the type of their contract. The contract type determines the social security deductions from their monthly salary. The employee's salary cannot be below the minimum wage (the minimum wage can be changed by the Administrator).

EmployeesNew

Edit/Layoff an employee

Editing an employee's information reveals the option to set a layoff date. Laid off personnel will stop receiving salary from the day their employment has been terminated.

EmployeesEdit Back to index table

Bank payment - Choosing type

You can choose between three different types of bank payments. Support payments and Asset payments are made in favour of a beneficiary. Salaries are payments towards all active employees for a chosen month and year. For Asset payment, choosing the subtype of the payment will affect the type of the purchased assets and their future amortization values.

BankPayment Back to index table

Bank payment - Support expenses

Initiating the support payment

You can initiate support payment by entering all required fields.

SupportPayment

Payment details

Upon successful payment, a success message and information about the payment will be displayed.

SupportPaymentDetails Back to index table

Bank payment - Acquiring assets

Initiating the payment for asset acquisition

On the asset payment page, you can purchase up to five different kinds of assets. Upon entering quantities and single prices for the assets, a total sum will be calculated.

AssetPayment

Payment details

Upon successful payment, a success message will be displayed and information about each of the purchased assets will be available for further details.

AssetPaymentDetailsSuccess Back to index table

Bank payment - Monthly salaries

After choosing year and month for the salaries, the application will accrue all social security expenses, tax deductions and net salaries for all personnel employed by the institution, who have at least one working day during the targeted month. Each employee will receive salary according to the days of the month they have been employed. All state employees' social security expenses are paid by the employer, while employees on job contracts divide those expenses between the employee and the employer (all deduction percentages and the tax rate can be changed by Administrator).

SalariesPayment-1 SalariesPayment-2 Back to index table

Cash payment

Initiating the cash payment

You can make cash payments to your employees.

CashPayment

Cash payment details

Upon successful payment, a success message will be displayed along with information about the payment. Cash payments have their own seperate column in the reports.

CashPaymentDetails Back to index table

Payment information page

On this page, users can view all their payments. The results can be filtered by date and amount paid, and ordered in ascending or descending order. Pagination is implemented. Clicking on View ("Преглед") will display different information depending on the payment type. For salaries payment, a detailed payroll will be displayed. For payment for asset acquisition - a list of all purchased assets etc..

Information Back to index table

Budget

Budget information page

The Budget defines the maximum allowed annual expenses for each institution regarding each payment group separately - support, assets and salaries. Users can't make payments that will exceed the budget limit for the respective payment group.
Secondary users can only view their annual budgets, but can't change them in any way.
Primary users can create new consolidated budgets.

BudgetInfo

Budget distribution page

On the budget distribution page, Primary users can view the total expense limit for the year, the allocated and unallocated funds, and can set the individual budgets for themselves and their Secondary users by redistributing the consolidated budget funds between each institution.

EditBudget Back to index table

Reports

Report Inquiry page

On the report inquiry page, users can view their saved reports and generate new ones by selecting the year and month. A report will be generated that will reflect all expenses from the start of the target year, to the last day of the selected month.
Users can choose to save the report and by doing so, they make the report public so it can be viewed by Guests. Secondary users can generate and save individual reports.
Primary users can also generate and save consolidated reports, which include not only their own financial transactions, but also transactions made by all their Secondary users.

ReportInquiry

Understanding the reports

The horizontal sections of the report divide it on the basis of payment groups - salaries, support and assets. Each section is further divided by the subtype of the payments.

ReportExcel - Rows

The vertical sections (columns) present the following information:

  • Column 1 - The budget limits for all payment groups.
  • Column 2 - The total expenses by payment groups.
  • Column 3 - The sum of all bank payments.
  • Column 4 - The sum of all cash payments.
  • Column 5 - The sum of all transfer payments. A transfer payment is a payment back to the government budget. Social security payments and taxes are considered transfer payments.

ReportExcel - Cols Back to index table

Administration pages

Application settings page

The Administrator can change many of the global application settings like the life of different types of assets, amortization and residual value percentages, minimum wage, tax and insurance rates.

AdminSettings

Delete reports page

The Administrator can also delete any report, both individual and consolidated, which has been saved and made public by the Primary and Secondary users.

AdminReports Back to index table

Error page

If the application cannot process a request properly or the user engages in parameter tampering a simple error page will be displayed with a custom message, describing the cause of the error.

ErrorBudget ErrorAsset

Back to index table

About

Project with educational purposes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published