Diploma in Information Technology
Problem Solving
Instruction for CA3 Group Assignment
April 2024 Semester
Assessment
100 marks (This assignment constitutes 40% of the overall assessment)
Deliverables
There are Four (4) deliverables in this assignment, students must complete ALL components.
1. Written project report (6%)
2. Python codes (20%)
3. User guides with sample inputs/outputs (4%)
4. Oral Presentation (10%)
The Task
The objective of this project is to allow students to design and implement a mini program. You are to use flowchart to design your program, with clear steps and flows indicated. You need to use Python programming language to code all the programs, according to the project requirement.
In your report, write a brief description, in 500 words, on your program design. You need to include flowcharts demonstrating the main program flow in the report. You will also include screenshot samples on how the program should run in the report.
In your Python codes, include comments to explain the purpose of each section.
Assessment Marks Allocation
|
Component Assessed |
Marks Allocation |
1 |
Part 1 – Report with flowchart |
15 |
2 |
Part 2a – Main Programs (Python) |
40 |
|
Part 2b – Additional Features |
10 |
3 |
Part 3 – User guides with screenshots |
10 |
4 |
Part 4 – Oral Presentation |
25 |
|
Total |
100 |
The Case
Beyond Expeditions SG (BESG) is a boutique travel agency and expedition curator, they tailor-make journeys to enchanting and remote destinations such as Mongolia, Kyrgyzstan, Kazakhstan, Tajikistan and Ladakh.
With deep understanding of these regions and close collaborations with local grassroots tour agencies in each region, BESG setup tours bringing extraordinary experience for travellers, backpacker, or intrepid adventurer with the raw beauty of these destinations’ natural wonders, cultural treasures, and the warmth of their people.
Post-Covid, BESG faced a significant increase in bookings for tours to these exotic regions. As current tour setup and booking operations are all done manually using Excel spreadsheets, they found the process getting tedious, inconsistent, and difficult to track.
Sample of the Tour and Bookings (in Excel) are shown in Figure 1 below.
Figure 1
When bookings are inserted into the Excel, BESG administrators need to record key information like travellers’ passport number, name, date of birth and contact number. The final cost is calculated if the booking is for group of 2 or more. Even when formula is applied into spreadsheets and/or cells, there are times when formula and/or cell gets overwritten causing inconsistency and giving bad client experience.
As an intern in IMDA (Infocomm Media Development Authority), your supervisor has assigned you to help BESG automate their tour setup and booking process, with objectives to tidy up the operations processes and to produce reports for analysis.
Project Requirement
After extensive discussions, BESG would like to have the following essential features to be included:
Tour Admin functionalities that featured creation of tour, updating of tour details, deleting tour, and listing of tours.
Tour Booking functionalities that include tour booking (individual and group), cancellation of booking, search booking and booking report showing the seats booked and the remaining availability.
Further features to be integrated in the application are configurable discount schemes and cancellation penalties (see BONUS features).
Based on you understanding, the application should display the below main menu to allow BESG administrators to repeatedly perform. the 2 key features.
^^^^ BESG ^^^^
1. Tour Admin
2. Tour Booking
0. Exit
Enter option:
Before presenting the main menu, your application needs to load/pre-setup the Tours from “Tours.txt” (Appendix A) into a collection*.
* you can decide to implement using either Dictionary or List.
Details of the 2 key features are presented below:
1. Tour Admin
This feature allows BESG to perform. the following: (through a sub-menu)
<<<< Tour Admin >>>>
a. List Tours
b. Setup Tour
c. Update Tour
d. Delete Tour
m. Back to main menu
Enter option:
a. This feature will list the tour details, as shown in Figure 2 of Appendix A, PLUS a column to show the number of seats booked for each tour.
b. To setup a new Tour, these data elements should be collected:
Tour Name: should be one of the 8 tours as in Figure 2 of Appendix A
Departure Date: full datetime format with hours and minutes (yyyy-mm-dd HH:MM)
Tour Code: in format of XXX-YYMMDD, where XXX should follow the suggested 3 characters as shown in Figure 2 of Appendix A, and “YYMMDD” should be aligned with the departure date
Days: number of days for this tour
Nights: number of nights for this tour. Your program should ensure that there should not be different of 2 between days and nights.
Cost per pax: the cost per person
Capacity: maximum number of seats planned for this tour
When a new Tour is created, the status should be defaulted to “Open”. The new Tour will be added into the collection and updated into “Tours.txt” file.
c. The “Update Tour” option allows BESG to update the tour’s details:
User should first provide the Tour Code to search
If there is no tour with this Tour Code, display appropriate error message and return to sub-menu
If the Tour Code is valid, your program should display the tour details, and number of seats booked for this tour
Tour Code is not amendable
Only allow update to Departure date, Days, Nights, and Cost per pax, if the number of seats booked is ZERO.
Ensure updated Capacity value will not be less than the number of seats booked.
For Status, only permitted values are “Open” and “Closed”
Any updates should also be effected into “Tours.txt”
d. The “Delete Tour” option allows BESG to remove the setup tour from the application.
User should first provide the Tour Code to search.
If there is no tour with this Tour Code, display appropriate error message and return to sub-menu.
If the Tour code is valid, your program should display the tour details, and number of seats booked for this tour.
Only allow deletion of tour if the number of seats booked is ZERO. Otherwise, display appropriate error message and return to sub-menu.
Any deletes should also be effected into “Tours.txt”
2. Tour Booking
This feature allows BESG to automate and manage their booking operations. These options should be presented in the sub-menu:
>>>> Tour Booking <<<<
a. Create Booking
b. Cancel Booking
c. Search Booking
d. Booking Report
m. Back to main menu
Enter option:
a. To create a Booking, the following data elements should be collected:
Tour code, after displaying a listing of “Open” tours
Traveller’s details: Passport number, name, date of birth and contact number
If it is a group booking, keep prompting for travellers’ details until
During the booking process, your program should apply these validations or rules:
The selected tour has not departed; is not in “Closed” status; and has enough capacity for this booking
The traveller’s age must be at least 18 years old, unless it is a group booking with at least one other traveller who is at least 21 years old
Check passport numbers of this booking against the existing bookings, to ensure no duplicated travellers within this tour
Apply the eligible discount if it is a group booking (see Figure 3 of Appendix B)
Generate a unique Booking ID (running number) and display the booking details
Below are demonstrations of Individual and Group booking:
>>>> Tour Booking <<<<
a. Create Booking
b. Cancel Booking
c. Search Booking
d. Booking Report
m. Back to main menu
Enter option: a
List of Open Tours:
^^^^^^^^^^^^^^^^^^^
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Cost per pax: $3,899.00
Capacity: 12 Available: 12 Status: Open
..
..
Name: Central Mongolia (10D/9N)
Code: CMA-240608 Departure: 08-Jun-2024 23:15
Cost per pax: $3,399.00
Capacity: 15 Available: 15 Status: Open
Enter Tour Code: WMA-240520
Enter Passport Number: E9511525Z
Enter Name: Jessica Ong
Enter DoB (YYYYMMDD): 19950102
Enter Contact: 98772534
Enter Passport Number:
Individual booking is added. See confirmation below:
Booking Id: 1001
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Capacity: 12 Available: 11 Status: Open
Passport Name Age Contact
---------------------------------------------------
E9511525Z Jessica Ong 29 98772534
..
..
>>>> Tour Booking <<<<
a. Create Booking
b. Cancel Booking
c. Search Booking
d. Booking Report
m. Back to main menu
Enter option: a
List of Open Tours:
^^^^^^^^^^^^^^^^^^^
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Cost per pax: $3,899.00
Capacity: 12 Available: 11 Status: Open
..
..
Name: Central Mongolia (10D/9N)
Code: CMA-240608 Departure: 08-Jun-2024 23:15
Cost per pax: $3,399.00
Capacity: 15 Available: 12 Status: Open
Enter Tour Code: WMA-240520
Enter Passport Number: E5432011K
Enter Name: Gu Meng Meng
Enter DoB (YYYYMMDD): 20070225
Enter Contact: 92927865
Enter Passport Number: K5345450B
Enter Name: Gu Feng
Enter DoB (YYYYMMDD): 19641115
Enter Contact: 62845234
Enter Passport Number: K5772388J
Enter Name: Sharon Lee
Enter DoB (YYYYMMDD): 19730106
Enter Contact: 91776544
Enter Passport Number:
Group booking is added. See confirmation below:
Booking Id: 1014
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Seats: 3 Cost: $10,527.30
Passport Name Age Contact
---------------------------------------------------
E5432011K Gu Meng Meng 17 92927865
K5345450B Gu Feng 59 62845234
K5772388J Sharon Lee 51 91776544
b. To cancel a booking, BESG admin needs to provide the booking ID. The booking can only be cancelled if the following conditions are met:
There is booking matching the booking ID; and
The Tour has not departed
If the booking and cancellation is made on the same day, there is no cancellation penalty. Otherwise, compute and display the cancellation penalty fees based on Figure 4 in Appendix B.
c. To search for a Booking, BESG admin needs to provide the booking ID.
Your program should display appropriate error message if there is no booking matching the booking ID.
If the booking is located, display the booking details. Below are 2 samples, 1 for Individual booking and 1 for Group booking:
Booking Id: 1001
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Capacity: 12 Available: 8 Status: Open
Passport Name Age Contact
---------------------------------------------------
E9511525Z Jessica Ong 29 98772534
Booking Id: 1014
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Seats: 3 Cost: $10,527.30
Passport Name Age Contact
---------------------------------------------------
E5432011K Gu Meng Meng 17 92927865
K5345450B Gu Feng 59 62845234
K5772388J Sharon Lee 51 91776544
The “Booking Report” option allow BESG to generate the booking Summary for interested Tours. To generate this report, BESG admin can provide Tour Codes (separated by commas).
Your program should display appropriate error message if there is no tour matching any of the given Tour Codes
In the same order as the provided Tour Codes, generate the “Booking Report” in the suggested format below:
(Assuming BESG entered “WMA-240520, CMA-240608” to generate the report)
Name: West Mongolia Altai (12D/11N)
Code: WMA-240520 Departure: 20-May-2024 8:30
Capacity: 12 Available: 8 Status: Open
BK-ID Passport Name Age Contact
-------------------------------------------------------------
1001 E9511525Z Jessica Ong 29 98772534
1014 E5432011K Gu Meng Meng 17 92927865
1014 K5345450B Gu Feng 59 62845234
1014 K5772388J Sharon Lee 51 91776544
-------------------------------------------------------------
Name: Central Mongolia (10D/9N)
Code: CMA-240608 Departure: 08-Jun-2024 23:15
Capacity: 15 Available: 12 Status: Open
BK-ID Passport Name Age Contact
-------------------------------------------------------------
1003 E2714897X Henry Tan 33 97777777
1011 E1234567G Alice Oh 23 98989898
1011 E2323232Y Joyce Seetoh 15 62349000
-------------------------------------------------------------
To show your ability in coding, your supervisor gave you the flexibility to design the structure and interface. Now, you shall apply what you have learnt in the school into practice.
More (BONUS) features for consideration:
Enhance main menu to include feature for maintaining discount schemes and cancellation penalties.
^^^^ BESG ^^^^
1. Tour Admin
2. Tour Booking
3. Discount Schemes Setup
4. Cancellation Penalties Setup
0. Exit
Enter option:
Purpose of option 3 & 4 is to remove hardcoding of discount schemes and cancellation penalties in programs.
You should explore problem solving techniques to design a solution to allow dynamic, configurable setup. Aim is not to re-code and restart application for any changes to discount/penalty.
Hints: For the new features, explore maintaining and loading the current discount schemes and cancellation penalties from text files into a suitable collection*, just like for “Tours.txt”.
For both options, your program should display the current discount schemes or cancellation penalties (see Figure 3 & 4 of Appendix B) and allows BESG admin to perform. the following: (through sub-menus)
---- Discount Schemes ---- ---- Cancellation Penalties ----
a. Add new line a. Add new line
b. Update line b. Update line
c. Remove line c. Remove line
m. Back to main menu m. Back to main menu
Enter option: Enter option:
a. When adding a new line, prompt for the required data elements and performed suitable validation on the data values.
If possible, check if the new line will cause any irregular behaviours. For example: adding group size 6 with discount 30%, where discount of 30% is higher than group size 8
b. The update line option allows BESG to update an existing line.
If possible, your application should “warn” the user if the updated values result in irregular behaviours
c. When removing a line, ensure the selected line is not the last line, otherwise display an appropriate error message.
Instructions for CA3 Report, Python Codes and User Guides
Cover Page
The cover page should include the institution name (and institution logo) the programme and the module name, the semester and year and date of submission. All these must be centralised in the page.
Write FULL Name and Student number as in the register on the cover. Students should a keep a copy of assignment submitted.
Python Codes
Suggested IDE and version: Wing Personal 7, Python 3.8.2 and above
Please zip all your Python codes into single file and upload it together with the report. If you used any additional Python library apart from the standard package, you need to include them in the submission.
Referencing
No referencing is needed for program designs and codes.
Font and Spacing
Font: Times New Roman
Font size: 12 and 1.5 for line spacing.
Penalty Marks for Late Submission of Assignment
By one day: 20% to be deducted from total marks.
More than one day: submission will NOT be graded.
Plagiarism and Collusion
Students are not allowed to reuse old assignments or submit projects from previous semesters or copy from sources, particularly from the Internet web.
The submitted report must show evidence that this is students’ own work. No marks will be awarded if there are no workings or reasonable explanations. Please be reminded that plagiarism and collusion is a serious offence, and all cases will be referred to the administration. Grades will be withheld if the submission is suspected of plagiarism or collusion till investigations are completed.
Important Dates of CA3 Report
CA3 Group Assignment Deadline: 13 May 2024 11.59 am.
Submit ONE project via Canvas per group, submission must be completed in order for reports to be graded.
Lecturer Contact
You should contact your lecturer via your SIM email whenever you have any issue about your project.
Appendix A
Below is the list of tours to load at the start of your application.
Tour Code |
Tour Name |
Departure date |
Days Nights |
Cost per pax |
Capacity Status |
||
NMT- 240528 |
North Mongolia Taiga |
28-May-2024 8:30 |
11 |
10 |
3,699 |
12 |
Open |
SMG- 240601 |
South Mongolia Gobi |
01-Jun-2024 11:20 |
9 |
8 |
3,199 |
15 |
Open |
WMA- 240520 |
West Mongolia Altai |
20-May-2024 8:30 |
12 |
11 |
3,899 |
12 |
Open |
CMA- 240608 |
Central Mongolia |
08-Jun-2024 23:15 |
10 |
9 |
3,399 |
15 |
Open |
LAD- 240408 |
Ladakh India |
08-Apr-2024 7:35 |
10 |
9 |
3,599 |
10 |
Closed |
KAZ- 240903 |
Kazakhstan |
03-Sep-2024 15:35 |
10 |
9 |
3,899 |
12 |
Open |
KYR- 240708 |
Kyrgyzstan |
08-Jul-2024 9:45 |
10 |
9 |
3,599 |
12 |
Open |
TAJ- 240725 |
Tajikistan |
25-Jul-2024 18:10 |
11 |
10 |
3,899 |
12 |
Open |
Figure 2
Tour Code naming convention - first 3 chars of the Tour Code as suggested above in Figure 2, follow by “-” and “YYMMDD” which should match the departure date when setting up the tour.
Appendix B
Current discount schemes for group booking. This applies to all tours.
Group Size Discount |
|
2 (or more) |
10% per pax |
4 (or more) |
15% per pax |
8 (or more) |
20% per pax |
Figure 3
Cancellation penalties for BESG tours.
Days before departure Penalty |
|
Within 45 days |
30% of tour cost |
Within 21 days |
60% of tour cost |
Within 7 days |
90% of tour cost |
Figure 4
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。