Online training company

FIND A SOLUTION AT Academic Writers Bay

Assessment 4: Applied Project
Due date:
Week 12
Group/individual:
Group
Word count/Time provided:
4500
Weighting:
25%
Unit Learning Outcomes:
ULO1, ULO2, ULO3, ULO4, ULO5
Assessment 4 Details:
Online training company offers online courses to their customers. The customer can select any available course to enrol in it. If the customer enrols in more than two courses, this company offers 10% discount to second course onward. The company allows its customers to pay for their courses cost using credit or debit card. Write a program to store the available courses in a Dictionary collection, including the course name as a key and the course ID, course cost, and total length as a value. 
The system allows a user to list the available courses, search for a course, enrol in a course, List his/her courses. The main program should first display a menu as follows. A user needs to select an option from the main menu. 
======================================================= Welcome to Online Courses Management System
=======================================================
<1> List the available courses 
<2> Search for a course 
<3> Enrol in a course
<4> List my courses 
<5> Quit  
Please select an option from the above: 1
If a user chooses the option <1> the program will list all available courses showing course ID and name.  Then the user selects the course ID that he/she want to enrol or 0 to exit. The program will display the course detail includes name, cost and length then the program will ask the user to confirm his/her enrolment. If the user selects Y then the program will check if the customer eligible for the 10% as discuss above. If he/she eligible then the system will apply the discount and shows the new cost. After that the system asks for the user’s credit or debit card details. However, if the user selects N then the system will display the main menu again, otherwise it will ask the same question again.
The customer’s details are then added to the end of the customer.txt file, including customer name, course name, course cost, and course length. Note that the newly added record should be consistent with that of existing records.
A typical example of the program display (once a user chooses the option <1>) can be as follows. Your program MUST follow the same display style.
The available courses are:
Python
Java
C#
Data science 
Please select the course code you want to enrol or 0 to exit: 2
Course detail:
Name: Java
Cost: $180
Total length: 20 hours
Do you want to enrol in this course (Y/N)? Y
Please enter your credit or debit card details:
Name on Card: Harry John
Card Number:1234567898
MM:09
YYYY: 2022 Thank You!
You have been added to the Java course
Do you want to enrol in another course (Y/N)? N
After the operation, the customer.txt file will have the following content after Harry John’s details entered.
Harry John,Java,180,20
======================================================= Welcome to Online Courses Management System
=======================================================
<1> List the available courses 
<2> Search for a course 
<3> Enrol in a course
<4> List my courses 
<5> Quit  
Please select an option from the above: 2
If a user chooses the option <2> from the main menu then the system asks the user to enter the course name that want to see details. To facilitate the search option, you need to read from the courses dictionary and list all matched courses as below. If the course is not in the courses list, then the system must print a message to the user saying this curse is not available. 
After displaying the courses’ list, the system prompts the user with the following message, ‘Do you want to search for another course (Y/N)?’ If a user enters ‘Y’, the system asks the user to enter the course name, else if the user enters ‘N’, the program displays the main menu. Otherwise, the program prompts the same message again. 
Please enter the course name you want to search or 0 to exit: Java Thank You!
One course has been found:
Name: Java
Cost: $180
Total length: 20 hours
Do you want to search for another course (Y/N)? N
======================================================= Welcome to Online Courses Management System
=======================================================
<1> List the available courses 
<2> Search for a course 
<3> Enrol in a course
<4> List my courses 
<5> Quit  
Please select an option from the above: 3
If a user chooses the option <3> the program, then will list all available courses showing course ID and name.  Then the user selects the course ID that he/she want to enrol or 0 to exit. The program will display the course detail includes name, cost and length then the program will ask the user to confirm his/her enrolment. If the user selects Y then the program will check if the customer eligible for the 10% as discuss above. If he/she eligible then the system will apply the discount and shows the new cost. After that the system asks for user credit or debit card details. However, if the user selects N then the system will display the main menu again, otherwise it will ask the same question again.
The customer’s details are then added to the end of the customer.txt file, including customer name, course name, course cost, and course length. Note that the newly added record should be consistent with that of existing records.
A typical example of the program display (once a user chooses the option <3>) can be as follows. Your program MUST follow the same display style.
The available courses are:
Python
Java
C#
Data science 
Please select the course code you want to enrol or 0 to exit: 1
Course detail:
Name: Python
Cost: $150
Total length: 15 hours
Do you want to enrol in this course (Y/N)? Y
Congratulation you received a 10% discount. You need to pay only $135.
Please enter your credit or debit card details:
Name on Card: Harry John
Card Number: 1234567898
MM:09 YYYY:2022
Thank You!
You have been added to the Python course.
Do you want to enrol in another course (Y/N)? N
After the operation, the customer.txt file will have the following content after Harry John’s details entered.
Harry John,Java,180,20
Harry John,Python,135,15
======================================================= Welcome to Online Courses Management System
=======================================================
<1> List the available courses 
<2> Search for a course 
<3> Enrol in a course
<4> List my courses 
<5> Quit  
Please select an option from the above: 4 
If a user chooses the option <4> from the main menu, the system asks the user to enter his/her name. The system then collects the user details from the customer.txt file. It displays it as follows
(assuming the following customer was searched for). If the name cannot find the system must show an error message to the user. To facilitate the search option, you need to use an appropriate data structure such as List.
Enter your name: Harry John
Hello John, you are enrolled in the following courses:
Java, 20 hours
Python, 15 hours
Finally, the program quits if the user chooses the option <5>. 
======================================================= Welcome to Online Courses Management System
=======================================================
<1> List the available courses 
<2> Search for a course 
<3> Enrol in a course
<4> List my courses 
<5> Quit  
Please select an option from the above: 5
Goodbye 
Note: 
You must use multiple functions, instead of using a single function to do everything.
You must handle exceptions appropriately such as the customer.txt file is not existing, string values instead of numbers etc. 
You must use appropriate data structure such as Lists, Dictionaries etc.
Your program should be able to handle some exceptions such as invalid inputs, undefined inputs with error messages, e.g.: 
o The Credit or Debit Card number must be 10 digits. o The Credit or Debit Card MM must be 2 digits. o The Credit or Debit Card YYYY must be 4 digits.
You need to develop the system by completing the following tasks:
Task 1: 
Draw system flowchart/s that present the steps of the algorithm required to perform the major system tasks. 
There are tools (see links below) that can be useful in drawing a flowchart. 
https://www.draw.io/  http://dia–installer.de/  https://pencil.evolus.vn/
Task 2: 
Implement your system in Python. Comment on your code as necessary to explain it clearly.
Task 3: 
In this task, you need to test your program by selecting at least six sets of testing data. The first three sets of the data will demonstrate VALID inputs (‘normal’ operation of your program). The second three sets of test data will demonstrate the INVALID inputs (‘abnormal’ operation of your program).  INVALID inputs such as: the credit card number less than 10 digits, the credit card YYYY less or greater than 4 digits etc.
Use the below table to set your test results. It is important that provide screenshots of your program output.
 
Test Data Table
 
Test data
The reason for selecting this data
The expected output  
The screenshot of the actual output  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Your submission will consist of:
Word file contains the program flowchart (Task 1) and Testing data table (Task 3).
Source code for your Python implementation (Task 2).
Assessment 4 Marking Criteria and Rubric
The assessment will be marked out of 100 and weighted 25% of the total unit mark. The marking criteria and rubric are shown on the following page. 
Assessment 4 Marking Criteria and Rubric
Marking Criteria
Not Satisfactory  (0-49% of the criterion mark)
Satisfactory (50-64% of the criterion mark)
Good (65-74% of the criterion mark)
Very Good (75-84% of the criterion mark)
Excellent (85-100% of the criterion mark)
Flowcharts Content (10%)
The flowchart does not meet the pass criteria. Missing many tasks, use of decisions incorrect
Flowcharts follow the convention, contain at most three notation errors and produce algorithm at a high level.
Flowcharts have at most one notation error. The algorithm matches the program code.
Flowcharts precisely describe the algorithm design. Flowcharts do not have any unnecessary component.
Algorithm design is efficient in terms of time and memory.
Flowcharts layout (5%)  
The flowchart is cluttered looking or confusing. It is often difficult to locate important elements
The flowchart has a usable layout, but it is not easy to locate the most important elements.
The flowchart has a usable layout. It is easy to locate all of the important elements.
The flowchart has an attractive and usable layout. It is easy to locate all important elements
The flowchart has an exceptionally attractive and usable layout. It is easy to locate all important elements. Graphic elements are used effectively to organize material.
Identify correct input/ output (10%)
Unable to identify any input and output 
Able to identify only one input or output
Able to identify some input and output correctly
Able to identify all input and output correctly
Able to identify all input and output correctly and provide alternative
Appropriate choice of variable names or data structure (5%)
Unable to identify the required data type or data structure 
Able to identify the required data type or data structure but does apply correctly
Able to apply required data type or data structure but does not produce correct results
Able to apply required data type or data structure and produce partially correct results
Able to apply required data type or data structure and produce correct results
A correct choice of sequential, selection or repetition control structure (10%)
Unable to identify the required control structure
Able to identify required control but does apply correctly
Able to apply the required control structure but does not produce correct results
Able to apply the required control structure and produce partially correct results
Able to apply the required control structure and produce correct results
Free from syntax, logic, and runtime errors (10%)
Unable to run program
Able to run program but have a logic error
Able to run the program correctly without any logic error
Able to run the program correctly without any logic error and display inappropriate output
Able to run the program correctly without any logic error and display appropriate output
Validate input for errors and out-ofrange data (10%)
The program produces incorrect results
The program produces correct results but does not display correctly Does not check for errors and out-ofrange data
The program produces correct results but does not display correctly. Does little check for errors and outof-range data
The program works and meets all specifications. Does some check for errors and out-of-range data
The program works and meets all specifications. Does exceptional checking for errors and out-ofrange data
Program functionality (10%)
Python code is produced that does not execute properly. It may contain a lot of syntax errors 
Functionality is mostly implemented, but code may contain minor syntax or logical errors.
Python code produces correct results.  
The program meets all specifications.  
Python code contains only necessary functions, collections and statements and variables.  
Program output (10%)
The program produces completely incorrect results.
Program output has significant formatting errors.
Program output has minor formatting errors.
The program output format is correct as required.
The program handles all exceptions and errors correctly, including those which are not part of specifications.
Code style (10%)
Incomplete or largely dysfunctional code.
The student uses many global variables. Most variables have exact names. Student only uses a small number of inline comments.
Student avoids unnecessary global variables. All variables have meaningful names. Sufficient inline comments are present. Indentation is consistent throughout. Functions are used, but they are not generic (reusable).
Code design is modular, containing several reusable functions. Named constants are used instead of magic numbers. White space is appropriately used for code readability.
Code includes function header comments and module-level docstrings.
Testing data (10%)
Does not meet Pass criteria
Selected test data is clearly presented in the required table format.   At least two normal and two abnormal test cases are provided.   Test results are reproducible
Minimum required number of normal and abnormal test cases are collected.   Brief reasoning is provided for the test data selection.
Sound justification is provided for the selection of test data.   Diversity is evident among the chosen test data.
Test data is explored in every branch of the program.   To demonstrate comprehensive testing, the number of test cases exceeds the required minimum.
Additional Note: The standards outlined for each criterion are cumulative. For example, to achieve the standard for high distinction, your work also needs to meet the Pass, Credit and Distinction levels standards.

READ ALSO...   demonstrate the skills and knowledge
Order from Academic Writers Bay
Best Custom Essay Writing Services

QUALITY: 100% ORIGINAL PAPERNO PLAGIARISM – CUSTOM PAPER