关键词 > Python代写

Instruction for CA3 Group Assignment 2024

发布时间:2024-05-15

Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

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 is pressed at the entry of Passport number for the next traveller.

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