联系方式

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

您当前位置:首页 >> Database作业Database作业

日期:2023-10-29 10:54

FIT2104 Web Database Interface

Assignment 5 Specifications

Title: Implementation with Rapid Development Framework

Notes

1. This assignment is worth 20% of the total mark for the unit

2. This is a group assignment and is to be completed by 2 students working together

3. See Moodle for deadline, extension and special consideration policy

4. Please complete the “Plagiarism Coversheet Electronic quiz” on Moodle before

submit, if not yet

Due dates

Preparation practices By completing weekly lectures and labs

Question & answer session(s) - By posting your question on the discussion forum

- By organising consultation with your tutor

- Ask for help during weekly labs

Application Implementation: Exam Week 2 Wednesday 8

th November @ 11:55pm AEDT

Contribution Peer Evaluation: Due date same as above

Scenario

Project descriptions

Nathan was satisfied with your presentation and report, and decided to hire you to complete the

proposed web system for his business. However, due to the limited budget, only a selection of

features, a mix of what you may have proposed and some newly identified needs, are to be

implemented. He also wants you to develop the project with modularisation and maintainability in

mind for easy future expansions when needed.

The expectation of this assignment is to develop a CakePHP application for Nathan that enables

him and his staff to interactively manage data for his recruiting business.

FIT2104 Semester 2, 2023 | 1

General requirements

The web application must use CakePHP as the development framework and the database must

be a MySQL database using a schema that is compliant with CakePHP’s database conventions.

Your code must follow the best practice and conventions of CakePHP. Implementations such as

(but not limited to):

● use of languages other than PHP or development frameworks other than CakePHP

● not using the latest version/release of CakePHP or related plugins

● schema that is non-compliance with CakePHP conventions

● directly executing queries with PDO, mysqli, etc. or using ConnectionManager or

getTableLocator() in non-expected locations, such as inside of a view template

● hard-code links or HTML forms without using CakePHP view helpers

will result in deductions of marks or your assignment not being marked at all.

If you have any questions regarding the requirements of this assignment, you MUST discuss it

with your tutor or lecturer via discussion forum (preferred, so others can see the answer) and/or

during the consultations. If not sure, just ask ??

Requirements

Database schema: Nathan has already prepared a conceptual ERD provided to you:

FIT2104 Semester 2, 2023 | 2

Alongside the conceptual ERD, some test datasets are also provided to you in lieu of Nathan’s

real client data due to privacy concerns. You’ll need to convert this ERD into a schema that is fully

compliant with CakePHP database conventions to ensure the system is functional as expected.

Once your database schema is created, inspect and modify the provided test data so they can be

imported into the newly created database.

Hint: phpMyAdmin allows you to import CSV files directly. You should modify the CSV datasets to

fit your final database schema on both the column name and data types before importing.

Remember this is a huge dataset so don’t try to manually import records one at a time, as it will

take forever to complete!

Code generation with Bake: In the case that you’re using Bake to generate skeleton/scaffold

codes based on your database schema, you’ll need to ensure the generated codes fits your use

case, meaning that you’ll need to make changes accordingly to ensure:

● Model entity should contain a sensible include/exclude list for form data mass assignment

● Model table should be configured properly, including display fields, validators and ensure

generated relationships between tables fits the intention of the schema

● Controller should contain functions that are actually being used

● View templates should render a user-friendly collection of data, and hide unnecessary

data from the user to avoid confusion

● Unused and unnecessary files should not be a part of the project folder

Search for various data: You’ll need to develop a feature that enables Nathan and his colleagues

to filter the list of records that meet their entered search criteria.

On the listing pages of Clients, Projects, Questionnaire modules, add appropriate search fields for

each of the following search criteria:

● Clients:

○ Search for a client by their first name or surname with a given keyword

○ Search for a client by their address with a given keyword

● Projects:

○ Search for the semester a project belongs to with a given keyword

○ Filter projects from a dropdown list of all possible status keywords

○ Filter projects from a dropdown list of all possible level of necessity keywords

○ FIlter projects on whether the owner of the project would attend “Meet & Greet”

FIT2104 Semester 2, 2023 | 3

● Questionnaires:

○ Search for a questionnaire by the business name with a given keyword

○ Search for all questionnaires completed after a certain date and time

The results should fulfil all available search criteria - for example, when “fitness” as “business

name” and “10 October 2022 at 23:59:59” as “completion time” are submitted as search criteria

for questionnaires, records that fit both criteria will be listed. If the user chooses to search by one

or two criteria only, the search function shall still work as expected and ignore the unused criteria.

The search must be implemented using CakePHP on the server-side with proper use of

QueryBuilder. Client-side techniques such as Datatables are not allowed.

Configuration and Customisation of CakePHP: Customise the user experience of your web

application so that it doesn’t look like a “freshly baked out of oven” CakePHP application, which

includes the following tasks:

● Remove CakePHP’s welcome page and make the projects list page as homepage

● Properly configure app.php and app_local.php files so the project uses correct Australian

formats, time zones and settings

● Disable the debug mode of CakePHP in app_local.php template

● Remove the presence of CakePHP from user interfaces and replace with appropriate

business branding for Nathan, such as:

○ CakePHP catchphrase in page titles

○ CakePHP brandings and navigation items in page headers

○ General colour tone of the website (remember the design and usability lectures?)

○ and more that you can think of

○ and make sure these changes are applied to the entire website instead of

individual pages/modules

You must implement the changes correctly in the way CakePHP is intended - that includes, but

not limited to, updates to static files (images, CSS scripts, etc.) in webroot, individual templates

that need to be themed, and overall layout of the web application.

Further increase the usability of relationship dropdowns: By default CakePHP uses very simple

display fields which do not fully represent related entities in key-value results, which are usually

used in dropdown lists. Ensure you’re modifying the display fields of Projects and Clients table,

FIT2104 Semester 2, 2023 | 4

and take advantage of virtual fields, so that there’s no ambiguities when the user chooses a client

when creating a project, or chooses a project when creating a questionnaire, etc.

Authentication to protect the data: Implement the CakePHP Authentication plugin properly so

that Nathan and his colleagues can log into the system with their designated username and

password. Ensure:

● The plugin is properly configured

● Required database table schema is implemented, and related codes are “Baked”

● Passwords stored in the database table are properly hashed by CakePHP

● Additional functions and view templates for logging in and logging out are added

Publicly available questionnaire: Normally all parts of the website are limited to staff access only.

However, to allow external clients to complete a questionnaire for a certain project, you’ll need to

some extra work as follow:

● Modify the add action, along with its view template in QuestionnairesController so that

instead of letting the user choose which project the questionnaire belongs to, the primary

key of the project is instead taken as an argument of the action function

● Make the add action (which allows a user to fill in a questionnaire) publicly available,

instead of requiring a user to login

● Add a link or field in either projects listing or view page, which enables Nathan to copy

the invitation link to complete a questionnaire on a certain project. You may also need to

consider disable such feature when a questionnaire is already completed for a project

Overall aesthetics: Improve user-friendliness of the website by inspecting and updating all

existing codes generated, and implementing new layouts and/or including useful JavaScript

libraries/plugins. This includes but not limited to:

● Review all parts of the website and ensure users are not confused, such as notification

(flash) messages generated in Controllers, HTML form and view page field labels

● Implementing new layouts using designer templates (with Bootstrap or similar CSS

frameworks) that replaces either the staff side of the website, public user side of the

website, or both, for a better visual experience - the implementation must be fully

compliant with CakePHP’s layouting system (view templates, layouts, etc.)

FIT2104 Semester 2, 2023 | 5

● Implementing JavaScript libraries and/or plugins that improves usability - your codes must

be fully compliant with CakePHP’s layouting system (take advantage of View Helpers)

Submission of the assignment

A repository for assignment submission has been created for you within the team FIT GitLab

group with the name "fit2104_assignment_5". The repository contains an empty CakePHP 5.x

app skeleton which allows you to start your work straightaway. The link to this repository will

need to be submitted to Moodle’s assignment 5 portal (see the portal for details). All files that

make up the system should be in the repository’s default (main) branch. The repository should

not contain files that are not related to the assignment.

At the root of your repository, you should modify the default README.md file to contain:

● Details of the author, with name, student ID#, and date of submission

● A link to the FIT GitLab repository page of this assignment

● The filename of your database dump file (see below for details)

Also, provide a dump/export of your database schema and imported data. This file should

include table creation statements with definition of primary and foreign keys and column

constraints, as well as insert statements of all imported data. Which means the assignment

marker should be able to use this file to create or restore the state of the database back to how it

was at the time of submission. You can put the dumped SQL file somewhere logical in the

repository and the README.md file should contain the location of the SQL file.

A snapshot of your personal FIT GitLab group will be taken at the deadline of submission. By that

time all files required for your system must have been committed and pushed to your

repository’s default branch along with the database files. You will be able to make changes to

your repository after the deadline, but those changes will not be considered for marking.

Consequently, please do not leave it to the last day or last minute to commit and push changes,

as you’ll need time to check if everything is properly submitted, and the server could crash

because of the large amount of traffic. No consideration will be given for failing to push changes

before the deadline, and late submissions are not accepted according to the unit assignment

policy, unless exceptions or extensions are approved by the university.

A peer evaluation survey is also available on Moodle to allow peers to review their performance

during the collaboration process of the assignment. This survey is due the same time as your

original or extended due date of the code. No rainchecks.

FIT2104 Semester 2, 2023 | 6

Although you may not be assessed by this, it’s recommended that your repository contains

healthy commit histories. This could help you to build a positive attitude in coding habits, project

and bug management, streamline the deployment process, and make sure the history is properly

tracked for future references. Please notice that the scaffold of CakePHP uses the .gitignore

file to exclude the bulky vendor folder and some local configuration files. You can take advantage

of this to greatly reduce the size of your repository. Since this file is considered as hidden file in

*nix OSes (like Linux and macOS), make sure hidden files are properly included in your repository.

The authors must write all codes changed and submitted. Students may be interviewed as part of

the assessment. Where there is evidence of plagiarism or collusion with those submissions,

students involved will be subjected to academic integrity investigation.

Finally (something kind of out of the place but very important), any potentially dangerous act,

such as attacking information systems, including maliciously crafted codes, or sabotage other

students’ assessments somehow, are considered as offences. Trust me, this happened before in

the academic settings, and you don’t want to go that far ?? I put it here just to cover all basis.

Further Information

You are encouraged to use the Ed discussion forum on Moodle to post and answer questions

regarding the assignment. Please make sure you have attached the correct tag for your

post/question. It is important to remember that staff may not be available to answer questions at

the last minute, so it is important that you do not leave it to the last minute to attempt the

assignment. Use the labs and consultations well to get help from staff members when needed.

Friendly reminder: this is supposed to be a straightforward assignment to test your

understanding of basic CakePHP skills - please do not overcomplicate the implementations.

FIT2104 Semester 2, 2023 | 7


相关文章

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

python代写
微信客服:codinghelp