CS139: Web Application Development

Coursework Assignment


Introduction

You will be developing a brand-new web application as your coursework for this module. It may seem like a daunting task, but you’ll be able to use ideas from the labs, and you will get credit not only for meeting the specification, but also for exceeding it.


Important Dates

Coursework Issued: Monday 15 February 2021 9am (week6) 

Tabula Submission: Wednesday 10 March 2021 12pm (week9)

Functionality Verification: lab sessions 15,16,17 March 2021 (week10)


The Task

Next year you will be moving out of your luxurious on-campus accommodation into shared houses. This introduces the issue of shared responsibility for household cleaning like tidying the communal space, disinfecting the bathroom, or cleaning the kitchen. Keeping track of whose turn it is to do the chores can be a difficult task without some sort of tool. For example:

•  I live in a house with 3 other people

•  I enter a set of household chores

•  A name is picked for each chore (according to some fair allocation)

•  Each housemate receives a notification to do the chore before a given date

•  Each housemate can mark the chore complete (with optional photograph)


Hey, Ferb, I know what we’re gonna do today!

You will be developing The Chorinator! (Please feel free to come up with your own awesome application names). The basic functionality for this application is as follows:

•  User registration

o  Minimum to include: name, email, password

•  User authentication

o  Minimum to include; email, password (including secure password storage)

•  Adding a chore

o  Minimum to include name, description, frequency (i.e., every day, every week, every fortnight, one-time)

•  Splitting the chores between the housemates

o  Minimum to include; allocation strategy (i.e., random but fair distribution, same chore each time)

•  Marking chores complete by the housemate

•  Displaying the status of chores

o  Minimum to include: pending/complete, upcoming chores

•  Notification of user’s active chore, and the deadline date

In addition to implementing the basic specification above, 10% of the coursework mark will be awarded for implementing additional features.

Possible ideas for additional features:

•  Email notifications

•  Photo upload of a completed chore

•  Ranking for completed chore by fellow housemates (5 stars)

•  Multiple housemates per chore (for big clean-ups)

•  ...

You may have other interesting and useful ideas, which will also earn credit. Build the best application that you can.


Deliverables

You should provide all files in a zip file to be uploaded to Tabula by noon on Wednesday 10 March 2021. You will then be expected to demonstrate your application to a marker in your usual lab session in the final week of term (15,16,17 March 2021).

A complete application should:

•  Implement the functionality of the basic specification above.

•  Have a consistent styling.

•  Consider usability and accessibility to disabled users.

•  Consider security issues.

•  Make use of JavaScript and AJAX to enhance the user experience.

•  May implement additional features to attain the additional 10%.

The submission should include a README file describing the application's main features, with any additional features clearly marked and explained from the user's perspective.

During the demonstration session, you will be asked to demonstrate your solution to a marker and allow them to interact with your application. No changes in the code will be allowed between Tabula submission and the demonstration session


Support

The tutors will be happy to provide some help on this coursework assignment during the lab sessions; however, that help won't be as substantial as for the lab assignments (so it makes sense to complete those). As things may get busy, you may wish to contact the tutors with any coursework questions earlier rather than later. All work in the final submission should be your own: sharing ideas is welcome; sharing code is not.


Allowable Frameworks

The following libraries and frameworks may be used for the project.

•  Google Fonts

•  jQuery and jQuery UI

•  Reset CSS

No other frameworks or libraries are permitted for the core requirements. You may use additional libraries (such as Bootstrap) to support your additional features.


Marking

Your coursework will be marked at the marking day in the final week of term. One of the tutors or myself will sit down and give you the opportunity to demonstrate how your application meets the specification and any features that you’ve added beyond it.

The marking criteria are as follows:

•  20% - Appropriate markup

•  15% - Design and usability

•  35% - Functionality and implementation quality

•  20% - Security

•  10% - Additional functionality (1%, 3% or 5% for small/medium/big feature at the marker's discretion; you may add more than one feature)

We are excited to see how you solve the problem and the solutions you produce!