|
|
|
|
|
**Milestone 9**
|
|
|
|
|
|
**Action Plan**
|
|
|
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td><strong>Name</strong>
|
|
|
</td>
|
|
|
<td><strong>What was done</strong>
|
|
|
</td>
|
|
|
<td><strong>Time Spent</strong>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Jeremie
|
|
|
</td>
|
|
|
<td>Added text receipt parsing<br>
|
|
|
Looked into better image preprocessing<br>
|
|
|
Code review
|
|
|
</td>
|
|
|
<td>14 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Jorgen
|
|
|
</td>
|
|
|
<td>
|
|
|
Helped Micheal<bt>
|
|
|
Finished implementation of database. <br>
|
|
|
Code review
|
|
|
</td>
|
|
|
<td>10 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Lucas
|
|
|
</td>
|
|
|
<td>Refactored all pages to use bootstrap<br>
|
|
|
Drop-down filter functionality for search page<br>
|
|
|
Code Review
|
|
|
</td>
|
|
|
<td>12 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Michael
|
|
|
</td>
|
|
|
<td>Changed dependencies to local, connected to database for manual input.<br>
|
|
|
Code Review
|
|
|
</td>
|
|
|
<td>10 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td><strong>Name</strong>
|
|
|
</td>
|
|
|
<td><strong>What will be done</strong>
|
|
|
</td>
|
|
|
<td><strong>Time Spent (Estimated)</strong>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Jeremie
|
|
|
</td>
|
|
|
<td>Searching and Visualization Backend
|
|
|
</td>
|
|
|
<td> 10 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Jorgen
|
|
|
</td>
|
|
|
<td>
|
|
|
Finish testing database, add file uploading to database
|
|
|
</td>
|
|
|
<td> 10 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Lucas
|
|
|
</td>
|
|
|
<td>UI, Searching and Visualization
|
|
|
</td>
|
|
|
<td>10 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Michael
|
|
|
</td>
|
|
|
<td>UI aesthetics, Searching and Visualization, fix bug input receipt
|
|
|
</td>
|
|
|
<td>10 hours
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
**Quality Criteria and Inspection Items (Add other appropriate items for our product)**
|
|
|
|
|
|
|
|
|
|
|
|
1. Completeness(of reflection by code of requirements)
|
|
|
1. Each such method has appropriate parameters
|
|
|
2. Consistency (of layout, name choice, and code organization)
|
|
|
1. Placement of braces ({ and }) done consistently throughout.
|
|
|
2. Indentation is used, consistently, to indicate block structure within braces.
|
|
|
3. Block comments precede the code they describe.
|
|
|
4. The same names or abbreviations are used consistently for the same concept (_e.g. _not next, nextNode, and nxtn in three places in the same class).
|
|
|
3. Coding Style
|
|
|
1. Correct function declarations
|
|
|
2. Semicolons after each line of code
|
|
|
3. Let instead of var
|
|
|
4. Single property single line object property declarations
|
|
|
4. Efficient Processing (using as little processing time as is reasonable)
|
|
|
1. Loops contain complex code, or other loops, only when necessary.
|
|
|
2. Array processing (especially search) contains loop exit code to execute when the condition is found.
|
|
|
5. Efficient Storage
|
|
|
1. All local and instance variables are actually used somewhere.
|
|
|
2. limited global variables
|
|
|
6. Simplicity
|
|
|
1. No redundant code, extract to a function
|
|
|
2. Math expressions, control expressions (in ifs, whiles, fors, and switches) are as simple as possible.
|
|
|
3. Standard JS usage.
|
|
|
4. Variables declared as close as possible to where they are used
|
|
|
7. Self-Description
|
|
|
1. Comments are provided whenever the purpose or reason for doing something in the code is obscure.
|
|
|
2. Comments are provided to describe every method, however briefly.
|
|
|
3. Comments are provided to describe the purpose, restrictions, and relationships between all instance variables in a class.
|
|
|
4. All names are chosen well and consistently to reflect their usage and purpose.
|
|
|
5. Constants (static final) are used instead of magic numbers. (_e.g. _Don't write 42, write static final ULT_ANS = 42; and then use ULT_ANS instead.)
|
|
|
6. Booleans are not compared to boolean constants. (_e.g. _if (!found) is preferred to if (found == false)).
|
|
|
8. Reusability
|
|
|
1. Public methods are as general-purpose as is consistent with the design.
|
|
|
2. Public method headers do not reveal the known usage of the class by code outside the class.
|
|
|
9. Modularity
|
|
|
1. Instance variables are not public.
|
|
|
2. Variables are declared as locally as possible.
|
|
|
3. Public method headers don't reveal the internal design of the class.
|
|
|
4. System.exit is not called directly.
|
|
|
10. Extra
|
|
|
1. Generated files should not be in git repo
|
|
|
2. Old uncommented code should be removed
|
|
|
3. Coding should be done in a way to increase cohesion and decrease coupling
|
|
|
|
|
|
**Findings Report**
|
|
|
|
|
|
|
|
|
**Inspector’s Name**: Lucas Merilees
|
|
|
|
|
|
**Inspectee's Name**: Michael Wong
|
|
|
|
|
|
**Date Started**: March 11th 2020
|
|
|
|
|
|
**Date Completed**: March 13th 2020
|
|
|
|
|
|
**Project Name**:Crab My Receipt
|
|
|
|
|
|
**Time Report:**
|
|
|
|
|
|
|
|
|
Time spent on Familiarization with the Code: 30 minutes
|
|
|
|
|
|
|
|
|
Time spent on Filling in Findings Report: 1 hour
|
|
|
|
|
|
|
|
|
Time spent on Actual Inspection: 1 hour
|
|
|
|
|
|
**Findings:**
|
|
|
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td><strong>#</strong>
|
|
|
</td>
|
|
|
<td><strong>Description</strong>
|
|
|
</td>
|
|
|
<td><strong>Line #</strong>
|
|
|
</td>
|
|
|
<td><strong>Script/Class Name</strong>
|
|
|
</td>
|
|
|
<td><strong>Associated Checklist Item #</strong>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>1
|
|
|
</td>
|
|
|
<td>Insufficient commenting
|
|
|
</td>
|
|
|
<td>All
|
|
|
</td>
|
|
|
<td>CreateReceipt.js
|
|
|
</td>
|
|
|
<td>7.1, 7.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>2
|
|
|
</td>
|
|
|
<td>Missing semicolons
|
|
|
</td>
|
|
|
<td>12, 64
|
|
|
</td>
|
|
|
<td>CreateReceipt.js
|
|
|
</td>
|
|
|
<td>3.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>3
|
|
|
</td>
|
|
|
<td>Typo in function name
|
|
|
</td>
|
|
|
<td>21
|
|
|
</td>
|
|
|
<td>CreateReceipt.js
|
|
|
</td>
|
|
|
<td>7.4
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
**Findings Report**
|
|
|
|
|
|
**Inspectee's Name**: Jorgen Wiebe
|
|
|
|
|
|
**Inspector’s Name**: Jeremie Michaud
|
|
|
|
|
|
**Date Started**: March 11th 2020
|
|
|
|
|
|
**Date Completed**: March 13th 2020
|
|
|
|
|
|
**Project Name**:Crab My Receipt
|
|
|
|
|
|
**Time Report:**
|
|
|
|
|
|
|
|
|
Time spent on Familiarization with the Code: 30 minutes
|
|
|
|
|
|
|
|
|
Time spent on Filling in Findings Report: 1 hour
|
|
|
|
|
|
|
|
|
Time spent on Actual Inspection: 1 hour
|
|
|
|
|
|
**Findings:** Several copy paste errors so the line numbers are similar in other files
|
|
|
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td><strong>#</strong>
|
|
|
</td>
|
|
|
<td><strong>Description</strong>
|
|
|
</td>
|
|
|
<td><strong>Line #</strong>
|
|
|
</td>
|
|
|
<td><strong>Script/Class Name</strong>
|
|
|
</td>
|
|
|
<td><strong>Associated Checklist Item #</strong>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>1
|
|
|
</td>
|
|
|
<td>Autogenerated files included
|
|
|
</td>
|
|
|
<td>N/A
|
|
|
</td>
|
|
|
<td>testdb.sqlite-journal
|
|
|
</td>
|
|
|
<td>10.1
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>2
|
|
|
</td>
|
|
|
<td>Foreign keys should be defined in their respective models
|
|
|
</td>
|
|
|
<td>N/A
|
|
|
</td>
|
|
|
<td>All DB.js files
|
|
|
</td>
|
|
|
<td>10.3
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>3
|
|
|
</td>
|
|
|
<td>Uncommented methods
|
|
|
</td>
|
|
|
<td>N/A
|
|
|
</td>
|
|
|
<td>All DBTests.js files
|
|
|
</td>
|
|
|
<td>7.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>4
|
|
|
</td>
|
|
|
<td>Some code indentation is off
|
|
|
</td>
|
|
|
<td>Ex. 64, 84 of ItemCategoriesDBTests.js
|
|
|
</td>
|
|
|
<td>Some DBTests.js files
|
|
|
</td>
|
|
|
<td>2.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>5
|
|
|
</td>
|
|
|
<td>Missing semicolons
|
|
|
</td>
|
|
|
<td>Ex. 78, 86 of ItemCategoriesDBTests.js
|
|
|
</td>
|
|
|
<td>All DBTests.js files
|
|
|
</td>
|
|
|
<td>3b
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>6
|
|
|
</td>
|
|
|
<td>Missing await on some methods that could use it
|
|
|
</td>
|
|
|
<td>Ex. 78 of ItemCategoriesDBTests.js
|
|
|
</td>
|
|
|
<td>All DBTests.js files
|
|
|
</td>
|
|
|
<td>3.1
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
**Findings Report**
|
|
|
|
|
|
|
|
|
|
|
|
Inspector’s Name: Michael
|
|
|
|
|
|
Inspectee: Lucas
|
|
|
|
|
|
Date Started: March 10, 2020
|
|
|
|
|
|
Date Completed: March 13, 2020
|
|
|
|
|
|
Project Name: CrabMyReceipt
|
|
|
|
|
|
Time Report:
|
|
|
|
|
|
|
|
|
Time spent on Familiarization with the Code: 30 min
|
|
|
|
|
|
|
|
|
Time spent on Filling in Findings Report: 1 hours
|
|
|
|
|
|
|
|
|
Time spent on Actual Inspection: 2 hours
|
|
|
|
|
|
Findings:
|
|
|
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td><strong>#</strong>
|
|
|
</td>
|
|
|
<td><strong>Description</strong>
|
|
|
</td>
|
|
|
<td><strong>Line #</strong>
|
|
|
</td>
|
|
|
<td><strong>Script/Class Name</strong>
|
|
|
</td>
|
|
|
<td><strong>Associated Checklist Item #</strong>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>1
|
|
|
</td>
|
|
|
<td> Too many indents
|
|
|
</td>
|
|
|
<td> 60-90
|
|
|
</td>
|
|
|
<td> index.html
|
|
|
</td>
|
|
|
<td> 2.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>2
|
|
|
</td>
|
|
|
<td> Div in one line
|
|
|
</td>
|
|
|
<td> 112-114
|
|
|
</td>
|
|
|
<td>index.html
|
|
|
</td>
|
|
|
<td> 2.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>3
|
|
|
</td>
|
|
|
<td> Missing ;
|
|
|
</td>
|
|
|
<td> 12, 15-27, 23, 26, 29
|
|
|
</td>
|
|
|
<td>search.js
|
|
|
</td>
|
|
|
<td>3.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>4
|
|
|
</td>
|
|
|
<td>Bad function argument name
|
|
|
</td>
|
|
|
<td>5
|
|
|
</td>
|
|
|
<td>Index.js
|
|
|
</td>
|
|
|
<td>7.4
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>5
|
|
|
</td>
|
|
|
<td>Missing ;
|
|
|
</td>
|
|
|
<td>7-8, 12, 16-17, 22-23, 27-28, 32-33, 38, 52-54, 59-61,66-67, 69-71
|
|
|
</td>
|
|
|
<td>index.js
|
|
|
</td>
|
|
|
<td>3.2
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>6
|
|
|
</td>
|
|
|
<td>Bad function argument name
|
|
|
</td>
|
|
|
<td>31, 37
|
|
|
</td>
|
|
|
<td>index.js
|
|
|
</td>
|
|
|
<td>7.4
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>7
|
|
|
</td>
|
|
|
<td>Wrong function style
|
|
|
</td>
|
|
|
<td>31, 37, 41, 51, 58, 65
|
|
|
</td>
|
|
|
<td>index.js
|
|
|
</td>
|
|
|
<td>3.1
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>8
|
|
|
</td>
|
|
|
<td>Using var
|
|
|
</td>
|
|
|
<td>47, 48
|
|
|
</td>
|
|
|
<td>index.js
|
|
|
</td>
|
|
|
<td>3.3
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**Further Comments from the Inspection of this Class:**
|
|
|
|
|
|
**Findings Report**
|
|
|
|
|
|
Inspector’s Name: Jorgen Wiebe
|
|
|
|
|
|
Inspectee: Jeremie Michaud
|
|
|
|
|
|
Date Started: March 13, 2020
|
|
|
|
|
|
Date Complete: March 13, 2020
|
|
|
|
|
|
Project Name: Crab My Receipt
|
|
|
|
|
|
Time Report:
|
|
|
|
|
|
Time spent on familiarization with the Code: 10min
|
|
|
|
|
|
Time spend on FIlling in Findings Report: 50min
|
|
|
|
|
|
Time spent on Actual Inspection: 50min
|
|
|
|
|
|
Findings:
|
|
|
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td><strong>#</strong>
|
|
|
</td>
|
|
|
<td><strong>Description</strong>
|
|
|
</td>
|
|
|
<td><strong>Line #(s)</strong>
|
|
|
</td>
|
|
|
<td><strong>File/Class/Function Name</strong>
|
|
|
</td>
|
|
|
<td><strong>Associated Checklist Item #</strong>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>1
|
|
|
</td>
|
|
|
<td>eng.traineddata should be in gitignore
|
|
|
</td>
|
|
|
<td>N/A
|
|
|
</td>
|
|
|
<td>N/A
|
|
|
</td>
|
|
|
<td>10.1 \
|
|
|
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>2
|
|
|
</td>
|
|
|
<td>Provide examples of regular expressions. Could not get regex to work with what I think an input would like.
|
|
|
</td>
|
|
|
<td>22, 27,32, 36
|
|
|
</td>
|
|
|
<td>OCR.js
|
|
|
</td>
|
|
|
<td>7.3
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>3
|
|
|
</td>
|
|
|
<td>Document what function arguments are used for. Eg: what are fields used for
|
|
|
</td>
|
|
|
<td>47
|
|
|
</td>
|
|
|
<td>OCR.js
|
|
|
<p>
|
|
|
parseTextLineByName
|
|
|
</td>
|
|
|
<td>7.3
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>4
|
|
|
</td>
|
|
|
<td>Move const regular expressions into their corresponding functions if not used by other functions.
|
|
|
</td>
|
|
|
<td>13->65
|
|
|
<p>
|
|
|
14->76
|
|
|
<p>
|
|
|
15->72
|
|
|
<p>
|
|
|
18->109
|
|
|
<p>
|
|
|
36->118
|
|
|
<p>
|
|
|
27->126
|
|
|
<p>
|
|
|
32-119
|
|
|
<p>
|
|
|
36->138
|
|
|
</td>
|
|
|
<td>OCR.js
|
|
|
</td>
|
|
|
<td>6.4
|
|
|
<p>
|
|
|
5.4
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>5
|
|
|
</td>
|
|
|
<td>Split up the object declaration into multiple lines.
|
|
|
</td>
|
|
|
<td>82
|
|
|
<p>
|
|
|
245
|
|
|
</td>
|
|
|
<td>OCR.js
|
|
|
<p>
|
|
|
findItems
|
|
|
<p>
|
|
|
module.exports
|
|
|
</td>
|
|
|
<td>3.4
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>6
|
|
|
</td>
|
|
|
<td>Can use shorthand object initalizer for properties with same name as variable
|
|
|
<p>
|
|
|
Eg:
|
|
|
<p>
|
|
|
{a:a, b:b, c:c} -> {a, b, c}
|
|
|
</td>
|
|
|
<td>245
|
|
|
</td>
|
|
|
<td>OCR.js
|
|
|
<p>
|
|
|
module.exports
|
|
|
</td>
|
|
|
<td>MISC
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
Further comments: Good job!
|
|
|
|