代做program、代写Python设计编程
- 首页 >> C/C++编程 Diploma in Information Technology
Problem Solving
Instruction for CA3 Group Assignment
October 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 - Go “MOBILE” Locker is coming to the campus.
The CEO of Go Locker has decided to explore the deployment of “MOBILE” lockers
to Nanyang Technological University (NTU).
With Internet making online shopping experience easy and enjoyable, the use of self service lockers has become popular and a possible business opportunity for Go
Locker to service students studying in big campus like NTU.
Currently in NTU, students can only one locker at a fixed location. However, with
student studying different modules each semester, not all lecture halls and classrooms
can be close to the locker location. Hence, a fixed location locker make it
inconvenience and troublesome to access, due to “tourism” and heavy human traffic
between lesson.
Combining the use of electric track transport system (not-in-scope), student can
access their “MOBILE” locker at any available Go Locker stations. For example,
students can request to “send” their lockers to a station nearest to their next lesson,
collect and store items before next lesson.
In the pilot phase, Go Locker will allow student to rent up to 2 lockers, at $2 per locker.
Student can release/return the locker anytime. Each request to move locker to a
specified station will incur 20 cents. When a locker is moved to the specified station,
student can proceed to access/open the locker.
As an intern in IMDA (Infocomm Media Development Authority), your supervisor has
assigned you to help Go Locker with this pilot project, with objectives to automate the
mobile locker rental and operations processes.
Project Requirement
After extensive discussions, Go Locker would like to have the following essential
features to be included:
System Admin functionalities that featured creation of station, locker,
updating of locker details, and reports for station, locker usage.
Station Operations/functionalities that include rent/return locker, request
locker moves, enquiring locker location and viewing of usage report.
Further features to be integrated in the application are configurable rental
fees, moving fees, and a background program to process the “moving” of
lockers (see BONUS features).
Based on you understanding, the pilot project will have 2 applications: one to allow
Go Locker administrators to perform administrative functionalities, and the other for
students to perform locker operations.
1. Go Locker – Admin
For the Go Locker administrators, the application should display the following
menu:
^^^^ Go Locker - Admin ^^^^
1. Setup station
2. Create locker
3. Update locker
4. View station report
5. Track locker usage
0. Exit
Enter option:
Before presenting the menus, your application needs to load/pre-setup the
stations, lockers, students from Appendix A and rentals (if any) into collections*.
* Your group can decide to implement using either Dictionary or List.
a. Setup station
This function allows the administrator to setup a new station.
To setup a new station, the following data elements should be collected:
Station Code: should be unique, in format of NTU-XXX-DD, where XXX
represents the building code (e.g., N21, S32), and DD represents digits
from 00 to 99.
Station Name: name description of the station (e.g., The Hive level 1, The
Arc level 2)
Rows: number of rows for this station
Columns: number of columns for this station
Status: Open or Closed
The maximum number of lockers for this station will be Rows X Columns.
Hence if station NTU-S32-01 has 4 rows and 20 columns, the capacity for
this station is 80 slots. Therefore, your application may need to include a
collection to represent the 80 slots. These slots will be empty, until student
request to move their locker into the station.
When a new station is created, the status should be defaulted to “Open”. The
new station will be added into the collection and updated into “Stations.txt”
file.
b. Create locker
Locker can be added into the system to meet the demand. To add a new
locker, these data elements should be collected:
ID: starting from 10001, increment by 1 for each new locker created
Location: “Central store”, “In transit”, or any valid station code. Defaulted
to “Central store” at creation.
Row: default to empty/zero unless the locker is in a station.
Column: default to empty/zero unless the locker is in a station.
Status: “Occupied”, “Available” (default), “Suspended”.
Rental ID: if “Occupied”, need to record the rental ID.
When a new locker is created, then locker should be added into the collection
and updated into “Lockers.txt” file.
c. Update locker
The “Update Locker” option allows the administrator to update the locker’s
details:
User should first provide the locker ID to search.
If there is no locker with this ID, display appropriate error message and
return to menu.
If the ID is valid, your program should display the locker details, and if
occupied, the student ID, student name and date started renting this
locker.
Only allow update to Location and Status.
However, status can only be updated to “Suspended” when current Status
is “Available”. When updating Status from “Occupied” to “Available”, the
rental record needs to be terminated.
Any updates should also be affected into “Lockers.txt”
d. View station utilization report
The option allows the administrator to view the current station utilization.
User should first provide the station code to search.
If there is no station with this code, display appropriate error message and
return to menu.
If the station code is valid, your program should display the station details,
and a table showing all the slots (rows x columns) – with locker IDs for
those slots that contain the students’ lockers.
e. Track locker usage
The option allows the administrator to track the operations of a specific locker.
User should first provide the locker ID to search.
If there is no locker with this ID, display appropriate error message and
return to menu.
If the ID is valid, your program should display the locker details, and if
occupied, the student ID, student name and date started renting this
locker.
Your application should ask for the Date-From and Date-To, before
generating the report containing all operations for this locker during the
specified dates.
Below is a demonstration of the generation of “Track locker usage” report:
Enter Locker ID: 10002
Locker ID: 10002
Location: Central Store
Status: Occupied
Student ID: 10256499
Student Name: See Sin Ho
Rental Start Date: 14-Sep-2024
Enter Date-From: 14-Aug-2024
Enter Date-To: 15-Oct-2024
Date Time Operation Student ID
-------------------------------------------------------------
15-Aug-2024 12:33 Locker return 10255884
15-Aug-2024 12:34 Move to Central Store -
14-Sep-2024 09:11 Locker rental 10256499
14-Sep-2024 10:23 Move to NTU-S31-06 10256499
14-Sep-2024 10:45 Move to Central Store -
14-Sep-2024 14:55 Move to NTU-N21-02 10256499
14-Sep-2024 15:10 Move to Central Store -
18-Sep-2024 09:01 Move to NTU-S32-06 10256499
18-Sep-2024 09:08 Move to Central Store -
-------------------------------------------------------------
2. Go Locker - Operations
For the students, the application should display the following Operations menu:
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option:
Before presenting the menus, your application needs to load/pre-setup the
stations, lockers, students from Appendix A and rentals (if any) into collections*.
* Your group can decide to implement using either Dictionary or List.
a. Rent a locker
To rent a locker, students only need to provide their student ID.
If the ID is valid, your program should display rented locker details (if any),
and if student is renting 2 lockers now, display appropriate error message
and return to menu.
If student can still rent a locker, your program will locate an available
locker and create the rental transaction, charging $2 to the student
account.
Rental transaction should include the locker ID, student ID, start date and
end date (default to None, until the rental is terminated).
Your program should generate a unique Rental ID (running number) and
display the rental details.
Below are demonstrations of a locker rental:
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 1
Enter Student ID: 10255884
---------------------------------------------------------
Locker allocated: 10002 Location: Central store
Rental ID: 2400102
Start date: 14-Sep-2024
$2 is charge to your account.
---------------------------------------------------------
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 1
Enter Student ID: 10256499
Sorry, you are already renting 2 lockers.
---------------------------------------------------------
Locker allocated: 10003 Location: NTU-N31-04 (2-05)
Rental ID: 2400101
Start date: 10-Sep-2024
---------------------------------------------------------
Locker allocated: 10001 Location: Central store
Rental ID: 2400099
Start date: 15-Aug-2024
---------------------------------------------------------
b. Request move
To start moving a locker, the student ID and locker ID must be provided:
Your program must validate both student ID and locker ID.
If the IDs are valid, your program should display rented locker details.
If not, display appropriate error message and return to menu.
Prompt for the station code to move to.
Create the move transaction record if,
The station code is valid and is not same as current location.
The destination has slots for this locker, hence displaying “Station
Code (Row-Column)” for this move. For example, “NTU-N31-04 (1-09)”
Below are demonstrations of a locker move:
++++ Go Locker – Operation ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 2
Enter Student ID: 10255884
Enter Locker ID: 10003
Sorry, 10003 is not your locker.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 2
Enter Student ID: 10255884
Enter Locker ID: 10002
---------------------------------------------------------
Locker allocated: 10002 Location: Central store
Rental ID: 2400102
Start date: 14-Sep-2024
---------------------------------------------------------
Enter Station code to move to: NTU-N31-04
Locker is moving to NTU-N31-04 (1-09)
---------------------------------------------------------
Locker allocated: 10002 Location: In transit
Rental ID: 2400102
Start date: 14-Sep-2024
---------------------------------------------------------
c. Return locker
Student can return a locker by providing the student ID and locker ID:
Your program must validate both student ID and locker ID.
If the IDs are valid, your program should display rented locker details.
If not, display appropriate error message and return to menu.
Prompt for confirmation to return the locker.
Closed the rental record by updating the end date to current date, update
the locker status to “Available” and rental ID for this locker will be None.
If the current location of the locker is at any station, system will initiate a
locker move transaction to “Central store”.
Your program should present a usage statement for this rental.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 3
Enter Student ID: 10255884
Enter Locker ID: 10002
---------------------------------------------------------
Locker allocated: 10002 Location: NTU-N31-04 (1-09)
Rental ID: 2400102
Start date: 14-Sep-2024
End date: 10-Oct-2024
Moving locker back to Central store.
---------------------------------------------------------
Rental charge: $2.00
Move charges: $2.00 (10 moves)
Penalty charges: $2.00 (2 counts)
Total charges for this rental: $6.00
---------------------------------------------------------
d. Enquire locker location
To find out where the student’s lockers are, student need to provide their
student ID.
Your program should display appropriate error message if there is no
student matching the student ID, or currently no rental record for this
student.
If the “active” rental record(s) is located, display the locker(s) details.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 5
Enter Student ID: 10256379
No rental records
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 4
Enter Student ID: 10256499
---------------------------------------------------------
Locker allocated: 10003 Location: NTU-N31-04 (1-09)
Rental ID: 2400101
Start date: 10-Sep-2024
---------------------------------------------------------
Locker allocated: 10001 Location: Central store
Rental ID: 2400099
Start date: 15-Aug-2024
---------------------------------------------------------
e. View usage report
Student can view locker usage report by first providing the student ID:
Your program should display appropriate error message if there is no
student matching the student ID; or has no rental record for this student.
If the rental record(s) is located, display the locker(s) details.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 4
Enter Student ID: 10256379
No rental records
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 4
Enter Student ID: 10256499
---------------------------------------------------------
Locker allocated: 10003 Location: NTU-N31-04 (1-09)
Rental ID: 2400101
Start date: 10-Sep-2024
---------------------------------------------------------
Locker allocated: 10001 Location: Central store
Rental ID: 2400099
Start date: 15-Aug-2024
---------------------------------------------------------
Locker allocated: 10006
Rental ID: 2400084
Start date: 10-Jul-2024
End date: 20-Sep-2024
---------------------------------------------------------
Enter Rental ID to view usage: 2400099
Date Time Operation Student ID
-------------------------------------------------------------
14-Sep-2024 09:11 Locker rental 10256499
14-Sep-2024 10:23 Move to NTU-S31-09 10256499
14-Sep-2024 10:45 Move to Central Store -
14-Sep-2024 14:55 Move to NTU-N21-11 10256499
14-Sep-2024 15:10 Move to Central Store -
18-Sep-2024 09:01 Move to NTU-S32-01 10256499
18-Sep-2024 09:08 Move to Central Store -
-------------------------------------------------------------
Rental charge: $2.00
Move charges: $0.60 (3 moves)
Total charges for this rental: $2.60
-------------------------------------------------------------
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:
You should explore problem solving techniques to design a solution to allow:
a. Dynamic, configurable setup of rental fees and moving fees. Aim is not to re code and restart application for any changes to rental fees and moving fees.
b. Have a background program processing the locker move requests.
When a student request for a locker moves, this transaction will be
recorded and processed by your background program.
The locker location will be updated accordingly after 3 min, simulating the
movement of the locker vis the electric track delivery system.
Hence, it will be “In transit”, follow by e.g., “NTU-N32-11” after 3 min.
Locker move requests can also be initiated by the system, 30 min after
the locker has arrived at a station. This is to manage space/slot, ensuring
there are slots at each station to serve students.
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: 11 November 2024 11.59 am.
Submit ONE project via Canvas per group, submission must be completed 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
List of stations in NTU
Station Code Station Name Rows Columns Status
NTU-ADB-01 Admin Building level 1 4 10 Open
NTU-N21-02 North Main Spine level 1 3 15 Open
NTU-N22-03 North Main Spine level 2 4 12 Open
NTU-N31-04 The Arc level 1 3 10 Open
NTU-N32-05 The Arc level 2 4 10 Closed
NTU-S31-06 The Hive level 1 3 15 Open
NTU-S32-06 The Hive level 2 4 15 Open
NTU-SSC-07 SSC level 2 4 12 Open
List of lockers in NTU
Locker ID Location Rows Columns Status Rental ID
10001 Central store Available
10002 Central store Available
10003 Central store Available
10004 Central store Available
10005 Central store Available
10006 Central store Suspended
10007 Central store Available
10008 Central store Available
10009 Central store Suspended
10010 Central store Available
10011 Central store Available
List of students participating in this pilot with Go Locker
Student ID Student Name Account
10252746 James Loong 0.00
10251327 Felix Lim Jun Yu 0.00
10250055 Johan Agarwal 0.00
10256499 See Sin Ho 0.00
10253012 Benjamin Wong 0.00
10254027 Kit Cong Chen 0.00
10255884 Ian Tan 0.00
10251668 Javier Huang 0.00
10255540 Wei De Joel Lam 0.00
10252730 Mudit Sarmiento 0.00
10253442 Yi Hong Goh 0.00
Marking Rubric
Criteria Excellent Very Good Good Acceptable Weak
Project Report (6% - 15 marks)
Description of
the Program
Student has
provided
detailed and
step-by-step
description of
the program
Student has
provided step by-step
description of
the program
Student has
provided
sufficient
description of
the program
Student has
provided limited
description of
the program
Student has
provided short
description of
the program
Appropriate
Flowchart
Student has
used multiple
appropriate
flowcharts to
describe the
program
completely
Student has
used multiple
appropriate
flowcharts to
describe the
program
Student has
used some
flowcharts to
describe the
program
Student has
attempted to
use flowcharts
to describe the
program
Student has
attempted to
use flowchart to
describe the
program but
were not
sufficient
Creativity of
Report
Student has
used a variety
of creative
software and
tools to present
the assignment
report
Student has
used many
creative
software and
tools to present
the assignment
report
Student has
used some
amount of
creative
software and
tools to present
the assignment
report
Student has
used a couple
of creative
software and
tools to present
the assignment
report
Student has
used at least
one creative
software or
tools to present
the assignment
report
Python Codes (20% - 50 marks)
Understanding
of the Project
Student has
demonstrated
high level of
understanding
of the project
requirements
that are both
stated in the
task and those
not mentioned
Student has
demonstrated
some
understanding
of the project
requirements
that are both
stated in the
task and those
not mentioned
Student has
demonstrated
high level of
understanding
of the project
requirements
that are stated
in the task
Student has
demonstrated
basic
understanding
of the project
requirements
that are stated
in the task
Student has
demonstrated
sufficient
understanding
of the project
requirements
that are stated
in the task
Application of
programming
modules
Student can
apply majority
of the topics
learnt in this
project
Student can
apply many
topics learnt in
this project
Student can
apply some
topics learnt in
this project
Student can
apply at least
two topics
learnt in this
project
Student can
apply at least
one topic learnt
in this project
Intellectual
Features
Student has
demonstrated
efficient use of
intelligent
algorithm in
majority of the
codes
Student has
demonstrated
the use of
intelligent
algorithm in
most of the
codes
Student has
demonstrated
some use of
intelligent
algorithm in the
codes
Student has
demonstrated
basic use of
intelligent
algorithm in the
codes
Student has
demonstrated
sufficient use of
intelligent
algorithm in the
codes
Additional
Features
Student has
added
substantial
number of
additional
features to the
program
Student has
added a good
number of
additional
features to the
program
Student has
added some
number of
additional
features to the
program
Student has
added a couple
of additional
features to the
program
Student has
added at least
one additional
feature to the
program
User Interface Student has
created
excellent user
Student has
created good
user interface
for the program
Student has
created
sufficient and
simple user
Student has
created basic
user interface
for the program
Student has
created poor
user interface
for the program
interface for the
program
interface for the
program
User Guides (4% - 10 marks)
Screenshot
Samples
Student has
provided clear,
detailed, and
step-by-step
screenshots
guide on the
program
Student has
provided step by-step
screenshots
guide on the
program
Student has
provided
sufficient
screenshots
guide on the
program
Student has
provided limited
screenshots
guide on the
program
Student has
provided very
little
screenshots
guide on the
program
Data Student has
used
appropriate and
detailed test
data on the
program to
illustrate the
input and
output
Student has
used
appropriate test
data on the
program to
illustrate the
input and
output
Student has
used sufficient
test data on the
program to
illustrate the
input and
output
Student has
used some test
data on the
program to
illustrate the
input and
output
Student has
used very
limited test data
on the program
to illustrate the
input and
output
Individual Oral Presentation (10% - 25 marks)
Clarity of
Presentation
Student has
provided clear,
detailed, and
concise
presentation
Student has
provided clear
and concise
presentation
Student has
provided clear
presentation
Student has
provided clear
presentation to
some extent
Student has
attempted to
provide a clear
presentation
Delivery Style Excellent
control of
volume, pace
and diction; no
distracting
gestures, visual
aids used
effectively
Good volume
and energy,
good pace and
diction; few or
no distracting
gestures; visual
aids used
adequately
Average
volume and
energy;
generally
good pace and
diction; some
distracting
gestures or
posture; visual
aids could be
improved
More
volume/energy
needed at
times,
pace too slow
or fast; some
distracting
gestures or
posture; visual
aids could be
improved
Low volume or
energy; pace
too slow
or fast; poor
diction;
distracting
gestures or
posture; visual
aids poorly
used
Content All information
was relevant
and appropriate
to requirements
of the
assignment
Most
information was
relevant and
appropriate to
requirements of
the assignment
Most
information
relevant; some
topics needed
expansion or
shortened
Information was
valid but not
explicitly related
to the
assignment
Information was
not relevant or
directly related
to the
assignment
Q & A Session Answers
questions with
authority and
accuracy
Provides good,
clear answers
to questions
Provides
adequate
answers to
questions
Some
difficulty
answering
questions
Uneasiness or
inability
answering
questions
Overall
Impression
Grade
Student was
very well
prepared for the
entire
presentation
Student was
well prepared
for the most
parts of the
presentation
Student was
prepared for
most parts of
the
presentation
Student
appeared
prepared for
some parts of
the
presentation
Student was
clearly
unprepared for
the
presentation
Problem Solving
Instruction for CA3 Group Assignment
October 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 - Go “MOBILE” Locker is coming to the campus.
The CEO of Go Locker has decided to explore the deployment of “MOBILE” lockers
to Nanyang Technological University (NTU).
With Internet making online shopping experience easy and enjoyable, the use of self service lockers has become popular and a possible business opportunity for Go
Locker to service students studying in big campus like NTU.
Currently in NTU, students can only one locker at a fixed location. However, with
student studying different modules each semester, not all lecture halls and classrooms
can be close to the locker location. Hence, a fixed location locker make it
inconvenience and troublesome to access, due to “tourism” and heavy human traffic
between lesson.
Combining the use of electric track transport system (not-in-scope), student can
access their “MOBILE” locker at any available Go Locker stations. For example,
students can request to “send” their lockers to a station nearest to their next lesson,
collect and store items before next lesson.
In the pilot phase, Go Locker will allow student to rent up to 2 lockers, at $2 per locker.
Student can release/return the locker anytime. Each request to move locker to a
specified station will incur 20 cents. When a locker is moved to the specified station,
student can proceed to access/open the locker.
As an intern in IMDA (Infocomm Media Development Authority), your supervisor has
assigned you to help Go Locker with this pilot project, with objectives to automate the
mobile locker rental and operations processes.
Project Requirement
After extensive discussions, Go Locker would like to have the following essential
features to be included:
System Admin functionalities that featured creation of station, locker,
updating of locker details, and reports for station, locker usage.
Station Operations/functionalities that include rent/return locker, request
locker moves, enquiring locker location and viewing of usage report.
Further features to be integrated in the application are configurable rental
fees, moving fees, and a background program to process the “moving” of
lockers (see BONUS features).
Based on you understanding, the pilot project will have 2 applications: one to allow
Go Locker administrators to perform administrative functionalities, and the other for
students to perform locker operations.
1. Go Locker – Admin
For the Go Locker administrators, the application should display the following
menu:
^^^^ Go Locker - Admin ^^^^
1. Setup station
2. Create locker
3. Update locker
4. View station report
5. Track locker usage
0. Exit
Enter option:
Before presenting the menus, your application needs to load/pre-setup the
stations, lockers, students from Appendix A and rentals (if any) into collections*.
* Your group can decide to implement using either Dictionary or List.
a. Setup station
This function allows the administrator to setup a new station.
To setup a new station, the following data elements should be collected:
Station Code: should be unique, in format of NTU-XXX-DD, where XXX
represents the building code (e.g., N21, S32), and DD represents digits
from 00 to 99.
Station Name: name description of the station (e.g., The Hive level 1, The
Arc level 2)
Rows: number of rows for this station
Columns: number of columns for this station
Status: Open or Closed
The maximum number of lockers for this station will be Rows X Columns.
Hence if station NTU-S32-01 has 4 rows and 20 columns, the capacity for
this station is 80 slots. Therefore, your application may need to include a
collection to represent the 80 slots. These slots will be empty, until student
request to move their locker into the station.
When a new station is created, the status should be defaulted to “Open”. The
new station will be added into the collection and updated into “Stations.txt”
file.
b. Create locker
Locker can be added into the system to meet the demand. To add a new
locker, these data elements should be collected:
ID: starting from 10001, increment by 1 for each new locker created
Location: “Central store”, “In transit”, or any valid station code. Defaulted
to “Central store” at creation.
Row: default to empty/zero unless the locker is in a station.
Column: default to empty/zero unless the locker is in a station.
Status: “Occupied”, “Available” (default), “Suspended”.
Rental ID: if “Occupied”, need to record the rental ID.
When a new locker is created, then locker should be added into the collection
and updated into “Lockers.txt” file.
c. Update locker
The “Update Locker” option allows the administrator to update the locker’s
details:
User should first provide the locker ID to search.
If there is no locker with this ID, display appropriate error message and
return to menu.
If the ID is valid, your program should display the locker details, and if
occupied, the student ID, student name and date started renting this
locker.
Only allow update to Location and Status.
However, status can only be updated to “Suspended” when current Status
is “Available”. When updating Status from “Occupied” to “Available”, the
rental record needs to be terminated.
Any updates should also be affected into “Lockers.txt”
d. View station utilization report
The option allows the administrator to view the current station utilization.
User should first provide the station code to search.
If there is no station with this code, display appropriate error message and
return to menu.
If the station code is valid, your program should display the station details,
and a table showing all the slots (rows x columns) – with locker IDs for
those slots that contain the students’ lockers.
e. Track locker usage
The option allows the administrator to track the operations of a specific locker.
User should first provide the locker ID to search.
If there is no locker with this ID, display appropriate error message and
return to menu.
If the ID is valid, your program should display the locker details, and if
occupied, the student ID, student name and date started renting this
locker.
Your application should ask for the Date-From and Date-To, before
generating the report containing all operations for this locker during the
specified dates.
Below is a demonstration of the generation of “Track locker usage” report:
Enter Locker ID: 10002
Locker ID: 10002
Location: Central Store
Status: Occupied
Student ID: 10256499
Student Name: See Sin Ho
Rental Start Date: 14-Sep-2024
Enter Date-From: 14-Aug-2024
Enter Date-To: 15-Oct-2024
Date Time Operation Student ID
-------------------------------------------------------------
15-Aug-2024 12:33 Locker return 10255884
15-Aug-2024 12:34 Move to Central Store -
14-Sep-2024 09:11 Locker rental 10256499
14-Sep-2024 10:23 Move to NTU-S31-06 10256499
14-Sep-2024 10:45 Move to Central Store -
14-Sep-2024 14:55 Move to NTU-N21-02 10256499
14-Sep-2024 15:10 Move to Central Store -
18-Sep-2024 09:01 Move to NTU-S32-06 10256499
18-Sep-2024 09:08 Move to Central Store -
-------------------------------------------------------------
2. Go Locker - Operations
For the students, the application should display the following Operations menu:
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option:
Before presenting the menus, your application needs to load/pre-setup the
stations, lockers, students from Appendix A and rentals (if any) into collections*.
* Your group can decide to implement using either Dictionary or List.
a. Rent a locker
To rent a locker, students only need to provide their student ID.
If the ID is valid, your program should display rented locker details (if any),
and if student is renting 2 lockers now, display appropriate error message
and return to menu.
If student can still rent a locker, your program will locate an available
locker and create the rental transaction, charging $2 to the student
account.
Rental transaction should include the locker ID, student ID, start date and
end date (default to None, until the rental is terminated).
Your program should generate a unique Rental ID (running number) and
display the rental details.
Below are demonstrations of a locker rental:
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 1
Enter Student ID: 10255884
---------------------------------------------------------
Locker allocated: 10002 Location: Central store
Rental ID: 2400102
Start date: 14-Sep-2024
$2 is charge to your account.
---------------------------------------------------------
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 1
Enter Student ID: 10256499
Sorry, you are already renting 2 lockers.
---------------------------------------------------------
Locker allocated: 10003 Location: NTU-N31-04 (2-05)
Rental ID: 2400101
Start date: 10-Sep-2024
---------------------------------------------------------
Locker allocated: 10001 Location: Central store
Rental ID: 2400099
Start date: 15-Aug-2024
---------------------------------------------------------
b. Request move
To start moving a locker, the student ID and locker ID must be provided:
Your program must validate both student ID and locker ID.
If the IDs are valid, your program should display rented locker details.
If not, display appropriate error message and return to menu.
Prompt for the station code to move to.
Create the move transaction record if,
The station code is valid and is not same as current location.
The destination has slots for this locker, hence displaying “Station
Code (Row-Column)” for this move. For example, “NTU-N31-04 (1-09)”
Below are demonstrations of a locker move:
++++ Go Locker – Operation ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 2
Enter Student ID: 10255884
Enter Locker ID: 10003
Sorry, 10003 is not your locker.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 2
Enter Student ID: 10255884
Enter Locker ID: 10002
---------------------------------------------------------
Locker allocated: 10002 Location: Central store
Rental ID: 2400102
Start date: 14-Sep-2024
---------------------------------------------------------
Enter Station code to move to: NTU-N31-04
Locker is moving to NTU-N31-04 (1-09)
---------------------------------------------------------
Locker allocated: 10002 Location: In transit
Rental ID: 2400102
Start date: 14-Sep-2024
---------------------------------------------------------
c. Return locker
Student can return a locker by providing the student ID and locker ID:
Your program must validate both student ID and locker ID.
If the IDs are valid, your program should display rented locker details.
If not, display appropriate error message and return to menu.
Prompt for confirmation to return the locker.
Closed the rental record by updating the end date to current date, update
the locker status to “Available” and rental ID for this locker will be None.
If the current location of the locker is at any station, system will initiate a
locker move transaction to “Central store”.
Your program should present a usage statement for this rental.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 3
Enter Student ID: 10255884
Enter Locker ID: 10002
---------------------------------------------------------
Locker allocated: 10002 Location: NTU-N31-04 (1-09)
Rental ID: 2400102
Start date: 14-Sep-2024
End date: 10-Oct-2024
Moving locker back to Central store.
---------------------------------------------------------
Rental charge: $2.00
Move charges: $2.00 (10 moves)
Penalty charges: $2.00 (2 counts)
Total charges for this rental: $6.00
---------------------------------------------------------
d. Enquire locker location
To find out where the student’s lockers are, student need to provide their
student ID.
Your program should display appropriate error message if there is no
student matching the student ID, or currently no rental record for this
student.
If the “active” rental record(s) is located, display the locker(s) details.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 5
Enter Student ID: 10256379
No rental records
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 4
Enter Student ID: 10256499
---------------------------------------------------------
Locker allocated: 10003 Location: NTU-N31-04 (1-09)
Rental ID: 2400101
Start date: 10-Sep-2024
---------------------------------------------------------
Locker allocated: 10001 Location: Central store
Rental ID: 2400099
Start date: 15-Aug-2024
---------------------------------------------------------
e. View usage report
Student can view locker usage report by first providing the student ID:
Your program should display appropriate error message if there is no
student matching the student ID; or has no rental record for this student.
If the rental record(s) is located, display the locker(s) details.
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 4
Enter Student ID: 10256379
No rental records
++++ Go Locker – Operations ++++
1. Rent a locker
2. Request move
3. Return locker
4. Enquire locker location
5. View usage report
0. Exit
Enter option: 4
Enter Student ID: 10256499
---------------------------------------------------------
Locker allocated: 10003 Location: NTU-N31-04 (1-09)
Rental ID: 2400101
Start date: 10-Sep-2024
---------------------------------------------------------
Locker allocated: 10001 Location: Central store
Rental ID: 2400099
Start date: 15-Aug-2024
---------------------------------------------------------
Locker allocated: 10006
Rental ID: 2400084
Start date: 10-Jul-2024
End date: 20-Sep-2024
---------------------------------------------------------
Enter Rental ID to view usage: 2400099
Date Time Operation Student ID
-------------------------------------------------------------
14-Sep-2024 09:11 Locker rental 10256499
14-Sep-2024 10:23 Move to NTU-S31-09 10256499
14-Sep-2024 10:45 Move to Central Store -
14-Sep-2024 14:55 Move to NTU-N21-11 10256499
14-Sep-2024 15:10 Move to Central Store -
18-Sep-2024 09:01 Move to NTU-S32-01 10256499
18-Sep-2024 09:08 Move to Central Store -
-------------------------------------------------------------
Rental charge: $2.00
Move charges: $0.60 (3 moves)
Total charges for this rental: $2.60
-------------------------------------------------------------
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:
You should explore problem solving techniques to design a solution to allow:
a. Dynamic, configurable setup of rental fees and moving fees. Aim is not to re code and restart application for any changes to rental fees and moving fees.
b. Have a background program processing the locker move requests.
When a student request for a locker moves, this transaction will be
recorded and processed by your background program.
The locker location will be updated accordingly after 3 min, simulating the
movement of the locker vis the electric track delivery system.
Hence, it will be “In transit”, follow by e.g., “NTU-N32-11” after 3 min.
Locker move requests can also be initiated by the system, 30 min after
the locker has arrived at a station. This is to manage space/slot, ensuring
there are slots at each station to serve students.
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: 11 November 2024 11.59 am.
Submit ONE project via Canvas per group, submission must be completed 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
List of stations in NTU
Station Code Station Name Rows Columns Status
NTU-ADB-01 Admin Building level 1 4 10 Open
NTU-N21-02 North Main Spine level 1 3 15 Open
NTU-N22-03 North Main Spine level 2 4 12 Open
NTU-N31-04 The Arc level 1 3 10 Open
NTU-N32-05 The Arc level 2 4 10 Closed
NTU-S31-06 The Hive level 1 3 15 Open
NTU-S32-06 The Hive level 2 4 15 Open
NTU-SSC-07 SSC level 2 4 12 Open
List of lockers in NTU
Locker ID Location Rows Columns Status Rental ID
10001 Central store Available
10002 Central store Available
10003 Central store Available
10004 Central store Available
10005 Central store Available
10006 Central store Suspended
10007 Central store Available
10008 Central store Available
10009 Central store Suspended
10010 Central store Available
10011 Central store Available
List of students participating in this pilot with Go Locker
Student ID Student Name Account
10252746 James Loong 0.00
10251327 Felix Lim Jun Yu 0.00
10250055 Johan Agarwal 0.00
10256499 See Sin Ho 0.00
10253012 Benjamin Wong 0.00
10254027 Kit Cong Chen 0.00
10255884 Ian Tan 0.00
10251668 Javier Huang 0.00
10255540 Wei De Joel Lam 0.00
10252730 Mudit Sarmiento 0.00
10253442 Yi Hong Goh 0.00
Marking Rubric
Criteria Excellent Very Good Good Acceptable Weak
Project Report (6% - 15 marks)
Description of
the Program
Student has
provided
detailed and
step-by-step
description of
the program
Student has
provided step by-step
description of
the program
Student has
provided
sufficient
description of
the program
Student has
provided limited
description of
the program
Student has
provided short
description of
the program
Appropriate
Flowchart
Student has
used multiple
appropriate
flowcharts to
describe the
program
completely
Student has
used multiple
appropriate
flowcharts to
describe the
program
Student has
used some
flowcharts to
describe the
program
Student has
attempted to
use flowcharts
to describe the
program
Student has
attempted to
use flowchart to
describe the
program but
were not
sufficient
Creativity of
Report
Student has
used a variety
of creative
software and
tools to present
the assignment
report
Student has
used many
creative
software and
tools to present
the assignment
report
Student has
used some
amount of
creative
software and
tools to present
the assignment
report
Student has
used a couple
of creative
software and
tools to present
the assignment
report
Student has
used at least
one creative
software or
tools to present
the assignment
report
Python Codes (20% - 50 marks)
Understanding
of the Project
Student has
demonstrated
high level of
understanding
of the project
requirements
that are both
stated in the
task and those
not mentioned
Student has
demonstrated
some
understanding
of the project
requirements
that are both
stated in the
task and those
not mentioned
Student has
demonstrated
high level of
understanding
of the project
requirements
that are stated
in the task
Student has
demonstrated
basic
understanding
of the project
requirements
that are stated
in the task
Student has
demonstrated
sufficient
understanding
of the project
requirements
that are stated
in the task
Application of
programming
modules
Student can
apply majority
of the topics
learnt in this
project
Student can
apply many
topics learnt in
this project
Student can
apply some
topics learnt in
this project
Student can
apply at least
two topics
learnt in this
project
Student can
apply at least
one topic learnt
in this project
Intellectual
Features
Student has
demonstrated
efficient use of
intelligent
algorithm in
majority of the
codes
Student has
demonstrated
the use of
intelligent
algorithm in
most of the
codes
Student has
demonstrated
some use of
intelligent
algorithm in the
codes
Student has
demonstrated
basic use of
intelligent
algorithm in the
codes
Student has
demonstrated
sufficient use of
intelligent
algorithm in the
codes
Additional
Features
Student has
added
substantial
number of
additional
features to the
program
Student has
added a good
number of
additional
features to the
program
Student has
added some
number of
additional
features to the
program
Student has
added a couple
of additional
features to the
program
Student has
added at least
one additional
feature to the
program
User Interface Student has
created
excellent user
Student has
created good
user interface
for the program
Student has
created
sufficient and
simple user
Student has
created basic
user interface
for the program
Student has
created poor
user interface
for the program
interface for the
program
interface for the
program
User Guides (4% - 10 marks)
Screenshot
Samples
Student has
provided clear,
detailed, and
step-by-step
screenshots
guide on the
program
Student has
provided step by-step
screenshots
guide on the
program
Student has
provided
sufficient
screenshots
guide on the
program
Student has
provided limited
screenshots
guide on the
program
Student has
provided very
little
screenshots
guide on the
program
Data Student has
used
appropriate and
detailed test
data on the
program to
illustrate the
input and
output
Student has
used
appropriate test
data on the
program to
illustrate the
input and
output
Student has
used sufficient
test data on the
program to
illustrate the
input and
output
Student has
used some test
data on the
program to
illustrate the
input and
output
Student has
used very
limited test data
on the program
to illustrate the
input and
output
Individual Oral Presentation (10% - 25 marks)
Clarity of
Presentation
Student has
provided clear,
detailed, and
concise
presentation
Student has
provided clear
and concise
presentation
Student has
provided clear
presentation
Student has
provided clear
presentation to
some extent
Student has
attempted to
provide a clear
presentation
Delivery Style Excellent
control of
volume, pace
and diction; no
distracting
gestures, visual
aids used
effectively
Good volume
and energy,
good pace and
diction; few or
no distracting
gestures; visual
aids used
adequately
Average
volume and
energy;
generally
good pace and
diction; some
distracting
gestures or
posture; visual
aids could be
improved
More
volume/energy
needed at
times,
pace too slow
or fast; some
distracting
gestures or
posture; visual
aids could be
improved
Low volume or
energy; pace
too slow
or fast; poor
diction;
distracting
gestures or
posture; visual
aids poorly
used
Content All information
was relevant
and appropriate
to requirements
of the
assignment
Most
information was
relevant and
appropriate to
requirements of
the assignment
Most
information
relevant; some
topics needed
expansion or
shortened
Information was
valid but not
explicitly related
to the
assignment
Information was
not relevant or
directly related
to the
assignment
Q & A Session Answers
questions with
authority and
accuracy
Provides good,
clear answers
to questions
Provides
adequate
answers to
questions
Some
difficulty
answering
questions
Uneasiness or
inability
answering
questions
Overall
Impression
Grade
Student was
very well
prepared for the
entire
presentation
Student was
well prepared
for the most
parts of the
presentation
Student was
prepared for
most parts of
the
presentation
Student
appeared
prepared for
some parts of
the
presentation
Student was
clearly
unprepared for
the
presentation