联系方式

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

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

日期:2020-06-06 11:12

COSC2674/2755 Semester 1, 2020

Assignment 3 Specification

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

mark

Deadline: Sunday 14.06.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 15 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.

Do not start this assignment late, you have about 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:

? Writing a website application using Python’s microframework Flask

? Writing your own API using Python’s microframework Flask

? Python documentation tools such as Sphinx

? Practice third party API

? Unit testing in Python

? AI features such as object-detection system

? 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. The booking schedule 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. You also need to populate some data into the tables to demonstrate you have completed

the requirements for fair judgement from reviewers.

This is a website application that runs on MP. It can only be accessed by the employees inside the

company. The website makes use of FLASK RESTful API to communicate with cloud database on

GCP (Google Cloud IOT platform).

For system admin: Admin can login to the website to maintain the data regarding to users

and cars.

The system admin is able to:

- View car rental history

- Search users and cars

- Add, remove and modify information of users and cars

- Report car with issue, then the engineer can find and fix the problem

For company manager: The manager can login to the website and capture key information by

looking at visualisation dashboard. Upon logging in, a dashboard webpage will be shown. In the

dashboard webpage, you need to demonstrate 3 types of visualisation graph (e.g. line chart, bar

chart). They are able to indicate business status to help manager making business decision. You

need to decide what kind of information matters regarding to company management. You might

need to do some research to find out which indicator can help making a right decision (e.g. Daily

Active User, Percentage of usage for each car per day).

Note: All data must be retrieved through RESTful API. In the other word, the visualisation might be

changed whenever the data behind is updated.

For engineer: The engineers take responsibility to repair the reported cars. They will receive a

notification via email once admin reported a car that is needed to be repaired. After that, the

engineer can login to the system to check out and find the car’s location.

The engineer is able to:

- Login

- Check the reported car’s location in the web page

The car will be unlocked automatically when the engineer close to the car (you will be asked to

utilise Bluetooth ID to solve this problem). The AP attached in the car will have the ability to detect

QR code carried by engineers in order to retrieve their personal information, which will help

company to know who has done what.

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 (55 marks)

You will now implement a web-based system on MP.

1) (5 marks) An option to login to the system for three type of users including admin,

manager, engineer. They will be directed to different web pages regarding to their user

type.

Note: The username and password must be stored in an encrypted (you may hash and

salt) format. In addition, the website will recognize their permission to avoid incorrect

operation.

2) (10 marks) Once the admin login successfully, the system should display a menu which

will allow admin to manipulate the data regarding to users and cars.

They will be able to:

- View car rental history

- Search and view

- Add, remove and update

- Report cars with issue

- logout

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

All the car and user 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 rental history.

Search and View:

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

column’s aligned) in the web page.

Add, remove and update:

Be able to edit information of cars or users.

Report cars with issue:

Be able to select and report cars with issue in the car view.

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

4) (3 marks) Design database and populate some data 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 and user data are stored on a cloud environment namely the Google’s

GCP IoT platform (Google Cloud Platform).

School of Science / CS & IT

Page 6 of 8

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

Note: All database operations related to data retrieve and update must utilise API to talk to

the cloud database.

6) (6 marks) Design and demonstrate three different types of visualisation graph that matters

to decision making in dashboard page.

7) (3 marks) Send an email to engineer’s email address using Pushbullet API when a vehicle

with issue is reported by admin.

8) (3 marks) Once the car is reported, the location of the car needs to show in Google Map of

engineer’s page, which will guide engineer to find the car.

9) (5 marks) Complete documentation using Sphinx.

10) (10 marks) Professional use of

? GitHub from day 1 of the development

? Trello board for the development cycle

Part B (25 marks)

1) (10 marks) Implement an automatic identification system by using Bluetooth in AP, which

will help engineer to finish their work easily. (There is one clue for you, the MAC address

of Bluetooth is unique. For more information, you need to do some research on your own.)

Note: Some devices can fake the MAC address, but we will not judge you regarding to the

security issue.

2) (10 marks) Add the voice/search feature to search the cars in MP. This is for the admin who

is looking to find a specific car. You must use the Google’s Assistant SDK to complete this

part.

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

Part C (10 marks)

1) (7 marks) Implement an object-detection console-based system in AP. The system can

retrieve engineer’s profile by detecting QR code carried around. You may have to use

OpenCV and other QR related frameworks (ZBar etc.)

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

you can use the QR code picture saved in local file system to test the system performance.

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

Part D (10 marks): Unit Test

School of Science / CS & IT

Page 7 of 8

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

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

5 Adding a README file

In order to get fair marks, it is your responsibility to make sure that all your effort will be fairly

judged. You must have a README.md file written in markdown format in your project root path,

which will guide reviewer go through your project smoothly.

- Adding a README file to introduce your project.

- Write an instruction of your project in the README.md.

- Username and password of 3 types of user are included in the README.md.

- Report your repository usage in GitHub by attaching some screen shots in README.md.

- Report your Trello board usage by attaching some screen shots in README.md.

- Well organised file structure and also separate website and API code into two folders.

- Make sure having one main method to run in main.py.

The last but most important thing is to make sure that your program is runnable. Besides, you need

to have a requirement.txt file in your project to show which pre-request package are needed to

install. You can browse GitHub to get some idea what requirement.txt is and how it can be used.

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

School of Science / CS & IT

Page 8 of 8

? 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

? 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