Professional Documents
Culture Documents
Section F2
CE 364: Simple Port System
I. Introduction
This project assesses your ability to carry out specific software development activities to
develop an engineered solution to an operating system problem. This involves identifying the
requirements, writing a specification, designing, testing, and evaluating a solution. The
process has several stages, and some investigation is required so you should plan the work
carefully.
Working successfully as a team is a key requirement for working in industry, and for this
project you will be working in small groups’ maximum of 3 students only.
The stages of the project are as follows:
(Part 1) - Deadline is on Tuesday of Week 13 : Report + Code Files
(Part 2) - Interview (Week 15).
Demonstration and interview will take place during lab hour
Do not diverge from the project specification. If you want to make any addition to the
project and are unsure whether this breaks the specification, check it with your instructor
first.
Full description
You are a software engineer who is working for Ministry of Shipping and you have to
build a simple software to manage incoming and outgoing passenger records at shipping port.
You will need two text files to serve as the database: one for handling login, and one file to
store all the information of passengers.
In the login.txt file, you will store ID, Username, Password, Role. The Role will take
value as Immigration officer or Customs officer. Each record as separate row in text file.
In passenger.txt, you will store Civil ID, Name, Date of Birth, Gender, Customs Fine,
and Status. Use dictionary structure to store this information as key value pairs, use Civil ID
as Key and other information as list values. Each record as separate row in text file.
When the program launches, the user should be shown main login screen to enter his
Username and Password. Based on Username and password the user’s role is determined i.e.
either Immigration officer or Customs officer.
If the Immigration officer selects “Existing Passenger”, he/she should be able to see
all details of a passenger after entering passenger’s Civil ID. And would select one of following
options,
A. Arrival Approved
B. Arrival Rejected
C. Departure Approved
D. Departure Rejected
E. Go Back to previous menu
II) If the logged in user is a Customs officer, show the following option menu:
1. Enter Civil ID
2. See Report
3. Logout
If the customs officer selects “Enter Civil ID”, he/she should see following options,
A. Allow through Green channel
B. Passenger self-declared Items
C. Inspect items
D. Go Back to previous menu
“Customs Fine” field in passenger database passenger.txt should then add according
to table given below.
If the Customs officer selects “See Report”, he/she should see following metrics,
i) Total Customs Fine Collected
ii) Average fine per passenger
iii) Records of passengers with fine greater than 5000 KD
At any point Immigration officer should have option to go back to option menu. If the
Customs officer selects “Log Out”, he/she should be taken back to main login screen.
You must make sure to use proper functions, data structures, Exception Handling,
Classes, Objects in your code. The project shall be implemented with the usage of GUI. Add
students’ IDs, Names, section, course etc at top of code as comments.
You can work on this in teams of up to 3 members. This project needs a knowledge of using:
1. Python programming language concepts.
Project report: Students should fill in required data in given project report
template on moodle and submit as pdf.
Python code file: the .py file/files
Database files: the text files you created to store information
V. Plagiarism
• Please check the students’ handbook for more on information on plagiarism.
• You will be held responsible if someone copies your work - unless you can
demonstrate that have taken reasonable precautions against copying.
B classification (90%)
• Implementation of the full scenario (all mentioned requirements) using
command line features of python.
A classification (100%)
• Implementation of the required scenario and coding requirements.
* * *