Skip to content

Repository files navigation

Project Overview

The purpose of this exercise is to provide experience of creating an interactive software by using Python. The assessment contributes to all learning outcomes as indicated and will comprise of the following components.

Our daily routine involves several different financial transactions, from daily groceries to clothing, monthly rent and other expenses. It is quite easy to lose track of your expenses, however, an expense management software can help us track and manage our budget. The system within is designed to meet these requirements for maintaining financial records stored in the associated finance.sqlite3 Data Store.

Dependencies

Python 3.7

With the following packages:

Matplotlib - For the Rendering of Graphic Output

Numpy - For the manipulation of data

Pandas - For the translation of the

xlwt - For XLSX Export

Getting Started

With the above dependencies met, using the system should be initiated by launching the main.py.

Getting Around

This will display the Main Menu. Menus can be interacted with using Numeric Inputs, depending on screen context. Add/Edit menus offer similar functionality for each financial record type, as such Add/Edit Income is used below as an example.

CT4021 A001 - Financial Tracker

Please choose the function required:
1. Add/Edit Income
2. Add/Edit Expenses

3. Add/Edit Category
4. Add/Edit Budget
5. Run Reports

0. Quit

To aid consistency, Quit is mapped to 0, and in a Sub Menu 9 is to go back to the Main Menu.

Adding Data

Add/Edit Menus will allow for the input or modification of data.

Please choose the function required:

1. View Saved Monthly Income
2. Add Income

3. Edit Existing Income

9. Back to Main Menu
0. Quit

Using the Add/Edit Income as an example, the function View Saved Monthly Income, will return the sum of existing values for a given month.

Pressing '2' and 'Enter' will start Add Income, allowing the creation of a new record. You will be first prompted to input a Date:

Press Enter to Select This Month or Input
Date in dd-mm-yyyy format or Press Enter for Todays Date:

This is expected to be in dd-mm-yyyy format (e.g 31-10-2019).

You will be then prompted to input a value of the income.

Enter Value of Income to Add or Enter (Q) to Quit:

This is expected to be a numerical (integer or decimal value - e.g. 100.99).

Finally you will be prompted to confirm the input:

Are you sure (Y/N)? 
(Y/N) or (Q) for Main Menu:

With Y, N or Q being accepted as valid inputs. Y for Yes, N for No and Q for Quit.

Categories

As stated, the same tasks can be undertaken for Expenses and Budgets. With the additional functionality of defining a Category for the records. This allows for reporting and analysis of data to be completed with meaningful results. Categories can be added via the Add/Edit Categories Menu. It is important to understand that Categories are inherently linked to Budget and Expense Records, whereby modifying a category description will be reflected in existing data. Additionally, if a Category has been used it CANNOT BE REMOVED.

Editing Data

With a record created, you are then able to Edit or Delete this record.

Again from the Add/Edit Income menu, Pressing '3' will start Edit Exisitng Income, where you will be prompted to identfy the month of the entry you wish to edit.

Press Enter to Show This Month or Input mm-yyyy

Where you will be prompted to identify the month of the entry you wish to edit

This can be input as mm-yyyy (e.g. 09-2019)

This will return a list of valid records:

          code           date          value
             1     01-10-2019         998.00
             2     15-10-2019         100.99
Which row do you wish to Edit? or Enter (Q) to Quit:

Entering the code of the record you wish to edit, or Q to Quit.

You will be then asked to confirm that the record selected is correct:

You're sure you wish to edit your Income from 01-01-2020 of £998.00? 
(Y/N) or (D)elete or (Q)uit:

Y will proceed to make changes to the record, N will cancel and allow you to select an alternative record, D will allow the deletion of the record and Q will quit to the Main Menu.

On Selecting Y, you will be asked if you require to change the Date and/or Value. Once completed the record will be updated.

Deleting Data

By Selecting D, you will be prompted to confirm you want the record deleted. THIS CANNOT BE UNDONE

Reporting

The reporting of this project allows for the presentation of data for a day, month or year in a Graph and Table, these are presented as a PDF.

Please choose the function required:
1. View Daily Reports
2. View Weekly Reports
3. View Monthly Reports
4. View Yearly Reports
5. Export All Data to XLS
9. Back to Main Menu
0. Quit

Selecting the required type, you can then enter date information, depending on their requirements. Daily will take a single date in dd-mm-yyyy format. Weekly will take a single date as the 'week commencing date' and calculate the weeks data. Month with take a mm-yyyy formatted value. Year will take the year in yyyy format.

On entering this information, you will be prompted for a filename. This should be input WITHOUT an extension, and by default will be saved in the current directory.

There is also the option to export all data to an Excel file (xlsx Format). This will simply prompt for a filename, again WITHOUT extension, and will export each database table as a separate worksheet, allowing for third-party data manipulation and analytics.

This would cover the principal use cases of the software. Any feedback or issues should be raised as an Issue/Pull Request.

EOF

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages