You are on page 1of 6

Course Project Guidelines

CE 364: Software Engineering laboratory tools

Semester: Spring 2023

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.

II. Learning Outcomes


By completing this project will show the following outcomes:
▪ An ability to use scripting languages to integrate the input/output of diverse soft-
ware systems.
▪ An ability to apply testing techniques to assess software reliability, and correctness.
▪ An ability to design modern user interfaces.
▪ An understanding of regular expressions.
▪ An ability to design and incorporate classes in the programs.
▪ An ability to incorporate associative data structures in the programs

CE364 Software Engineering tools Laboratory Page 2 of 6


III. Project Summary
Scenario:
This project asks you to design simple port system required at shipping port. Designing
this system will help the students develop critical thinking, match the project requirements
with the code requirements, and have ability to design a sophisticated software which meets
the client’s requirements and solve their problems for real like applications.

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.

I) If the logged user is an Immigration officer, show following option menu.


1. Existing passenger
2. New passenger
3. Search Passenger
4. Logout

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

He then accordingly updates passenger’s Status field in passenger database file


passenger.txt.

CE364 Software Engineering tools Laboratory Page 3 of 6


If the Immigration officer selects “New Passenger”, he/she should be able to add new
entry into passenger database file passenger.txt with all required details (Civil ID, Name, Date
of Birth, Gender, Customs Fine, and Status). For a new entry Customs fine and Status fields
will be blank initially.
If the Immigration officer selects “Search Passenger”, he/she should be able to see all
details of a passenger after entering passenger’s Civil ID.
At any point Immigration officer should have option to go back to option menu. If the
Immigration officer selects “Log Out”, he/she should be taken back to main login screen.

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.

Selected Options Value to add in “Customs Fine” field


A 0
B 0
C Any value from 0 to 20,000 KD as entered by customs officer

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.

CE364 Software Engineering tools Laboratory Page 4 of 6


IV. Deliverables & Project Management
● Project Deliverable 1: Project Report + Python code file + Database files (zip
all three in one folder and submit per group)

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

● Project Deliverable 2: Project presentation ppt (40%) + interview (60%).


Students prepare a ppt (one per group). ppt should contain slides (not
more than 4 to 5):
i) explaining project approach/working
ii) Demonstrating leadership and professional behavior in teams by
mentioning contribution of each group member in preparing ppt

Every student will be graded individually during interview part.

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.

VI. Marking scheme of the Code:


Grade Distribution
Report, Code and code Results (PD1): 15 %
Presentation and interview (PD2): 5 %
The weight of this project is: 20%

Pass mark (70%)


• Designing the main data structures and functions
• Implementation of the basic scenarios of basic requirements.

CE364 Software Engineering tools Laboratory Page 5 of 6


C classification (80%)
• Attempt to meet the required tasks but with significant errors or elements
missing.

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.

* * *

CE364 Software Engineering tools Laboratory Page 6 of 6

You might also like