2020/10/4 Develop a Transaction Processing System – Final Milestone
Develop a Transaction Processing System – Final Milestone
Submit Assignment
Due No due date Points 25 Submitting a file upload
Course code and name: ISYS2047 Information Systems Solutions and Design Assessment name: Develop a Transaction Processing System – Final milestone Weight: 25%
Assignment due date: Week 11 (during your allocated tutorial class)
Feedback mode:
General written feedback will be provided on Canvas and verbal individual feedback provided during the demonstration.
Assessment Declaration:
I declare that in submitting all work for this assessment I have read, understood and agree to the content and expectations of the Assessment declaration (https://www.rmit.edu.au/students/student- essentials/assessment-and-exams/assessment/assessment-declaration) .
Learning Objectives Assessed:
This assignment assesses the following Learning Objectives:
1. Apply theoretical and technical knowledge of information systems to facilitate and support business practice.
2. Select and apply various tools and techniques to effectively implement information systems to support business processes.
3. Respond to issues and challenges faced by businesses and generate a range of potential solutions.
4. Design and implement information systems to address specific business issues.
Details:
This assignment is an INDIVIDUAL and multi-part assignment due over 3 milestones:
Milestone 1 – due in week 7 Milestone 2 – due in week 9 Final milestone – due in week 11
All milestones must be demonstrated to your tutor during your assigned lab classes and a copy of your work submitted to Canvas.
The total assignment is worth 35% of the course marks. The individual milestones are worth:
Milestone 1 – 5% of course marks Milestone 2 – 10% of course marks Final milestone – 25% of course marks
https://rmit.instructure.com/courses/64183/assignments/485466 1/6
2020/10/4 Develop a Transaction Processing System – Final Milestone
Final Milestone Requirements – Complete System
You are required to perform the following tasks for this milestone:
1. Write Python code to implement one CRUD GUI for the table you implemented the DAO and test DAO in milestone 2. Name the Python script as xxx_gui.py (where xxx is the name of a database table). The GUI must have full CRUD capabilities for that table and the data entered on the form must be validated. Detailed instructions can be found in Lab Task 9.3. Before you can attempt Lab Task 9.3, you will need to complete Lab Tasks 9.1 and 9.2.
Notes
1. Do not implement complex GUIs
Please note that you are not expected to implement complex GUIs such as the purchase order GUI for performing CRUD operations simultaneously on two tables involved in a one-to-many relationship.
When implementing the first GUI, choose a single simple table to implement it.
2. Implementing a GUI for a table that contains a ‘date’ field
Steps for handling a date field in your GUI code e.g. dob (date_of_birth)
1. Add this line to your imports
from dateutil.parser import parse
2. In your __init__ method, your date field should be StringVar()
self.dob = tk.StringVar()
3. In get_fields(), when passing your fields to the dictionary, use the following
code to get the date field from the GUI:
if self.dob.get():
d[‘dob’] = parse(self.dob.get())
else:
d[‘dob’] = None
4. If your validate_fields() method has any IF statements that checks the len() of your date field, remove or comment it out. Otherwise skip this step.
5. In your populate_fields() method, use the following code to set the date field in the GUI from the dictionary:
self.dob.set(xxxx[‘dob’].strftime(‘%d/%m/%Y’)) where xxx is the name of your dictionary
2. Write Python code to improve the validation class. You were provided with a validation class (validation.py) and a test script (validation_test.py) in the course (week-09-code.zip). You are expected to expand these Python files and improve on the validation methods provided (e.g. phone number, email address) as these were not performing correctly (in case you are using them). Alternatively, you could implement additional validation methods. All the improvements/additions should be tested by adding
https://rmit.instructure.com/courses/64183/assignments/485466 2/6
2020/10/4 Develop a Transaction Processing System – Final Milestone
additional tests to the test script. Detailed explanation of the validation class can be found in Lecture 9 and
in the comments of the Python scripts validation.py and validation_test.py in week-09-code.zip
3. Write Python code to implement a second CRUD GUI (including its DAO, and testing the DAO). Name
these Python scripts as yyy_dao.py, yyy_dao_test.py and yyy_gui.py (where yyy is the name of a database table).
Notes
1. You are not expected to implement complex GUIs such as the purchase order GUI for performing CRUD operations simultaneously on two tables involved in a one-to-many relationship.
2. When implementing the second GUI, choose another single table to implement it.
4. Write Python code to implement a main menu for the application. Name the Python script as zzz_main_gui.py (where zzz is the name of the system implemented) Detailed instructions can be found in Lab Task 9.4.
Coding standards
Code should be written using the PEP-8 python naming conventions and docstring comments provided for all classes and methods.
Bugs in the provided code should be fixed
Code should be tested for boundary or extreme conditions and bugs fixed. For example, the update() and delete() methods of the employee DAO will crash if a valid employee_id is not supplied. In other GUIs, the load() method may crash if there are no records in the database. All these methods should be properly tested for extreme conditions and any bug found should be fixed.
Submission:
Demonstration of your assignment in week 11 (during your allocated tutorial class)
A zipped file of all your files for all milestones (PowerPoint, Balsamiq bmpr file, python code, database file, etc) submitted to Canvas in week 11 (before your allocated tutorial class).
The zip file should include the following:
A PowerPoint file containing the requirements of the first milestone i.e. TPS narrative, ERD and Balsamiq mockups. Also include the Balsamiq source file (i.e. the bmpr file). This is either the same or an improved version of the PowerPoint file that was submitted for milestone 1.
An SQLite database for the application named app.db.
All the python scripts implemented for the whole assignment (i.e. milestone 2 and final milestone).
Demonstrations
The final assignment is due in week 11 and should be demonstrated in week 11 during the lab classes. However, if the demonstrations cannot be completed in week 11, they will continue in week 12. The important thing to note is that all assignments are due in week 11 and should be uploaded to Canvas in week 11.
Grading rubric
You are strongly advised to check the rubric used for grading this milestone on Canvas.
https://rmit.instructure.com/courses/64183/assignments/485466 3/6
2020/10/4 Develop a Transaction Processing System – Final Milestone
Assignment 2: Developing a transaction processing system – Final
https://rmit.instructure.com/courses/64183/assignments/485466 4/6
2020/10/4 Develop a Transaction Processing System – Final Milestone
Criteria
Ratings
Pts
1. Main menu – zzz_main_gui.py
10.0 Pts
Fully functional GUI
4.0 Pts Non-functional GUI
0.0 Pts
Did not attempt
10.0 pts
2. GUI for first table – xxx_gui.py
5 functions to implement: (1) Load, (2) delete, (3) save/insert, (4) save/update, (5) clear
20.0 Pts
5 functions implemented
16.0 Pts
4 functions implemented
12.0 Pts
3 functions implemented
8.0 Pts
2 functions implemented
4.0 Pts
1 function implemented
0.0 Pts Did not attempt
20.0 pts
3. DAO for second table – yyy_dao.py
6 methods to implement: (1) create, (2) find_by_id, (3) find_all, (4) find_ids, (5) update, and (6) delete
12.0 Pts
6 methods implemented
6.6 Pts
5 methods implemented
5.2 Pts
4 methods implemented
4.0 Pts
3 methods implemented
2.6 Pts
2 methods implemented
1.2 Pts
1 method implemented
0.0 Pts Did not attempt
12.0 pts
4. Test DAO for second table – yyy_dao_test.py
6 methods to implement: (1) test_create, (2) test_find_by_id, (3) test_find_all, (4) test_find_ids, (5) test_update, and (6) test_delete
12.0 Pts
6 methods implemented
6.6 Pts
5 methods implemented
5.2 Pts
4 methods implemented
4.0 Pts
3 methods implemented
2.6 Pts
2 methods implemented
1.2 Pts
1 method implemented
0.0 Pts Did not attempt
12.0 pts
5. GUI for second table – yyy_gui.py
5 functions to implement: (1) Load, (2) delete, (3) save/insert, (4) save/update, (5) clear
20.0 Pts
5 functions implemented
16.0 Pts
4 functions implemented
12.0 Pts
3 functions implemented
8.0 Pts
2 functions implemented
4.0 Pts
1 function implemented
0.0 Pts Did not attempt
20.0 pts
6. Validation improvement
9.0 Pts
Tested improved/added validation methods
6.0 Pts
Improved validation code and/or added new methods
3.0 Pts Used validation code
0.0 Pts Did not attempt
9.0 pts
7. Fixed buggy code
5.0 Pts
Fixed buggy code in update, delete and load methods
0.0 Pts
Did not attempt
5.0 pts
https://rmit.instructure.com/courses/64183/assignments/485466 5/6
2020/10/4 Develop a Transaction Processing System – Final Milestone
Criteria
Ratings
Pts
8. Coding standards
3 tasks to perform: (1) used PEP-8 naming conventions, (2) used docstring comments, and (3) changed variable names, comments, filenames, etc in provided code
12.0 Pts
3 tasks performed
8.0 Pts
2 tasks performed
4.0 Pts
1 task performed
0.0 Pts
Did not attempt
12.0 pts
Total points: 100.0
https://rmit.instructure.com/courses/64183/assignments/485466 6/6