联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2020-06-09 11:01

Page 1 of 8

COSC2674/2755 Semester 1, 2020

Assignment 2 Specification

Marks allocated: This assignment will be marked out of 100 and is worth 35% of your overall

mark

Deadline: Sunday 17.05.2020 (11:59 pm AEST)

Submit via: Canvas

Work mode: In a group of 4 (individual submissions discouraged)

Submission format: .zip (No other formats will be accepted)

Online demo: Week 11 Monday - Friday (No Demoà No marks)

0 READ THIS FIRST

The real-life projects that you will face in Industry never come with crystal clear, direct list of

instructions in a linear manner. In fact, the reality is far from that, the project requirements often

come in bits and pieces from often a confused client who thinks that they know everything.

It is the job of requirement engineers to elicit the requirements. Business Analysts then spend good

amount of time clarifying these requirements and creating more sensible, doable and negotiable list

of deliverables.

When you read the specifications for this assignment, you will realise that some of the ones may

have multiple ways of implementing them (just like in real life software development). So instead of

blaming it on the specifications, clarify the requirement(s) by posting in discussion board for

assignment 2.

Do not start this assignment late, you have four weeks to complete it which is more than

enough time to do well and make sure that you use this time judiciously. Starting work at the

last minute will only lead to poor outcome(s).

There are certain specifications which will push you out of the comfort zone. This has been

done on purpose. There are certain parts of the assignment where you will need to do selfresearch

as you will not find answers in lectures, tute/labs.

If you do a good job of this assignment, you can choose to add it as a part of portfolio for

future employers. You are being prepared for potential employability prospects.

School of Science / CS & IT

Page 2 of 8

1 Scenario

Your team has been contacted by a car share company to develop an automatic Car Share

System. This system is used to book, find and unlock and lock a car. In addition, the customer

can report some issues with the car to help the company to maintain the cars. You will create an

application for four types of users: customer, company manager, engineers and system

administrator.

In this assignment,

For this assignment, you will be making extensive use of the Google Calendar API

(https://developers.google.com/calendar/v3/reference/) to work with your Raspberry Pi.

You will also be using Google Cloud IoT Platform (https://cloud.google.com/solutions/iot/).

In summary, the implementation of this assignment involves the following components:

? Python documentation tools such as Sphinx

? Practice third party API

? Unit testing in Python

? Socket Programming

? Writing your own API using Python’s microframework Flask

? AI features such as facial recognition

? Programming with Cloud databases

? Selected Software Engineering Project Management/Tools

2 Important

You must adhere to the following requirements:

a. Raspberry Pi model 4 or 3 should be used.

b. You must use Python 3.* to complete the tasks. Older versions must not be used.

c. You must use a version control system of some sorts such as GitHub, Bitbucket, etc. A

private repository is to be used ONLY.

d. You must stick to the standard style guide for your Python code:

(https://www.python.org/dev/peps/pep-0008/)

e. You must attend a 30 minutes demo session to get the assignment 2 marked. A schedule

and a booking document will be published later. You must submit the assignment prior to

demo. No submission à No demo à No marks.

School of Science / CS & IT

Page 3 of 8

3 Detail(s) of CSS

3.1 High level architecture diagram

NOTE: The following architecture diagram will be used for both Assignments 2 and 3.

School of Science / CS & IT

Page 4 of 8

3.1 CSS features

NOTE: You need to design the database by dividing the information into tables and turning information

items into columns. Future, you also need populate some data into the tables in order to illustrate the system

during the demo session.

For customers: The customers can register, logging in, search and book a car on the web-based

system in MASTER PI (MP).

The user registration on MP is required for the first-time user. In the home page of the web-based

application provides only two options:

- registration

- log in

Upon registration the details are stored in cloud database. You may use MySQL database.

Upon logging in, the user is now presented with another page including following functions:

- show a list of cars available, you need to show the detailed information of cars in the list

such as Make, Body Type, Colour, Seats, Location, Cost per hour.

- search for a car based on body type or other features.

- book a car based on car identity, the user will be asked to input booking details.

- cancel a booking

- logout

When the customer arrives at the car booked, the Agent PI (AP) provides two options available for

unlocking the car:

- using console-based system which allows them to type in the user credentials or,

- using a facial recognition system

Upon logging in, the user’s credential will be sent from AP to MP via sockets. At the same

time, MP will check the credential and send the response message back to AP. The AP will

execute the operation according to the message from MP. Once the operation (unlock the car)

is successfully executed, the AP need to send a message to nearby the device via Bluetooth,

simulating notification in your smart phone.


When the customer leaves the booked car, they can lock the car by choose one option:

- return the car

Once the “lock car” operation is executed, the AP need to send a message to nearby the device

via Bluetooth.

When the customer enters and leaves the booked car, the Agent PI (AP) will send message to MP in

order to change the availability of the car.

YOU ARE NOT ALLOWED TO USE ANY OTHER PLATFORM WITHOUT PRIOR

PERMISSION.

School of Science / CS & IT

Page 5 of 8

4 Tasks

Part A (50 marks)

You will now implement either a web-based system or console menu-based system on MP and a

console menu-based system on AP.

NOTE: For Tasks 1, 2, and 6, you have a choice of console menu-based system or web-based system. The

web-based system can be difficult and time consuming while a console menu-based system will be easier

and less time consuming. If you choose the console menu-based system, you will get up to 80% of the full

mark for each task.

1) (5 marks) An option to register a new user on MP. The username, password and other

necessary details (first name, last name and email) must be stored on cloud database. The

password must be stored in an encrypted (you may hash and salt) format.

2) (2 marks) An option to login into the system and gain access to the application on MP.

3) (5 marks) Develop and implement a robust input validation scheme.

4) (3 marks) Design database based on the requirements.

Make sure that the database is normalized - this means if you only have one table, you will

lose marks. The car database is stored on a cloud environment namely the Google’s GCP

IoT platform (Google Cloud Platform).

5) (5 marks) Create your own RESTful API to talk to the cloud database.

6) (15 marks) Once MP receives the login information, the system should display a menu

which will allow the user to access the booking system:

- view the history of my booked cars

- show all the available cars

- search a car

- book a car

- cancel a booking

- logout

YOU WILL RECEIVE ZERO for storing data in a local database.

All the car related information is stored in a Cloud-based database hosted on Google Cloud

IoT Platform (GCP). It is your responsibilities to make sure that you do not exceed the free

tier limit on the GCP.

View history:

Be able to show a list of cars that current user has booked.

Search a car:

Be able to search by any of the car’s properties and display fields neatly (e.g.,

column’s aligned) in the console.

Book a car:

School of Science / CS & IT

Page 6 of 8

The uses need to select which car they want to book and input the duration they want

to use. A car that is booked cannot be booked again until returned. Note when

booked an event should be added to Google Calendar, detailing the car, who book

the car and the booked duration. Google calendar will be tied to the Google login of

the user.

Cancel a booking:

The event added to Google Calendar will be removed, and the related information in

the database need to be modified

7) (5 marks) Complete documentation using Sphinx

8) (10 marks) Professional use of

? GitHub from day 1 of the development

? Trello board for the development cycle

Part B (20 marks)

1) (3 marks) Implement Console-based system on AP, providing the functionality for user to

unlock and return the car.

2) (5 marks) Sending user’s credential from AP to MP via sockets. The message needs to

include some important information, such as current date and time, username/password, car

ID.

3) (2 marks) MP needs to check the credential from AP and also send back the response

message via sockets. If the credential is correct, MP need to modify related information

about the car in cloud database.

4) (5 marks) Being able to show all the car’s location by using Google Map API.

5) (5 marks) Complete documentation using Sphinx, Trello board and Git Hub for this part

Part C (15 marks)

1) (12 marks) Implement the facial recognition requirement of the system using OpenCV.

This applies to the customers who want to use facial recognition authentication instead of

console-based authentication to unlock the car.

Note: If all of your team members do not have a USB camera, below a solution for you.

You can use the camera on your smart phone to capture the face photo and send the photos

to the AP. Since the photo is saved in the AP already, you need to add a menu option that

uses local photo to complete authentication in you console menu-based system. However,

you need to demonstrate that the facial recognition system does work during the demo

session.

2) (3 marks) Complete documentation using Sphinx, Trello board and Git Hub for this part.

School of Science / CS & IT

Page 7 of 8

Part D (15 marks): Unit Test

1) (15 marks) Complete unit test suite for the whole project (i.e., A, B, C and D parts). This

is where you can decide what kind of unit tests are required.

5 Demo

a. In prior to your demo, create 10-20 Cars on your own (e.g., 2 Admins, 4 Engineers, 6

Users).

b. Login to GitHub using your account and show the use of GitHub during the demo.

c. Each team member is expected to answer any question related to any task in this assignment.

Your marker may deduce the mark if you fail to answer a question in a task.

6 Who does what

Please include the evidence of who does what in this assignment, i.e., include a file explaining what

specific task each team member did. The evidence needs to be consistent to your GitHub and Trello

board. If not consistent, your maker may deduce marks. Although each member did different tasks,

all the members should know each other’s tasks.

7 Late submission and Extension

a. A penalty of 10% per day of the total marks will apply for each day late, including both

weekend and weekdays.

b. After five days, you will receive a zero for the whole assignment.

c. Extension requests should only be emailed to the lecturer.

d. Extension offered to a group member(s) does not qualify for a global extension for the

whole of group.

8 Plagiarism

All assignments will be checked with plagiarism-detection software; any student found to have

plagiarised would be subject to disciplinary action. Plagiarism includes

? submitting work that is not your own or submitting text that is not your own

? allowing others to copy your work via email, printouts, social media etc.

? posting assignment questions (in full or partial) on external technical forums

? copying work from/of previous/current semester students

? sending or passing your work to your friends

? posting assignment questions on technical forums to get them solved

? someone else writing your code (i.e., contract cheating)

A disciplinary action can lead to

? a meeting with the disciplinary committee

? a score of zero for the assignment

? a permanent record of copying in your personal university records and/or

School of Science / CS & IT

Page 8 of 8

? expulsion from the university, in some severe cases

All plagiarism will be penalised. There are no exceptions and no excuses. You have been warned.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp