PHP and JS Module
PHP and JS Module
Web Technologies
PHP and JavaScript Module
Submitted by:
Manuel Schaffner - CH (Lead Expert)
Siew Hwa Kang - SG
Volha Rabychyna - BY
Kevin Chong Shiuh Koong - TW
Ling Zhang - CN
Tsukasa Kamiyama - JP
Tanja Otte - DE
Zoltan Sisak - HU
Dalibor Dvorski - CA
Hassan Ibno El Fata - MA
Jaafar Almoadhen - BH
WSC2019_TP17_pre_EN_PHP_and_JS
Contents
Contents ............................................................................................................................................................ 2
Introduction ...................................................................................................................................................... 3
Description of project and tasks ..................................................................................................................... 3
Phase one............................................................................................................................................................................. 3
Phase two .......................................................................................................................................................................... 10
Notes ................................................................................................................................................................................. 15
Phase one
• Use your database (dbYY_competitor_day2) and import the schema/dump provided
• Extend your database to be able to save
• Admin-users [insert data directly into db-table as specified below],
• Attendee login/profile [firstname, lastname, username, email, photo, linkedin-url, password-hash],
• Registrations of attendees to events including additional fields for registration_type [early_bird = 15% off
until T-30days | general | vip = 20% plus], registration_date, calculated_price, event rating [0:bad,
1:average, 2:excellent]. The validity (T-30days) of early_bird does not need to be validated.
• Create an admin interface (SSR) using the templates provided to
• Manage events (create, read, update),
• Create an attendee list and
• A rating report diagram for an event, showing the total number of ratings and the percentage of ratings
for 0/1/2-rating
Feature: A2 - Manage registration: As a developer I want to send/read event registration data to/from the
event application for display/persisting
Feature: A3 - Rate registered/attended events: As a developer I want to send event rating data to the event
application so that so that it is persisted
Feature: A4 - Login and Logout as visitor: As a developer I want to login/logout a visitor so that i can
read/save data
Feature: A5 - Create new visitor profile/login: As a developer I want to create a visitor profile/login so that i
can use it for login
Phase two
Using the RESTful API (all data coming/going into database), create a frontend (SPA) for visitors/attendees to
browse information about the events, filter events by date-range (start date on/after), create a login/profile,
register fo an event, download an ical-file for a registered event, rate an registered/attended event.
Interaction should show error/feedback messages based on response from API where appropriate.
At this stage of the development, in order to browse events, it is necessary for a visitor to create a login/profile
first. At a later stage, events will be visible to public and when registering for an event, the visitor can use his
existing login or needs to create a new one first.
<yellow bubbles are to show name/class/id of elements for frontend-testing only>
Feature: F2 - Browse events - As a visitor I want to browse events so that I see interesting events
Notes
• When you are done with the first phase resp. after lunch you may continue with the second phase. For the
second phase you can use a fully working implementation of the first phase (API) using a specified url
(http://competitorYY.wsad.local/apimock/v1/).
[This does not apply for the pre TP – no API is provided here]
• Competitors must use one of the server-side and client-side frameworks/libraries that are provided.
• The provided template for the admin interface should be used. It can be enhanced to get better functionality
for your site. The visual design of the admin interface will not be assessed.
The design of the visitor interface can be based on the template of the admin interface. The visual design of
the visitor interface will be assessed: a simple, clean and attractive design is expected
• For the admin interface it is important to use the selectors (class, id) as provided in the template. For the
visitor interface it is important to use the selectors (class, id) as specified in the screen mockup (yellow
callouts).
• The specified database tables need to be implemented as provided. More tables may be added if needed.
Provide a final SQL-dump and ERD screen as specified below.
• All API should fulfill all requirements as stated in the description. All prefix, RESTful-URL and HTTP-Method
from given API link should be implemented correctly and not be changed.
• Changes made in the data need to be propagated between frontend and backend in both directions.
• Create the following users to login to the system - they will be used for assessment:
Admin with username: adminuser1 and password: adminpass1
Attendee with username: attendee1 and password: attendee1pass
• For the rating report graphic, you can use one of the provided JS-libraries (Charts.js, D3.js)
Web Service / REST-API will be assessed with the automated test-framework provided. Additional data may
be used to test dynamic behavior.
It is recommended that you run the automated tests for REST-API after development locally or at least after
upload to the server. Instructions to setup and use tests for API: see README.md in tests_api-php.tar.gz.
The tests for frontend interaction (admin & visitor interface) are for reference/demo only, to collect feedback
if/how this could be used in future competition. Instructions to setup and use tests for backend/frontend-GUI
(optional): see README.md in tests_gui-ja.tar.gz.
ITEM DESCRIPTION
Marking Scheme
Every Test Project must be accompanied by an associated marking scheme matching the assessment criteria as
given in the Technical Description (Marking Summary). For each of these criteria a detailed list of aspects to be
assessed must be defined (this would be a draft proposal that is discussed and finalised during preparation time
at the Competition).
3 Website Design 2 2 4
4 Layout 2 2