联系方式

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

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

日期:2024-03-05 08:43

COMP639 Studio Project – Semester 1 2024

Individual Assignment

Worth: 25%

Due: Tuesday, 12th March 2024 @ 5:00pm

Late Penalty: Work not received by due time attracts an immediate penalty of up to 25% of the

marks available. No work will be accepted after Thursday, 14th March 2024

5:00pm.

WEED BIOSECURITY GUIDE

Develop a Flask Python Web App functioning as a biosecurity guide, providing information on weeds

that are present in New Zealand.

IMPORTANT

This is an individual assessment. You must not collaborate or confer with others. You may help others

by verbally explaining concepts and making suggestions in general terms, but without directly

showing or sharing your own code. You must develop the logical structure, the detail of your code

and the database on your own, even if you are working alongside others. Code that is copied or

shares a similar logic to others will receive zero marks for both parties.

The use of Artificial Intelligence (AI) tools, such as ChatGPT, to complete this assessment is

prohibited. Assessment answers will be analysed for evidence of the use of AI and penalties may be

administered.

The University policy on Academic Integrity can be found here.

FUNCTIONAL REQUIREMENTS

The application should include a login system and separate dashboards for three user roles:

Gardeners, Staff and Administrator. Users should be able to login to the system and access their

respective dashboards as well as to perform specific actions related to their role. The web app should

have a responsive design and be styled to reflect a garden weed theme. The focus of this assessment

is on providing different level of access for different user roles.

Home Page

Create an attractive home page which reflects a garden weed theme and has links to login

and registration.

User Login and Registration

You will need to:

Create a login function with a single form where all users can enter a username and password

(hidden).

2

Implement a password hashing and salting techniques to ensure secure storage of user

passwords.

Provide a new user registration functionality that allows new Gardener users to register and

create an account themselves. In this process they will provide their details and set a unique

username and password (at least 8 characters long and have a mix of character types).

User Roles and Access Control

Define three user roles: Gardener, Staff and Administrator.

Implement a role-base access control system that restricts access to certain pages or features

based on the user’s role.

Gardener users should be able to manage their own profile (update personal information and

change password).

Gardener users need to view the guide which will contain a primary image of each weed, its

common name, and its weed type (e.g. vine, shrub, herb etc). Clicking on each primary image

will reveal further detailed information such as scientific name, description, impacts, control

methods, and further images.

Staff should be able to manage their own profile (update personal information and change

password), view Gardener profiles and manage the guide (view, add, update and delete details

and images – including selecting the primary image).

Administrators should have full access to the system and the ability to manage their own

profile (update personal information and change password), manage gardeners (view, add,

update and delete), manage staff (view, add, update and delete) and manage the guide (view,

add, update and delete details and images).

Data Requirements

? Gardener profile: first name, last name, gardener id number, address, email, phone number,

date joined, status (e.g., active, or inactive).

? Staff/Admin profile: staff number, first name, last name, email, work phone number, hire date,

position, department, status.

? Weed Guide (weed id, common name, scientific name, weed type, description, impacts,

control methods, and images (including which image is the primary image).

? Content can be sourced from the websites below as well as your own research:

o https://www.weedbusters.org.nz/what-are-weeds/weed-list/

o https://www.massey.ac.nz/about/colleges-schools-and-institutes/college-ofsciences/our-research/themes-and-research-strengths/plant-science-research/newzealand-weeds-database/

o https://www.mpi.govt.nz/dmsdocument/3664-National-Pest-Plant-Accord-manualReprinted-in-February-2020-minor-amendments-only (includes weed types)

? The database should contain at least 5 gardeners users, 3 staff, one administrator and 20

weeds (ensure you have a range of different weed types).

? Include a content sources page within your webapp with references of your content material.

? Design and implement a database schema and populate it with data to meet these

requirements. In your design ensure you have considered data security, especially for

usernames, passwords and biosecurity data.

Dashboard Pages

Create separate dashboard pages for each user role.

Design and implement a visually appealing user interface for each dashboard that reflects a

garden weed theme. w

3

? Customise the functionality and features available on each dashboard based on the

associated user role.

Deliverables

A fully functional Flask Python web application for a weed biosecurity guide that has a garden

weed theme, with a login system and a role-based dashboards.

PROJECT REQUIREMENTS

You must

? Use only Python & Flask, Bootstrap CSS, JavaScript, MySQL. Do not use SQLAlchemy or

ReactJS (or other similar technologies) in your solution.

? Create a NEW private GitHub repository called Biosecurity that contains:

o All Python, HTML, images and any other required files for the web app.

o A requirements.txt file showing the required pip packages.

o MySQL scripts for creating and populating the database.

o README file with comments.

o Your repository must have a .gitignore file and therefore not have a copy of your

virtual environment.

o Add lincolnmac (computing@lincoln.ac.nz) as a collaborator to your new Biosecurity

repository.

? Host your system (including database) using pythonAnywhere.

o Add lincolnmac as your “teacher” via the site configuration.

? Submit via the link on LEARN COMP639 Page the COMP639 Web App Hand-In Sheet. This

includes details of:

o Your PythonAnywhere URL.

o Your GitHub repository URL.

o Usernames and Passwords for different users for testing purposes.

o Confirmation that certain files have been saved in you GitHub repository.

ASSIGNMENT HINTS

Create your GitHub repository first and create all your required code and files in your local

folder. We will be checking to see that you have multiple commit and push changes from your

local computer to your GitHub repository.

Spend some time sketching the structure of your application before you start developing.

Think about which features could share the same (or nearly the same) templates. Remember

that you can nest templates (templates within templates).

? Code for password hashing and session control has been provided on the Learn Page under

additional learning materials.

4

MARKING CRITERIA

Criteria Marks

Overall Structure and Organisation (Source Code) 10

Consistent and visually appealing design across all pages 10

Database and Data Management 10

Add, update, and delete Biosecurity Guide 5

Add, update, and delete users 10

Register new users 5

Change password 5

Biosecurity Guide List 10

Login and logout 10

Dashboard specific based on user role 5

Error Handling and Validation 10

Documentation and Readability 10

Total Marks 100

Excellent web app: All functions work as expected. The comments effectively describe code

functionality. Code is well-organised and easy to follow, with thorough validation and error handling.

Database schema is optimised, ensuring data integrity and security. User interface is intuitive and

responsive across devices. Structure adheres to coding conventions.

Good web app: Some functions do not perform as expected. Comments clarify key parts of the code.

Code readability is satisfactory. Validation, error handling, and user feedback are mostly implemented,

with some gaps. Database schema design and implementation are acceptable, with room for

improvement. User interface is generally consistent and responsive. Structure may have unnecessary

repetition. Templates, modules, and components are used adequately, following coding conventions.

Fair web app: Some functions incomplete or produce errors. Limited comments, likely only in the

header. Code is divided into appropriate units but lacks coherence and reusability, with unnecessary

repetition. Some issues with templates, modules, components, and adherence to coding conventions.

Readable for someone familiar with the task. UI lacks appeal, database design has flaws, limited

validation and error handling.

Poor web app: Many functions are missing or cause errors. Code lacks comments and organisation,

making it challenging to read. Validation, error handling, and user feedback are insufficiently

implemented. Database design and operations have errors, neglecting data integrity and security.

User interface usability and design suffer from multiple issues, with poor responsiveness. Code

structure is flawed, lacking decomposition. Templates, modules, and components are misused,

violating coding conventions.


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

python代写
微信客服:codinghelp