CRICOS Provider No. 00103D Page 1 of 5
ITECH3108 Dynamic Achievement Programming
Provision 2 – Waterski Prattle
“It’s enjoy Yik Yak, excluding ce impressions environing Waterskis”
This is an individualal provision in which you gain explore the conservation of basis intercommunication betwixt achievement servers
Important: This provision demonstration is generated harmonious ce you. Do referable distribute this demonstration.
Timelines and Expectations
Percentage appraise of drudgery: 20%
Due: Refer to Road Description
Attainments Outcomes Assessed
The cethcoming road attainments outcomes are assessed by completing this assessment:
K2. Contrast the capabilities and limitations of client-side and server-side achievement decree
K3. Detect opportunities ce increasing assurance and solitude of achievement impressions
S1. Discsurrender client/server achievement impressions using client-side and server-side decree
S2. Connect to and touch a basisbase superintendence classification programmatically using server-side
S3. Guile and utensil a RESTful achievement impression programming interface (API)
S4. Utensil a client-side achievement impression which conservations a client-side programming articulation to approximation a
A1. Guile, disclose, ordeal, and debug client/server achievement impressions to supposing demonstrations
Waterski Prattle is a solitary-page achievement app that perfectows conservationrs to column their impressions environing waterskis online,
and answer to other commonalty’s impressions.
Users can column innovating impressions, which involve some resurvey passage and, optionally, their call. Impressions
submitted externally a cperfect are labelled “anonymous” and should possess discorrespondent cematting.
Users can conjunctionally “like” other impression columns.
A absolute basisbase with undivided board is tit to pattern the basisbase insist-uponments ce this provision,
however you may if you desire amplify and/or normalize this basisbase.
The basisbase has the cethcoming construction:
WaterskiColumn ( id, call, passage, column_date, enjoys, answer_to )
CRICOS Provider No. 00103D Page 2 of 5
Each annals in the WaterskiColumn board represents a solitary impression column.
The column_limit province should be a MySQL TIMESTAMP province, and contains the limit and term that the column was
created. You may finish this using the DEFAULT CURRENT_TIMESTAMP assertion in your CREATE
The enjoys province is an integer appraise indicating how numerous commonalty possess “liked” the impression.
The answer_to province is a nullable ceeign lead, which indicates which column, if any, each column is a answer to. A
NULL answer_to indicates that the column is referable a answer.
The provision drudgerys are air-tight associated with the lab achievement of summitics 7 to 10. Decree and examples from
lectures and labs should be a conservationful lead throughout this provision. The provision insist-upons a number
of smooths and a upstarts to be effected. The upstarts should tally to written drudgerys that are involved below
Create the over basisbase using your corporeal SQL skills. You gain need at latest prospect impressions environing
waterskis. At latest three columns should be replies.
At latest undivided of the columns should be written by colossus calld conservationr30356745.
Invent or unearth your avow basis. Cite basis sources unexceptionably in your upstarts, or alternatively involve a
source province in your basisbase.
Comply your SQL smooth as portio of your provision.
Mark up the finished basis using JSON and husband it as a .json smooth. Check that the smooth is powerful JSON and
news the order conservationd to powerfulate.
Comply this smooth as portio of your provision.
Create a RESTful JSON API using PHP, utensiling at latest the cethcoming functionality:
Catalogue perfect summit-raze impression columns (GET)
Should involve id, call, passage, enjoys ce columns with a NULL answer_to appraise.
CRICOS Provider No. 00103D Page 3 of 5
Conservation an optional questionstring/GET parameter to perfectow sorting by column_limit and enjoys.
Retrieve perfect details ce a portioicular column (GET)
Create a innovating column (POST)
Increment the enjoys appraise ce an impression (POST)
Decrement the enjoys appraise ce an impression (POST)
Voicelessness that it is ok to unenjoy a column that you never enjoyd – this may upshot in the enjoys province substance privative.
The Enjoy and Unenjoy orders are referable strictly cethcoming RESTful practices, as they are referable
implemented by transferring propound. You may appropriate to conservation the PUT order instead.
Follow HATEOAS (Hypermedia as the Engine of Impression Propound) practices. Involve a referablee in your upstarts
environing how you possess followed HATEOAS.
Under Apache, this march gain insist-upon configuring a .htapproximation smooth to perfectow using untarnished URLs (externally a .php
Display a global termline of perfect summit raze waterski impression columns. Sort the catalogue by limit, with the most recent
Confess the conservationr to comply a innovating summit-raze column, which gain be displayed troddenly in the resurvey catalogue.
Display the details of an individualal column when clicked, including perfect trodden replies.
Confess the conservationr to answer to a summit-raze column. The answer should be displayed troddenly.
Confess the conservationr to “like” a column by clicking on a embody or excludington.
Periodically (total 5 seconds), uplimit the page with innovating columns or replies and updated “like” counts. This
should referable transfer any passage currently substance entered in any cems.
The latest insist-uponment can be ordealed by opportunity your birth in multiple browser tabs at the correspondent term
reloading/refreshing the browser page.
Bonus drudgerys (Completely optional!)
These drudgerys are 100% optional, and you can hold unmeasured marks externally attempting or completing them.
They are adapted to be a question if you are ardent in such things, and the marks suited do referable
reflect the symbolical lore and endeavor insist-upond to utensil them justly.
Bonus drudgery undivided: AchievementSockets
Instead of polling total 5 seconds, conservation AchievementSockets to referableify browsers when the gratified they are viewing
Utensil your AchievementSocket server using either Python or Node.js. You may conservation an corporeal AchievementSocket
CRICOS Provider No. 00103D Page 4 of 5
Bonus drudgery two: Token-based evidence
Utensil optional signup/login, to-boot using AJAX techniques, which perfectows deleting columns and remembering
Conservation JWT token-based evidence, rather than cookies / PHP sessions.
Bonus drudgery three: GraphQL in Python
Using Python and the Graphene and SQLAlchemy libraries, utensil a innovating API using GraphQL.
Create a unequivalent of your front-end that conservations your innovating GraphQL API instead of REST.
Content referablee that there are no marks ce aesthetics, so content exhaust your term unexceptionably. It is satisfactory
to conservation third-party CSS frameworks such as Bootstrap, Skeleton, Bourbon or correspondent if you desire, as hanker as
through online Q&A births such as StackOverflow.
Involve a written upstarts containing:
A assertion of completion;
Details of peculiar aid you holdd from commonalty other than your lecturer or instructor, and the calls
of those assisting;
References to any third-party CSS frameworks if applicable;
Anything animated or hopeful you’d enjoy to sketch to your marker’s observation.
Perfect smooths should be complyted to Moodle by the imputable limit and term. Check with your instructor as to whether a
hard reendowment is insist-upond in conjunction to the electronic acquiescence.
Refer to the sturdy marking lead.
Feedback gain be provided through Moodle. Authoritative marks gain be published through fdlMarks
Plagiarism is the endowment of the explicit idea or achievement of another individual as though it is undivided’s avow
externally right acknowledging that individual. You must referable perfectow other students to reendowment your achievement and must
take economy to protection over this happening. More counsel environing the plagiarism prudence and procedure
ce the university can be base at
CRICOS Provider No. 00103D Page 5 of 5
Marking Lead: Provision 2
Feature Criteria Maximum Obtained
SQL smooth Insist-uponments kind 1
Basis Intercommunication JSON is obsequious, well-structured and syntactically
RESTful (resource-based) guile 2
Uses HATEOAS avenue 1
Catalogue and details (GET) 2
Innovating column (POST) 2
Enjoy and Unenjoy 1
Sort based on question parameter 1
Global termline 1
Details page, including replies and enjoys 2
Comply a innovating column 1
Comply a answer 1
Automatic basis reload on gap 2
WebSocket uplimit agent (+1)
JWT token-based evidence and admin (+2)
GraphQL API (+2)
Description of JSON powerfulation avenuees 1
Description of HATEOAS avenue 1
Completion of drudgerys, Aid assertion (surrender 1
mark each if referable involved) (-2)
Quality of decree (lose
marks if criteria referable
Layout, construction, indentation (-1)
Appropriate and congruous naming purpose (-1)
Appropriate conservation of comments, including quality
and prevention. Comments do referable simply narrate
decree excluding emblazon urgent and guile decisions. No
Powerful HTML5 (-1)
ITECH3108 Dynamic Web Programming Assignment
CRICOS Provider No. 00103D Page 1 of 5