Added manual tests for budgeting and receipt input.
</td>
<td>15 hours
</td>
</tr>
<tr>
<td>Jorgen
</td>
<td>Finished Testing for previous database models
<p>
Created BudgetsDB and tested BudgetsDB
<p>
Updated and tested ReceiptsDB
<p>
Created build script and updated README.
</td>
<td>15 hours
</td>
</tr>
<tr>
<td>Lucas
</td>
<td>Finished Visualization page
<p>
Testing for Visualization page
</td>
<td>15 hours
</td>
</tr>
<tr>
<td>Michael
</td>
<td>Finished Receipt Input Bugs
<p>
Added feedback to Input
<p>
Finished Search filter by item
<p>
Finished Search filter by company
<p>
Finished Search sort oldest -> newest
<p>
Finished Search sort newest -> oldest
<p>
Added modal for search
<p>
Added delete receipt in search
</td>
<td>15 hours
</td>
</tr>
</table>
Database testing:
Running DatabaseModuleTests
(PASSED) Database Test Results: 2/2
(PASSED) BusinessesDB Test Results: 7/7
(PASSED) ItemNamesDB Test Results: 7/7
(PASSED) ItemCategoriesDB Test Results: 7/7
(PASSED) ItemsDB Test Results: 10/10
(PASSED) ReceiptsDB Test Results: 7/7
(PASSED) ItemsDB Test Results: 9/9
(PASSED) DatabaseModule Test Results: 49/49
README
# What features are in this application
1) Manual Receipt Input
2) Uploaded image copied to our image folder.
3) Search functionality
4) Search filters
5) Deleting receipts
6) Creating/Modifying Budgeting
7) View Budget Status
# Todo
1) Find and fix any uncaught bugs
2) Improve visuals
3) Add quality of life features(features that increase usability while not adding new functionality)
# Windows Setup
1) Install nodejs. https://nodejs.org/en/
2) Restart computer
3) Open powershell as admin
4) Install windows-build-tools with npm
5) Restart computer
6) Clone repository
7) Go to master branch
8) Install dependencies (cwd must be in 370-zero-idea)
# Installing windows-build-tools
```bash
npm install--global windows-build-tools
```
# Installing dependencies
``` bash
npm install
```
# Running program
``` bash
npm start
```
# Linux Setup
1) Install nodejs. https://nodejs.org/en/
2) Clone repository
4) Go to master branch
3) Install dependencies
``` bash
npm install
```
# Running program
``` bash
npm start
```
# Building binary for local machine
1) Install nodejs
2) Clone repository
4) Go to master branch
3) Install dependencies
4) ``` bash
npm run build-host
```
This will build the app for your host system. The output files can be found under the build sub directory
# Building binary for local machine
1) Install nodejs
2) Clone repository
4) Go to master branch
3) Install dependencies
4) Run a command from below for the desired operating system
## Building for Linux
``` bash
npm run build-linux
```
## Building for Windows
``` bash
npm run build-win32
```
## Building for MacOS
``` bash
npm run build-macOS
```
## Building for Linux, Windows, and MacOS
``` bash
npm run build-all
```
# Automated Testing
``` bash
npm run test
```
``` bash
npm run testDatabase
```
```
(PASSED) Database Test Results: 2/2
(PASSED) BusinessesDB Test Results: 7/7
(PASSED) ItemNamesDB Test Results: 7/7
(PASSED) ItemCategoriesDB Test Results: 7/7
(PASSED) ItemsDB Test Results: 10/10
(PASSED) ReceiptsDB Test Results: 7/7
(PASSED) ItemsDB Test Results: 9/9
(PASSED) DatabaseModule Test Results: 49/49
```
# Manual Testing
## Receipt Input
#### Test 1
Try Input a Receipt with no Business Name
Verify That:
- An error message is displayed
Status: Pass
#### Test 2
Try Input a Receipt with no Date
Verify That:
- An error message is displayed
Status: Pass
#### Test 3
Try Input a Receipt with no Items
Verify That:
- An error message is displayed
Status: Pass
#### Test 4
Try to create an item with 1 parameter missing
Verify That:
- An error message is displayed
Status: Pass
#### Test 5
Try Input a Receipt with a picture
Verify That:
- The picture is copied into the picture database
- The picture info is successfully put into the database and kept upon reloadings
Status: Failed
#### Test 6
Try Input a Receipt with valid input
Verify That:
- An success message is displayed
- The receipt is successfully put into the database and kept upon reloadings
Status: Pass
## Data Visualization
## Searching
## Budgeting
#### Test 1
Create Budget(ex: 50.00) for a timeframe(ex: march 2020) on All receipts where there is not a budget
Verify That:
- Can view budget
- Budget amount is correct
- Budget is saved and kept upon reloading the application
Status: Pass
#### Test 2
Update an existing Budget(ex: 50.00) to a new value(ex: 100.00) for a timeframe(ex: march 2020) on All receipts for a budget that already exists in the database
Verify That:
- Can view budget
- Budget amount is the new amount
- New budget amount is saved and kept upon reloading the application
Status: Pass
#### Test 3
Create Budget(ex: 50.00) for a timeframe(ex: march 2020) on a business where there is not a budget
Verify That:
- Can view budget
- Budget amount is correct
- Budget is saved and kept upon reloading the application
Status: Pass
#### Test 4
Update an existing Budget(ex: 50.00) to a new value(ex: 100.00) for a timeframe(ex: march 2020) on a business for a budget that already exists in the database
Verify That:
- Can view budget
- Budget amount is the new amount
- New budget amount is saved and kept upon reloading the application
Status: Pass
#### Test 5
Create Budget(ex: 50.00) for a timeframe(ex: march 2020) on a category where there is not a budget
Verify That:
- Can view budget
- Budget amount is correct
- Budget is saved and kept upon reloading the application
Status: Pass
#### Test 6
Update an existing Budget(ex: 50.00) to a new value(ex: 100.00) for a timeframe(ex: march 2020) on a category for a budget that already exists in the database
Verify That:
- Can view budget
- Budget amount is the new amount
- New budget amount is saved and kept upon reloading the application
Status: Pass
#### Test 7
Create Budget(ex: -50.00) for a timeframe(ex: febuary 2020) on a category/business/all where there is not a budget
Verify That:
- An error message displayed
- The value is not saved
Status: Pass
#### Test 8
Update an existing Budget to a new value that is <= 0 (ex: -10) for a timeframe(ex: febuary 2020) on a category/business/all for a budget that already exists in the database
Verify That:
- An error message is displayed
- The value is not saved
Status: Pass
Prerequisites:
- Receipts have been entered in the receipt input page
- Budgets have been entered in the budget input part of the page
#### Test 9
Browse a budget that has a budget set for the current timeframe for a business/a category/all
Verify That:
- The budget is correctly displayed
Status: Pass
#### Test 10
Browse a budget that has no budget set for the current timeframe for a business/a category/all
Verify That:
- No budget is displayed
Status: Pass
#### Test 11
Browse a timeframe where there is spending for the current timeframe for a business/a category/all
Verify That:
- The spending is correctly displayed
Status: Pass
#### Test 12
Browse a budget where there is no spending for the current timeframe for a business/a category/all
Verify That:
- The spending is 0
Status: Pass
#### Test 13
Browse a timeframe where there is spending and a budget set for the current timeframe for a business/a category/all and the budget is bigger than the spending
Verify That:
- The surplus is correctly computed
Status: Pass
#### Test 13
Browse a timeframe where there is spending and a budget set for the current timeframe for a business/a category/all and the budget is smaller than the spending
Verify That:
- The deficit is correctly computed
Status: Pass
#### Test 15
Browse a budget where there is no budget set for the current timeframe for a business/a category/all