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