,
School of Science
Final Project – COSC2675 Rapid Application Development
1. Overview
The objective of this project is to assess high level web development skill including task analysis, fast development and deployment.
If there are questions, you must ask via online forums or similar communication channels. You should phrase your question in a general manner. The teaching team is not supposed to debug for you. Do not post your source code or your proposed solutions.
2. Assessment details
You are asked to implement a prototype of world clock, called “Clock+”, which supports multiple time zones. See a sample frontpage shown in the next page. You need to clearly state your name, your email address, the highest level that you attempt and your tutor group (e.g. Friday 4:30pm Group, Monday 8:30am Group) on the top and also in the footer.
Your application must have a database which stores a list of cities with time zone info. Programs attempting DI level or higher should import data from a json file “zone.json” (downloadable on Canvas). Below is the entry for Melbourne.
{
“value”: “AUS Eastern Standard Time”,
“abbr”: “AEST”,
“offset”: 10,
“isdst”: false,
“text”: “(UTC+10:00) Canberra, Melbourne, Sydney”, “utc”: [
“Australia/Melbourne”,
“Australia/Sydney” ]
Assessment Type: Individual assignment Submit online via Canvas
Marks awarded for meeting requirements as closely as possible. Clarifications/updates may be made via announcements/relevant discussion forums.
Due date: 24 hours after release;
Please check Canvas → Assignments → Final Project for the most up to date information.
As this is a major assessment replacing the exam. Late submission will NOT be accepted unless there is a granted special cosideration request or ELP.
Weighting: 30 marks /100
}
Page 1 of 7
,
(Screenshot 1)
======================== PASS LEVEL ==================
[Header]
Your application should have a header. It has a “Contact Us” button which is simply a mailto link to your student email. The header also has a “Showcase” button to bring the application back to the main page.
[Footer]
Your application has a footer, showing your info as in Screenshot 1. It also has links to Facebook, Twitter and LinkedIn. You can link to actual accounts or simply the home page of these social media sites.
[City list]
At this level, your application can show the current time of the default city, Melbourne, and more than two other cities from different time zones. You can use a different city as the default city if you are currently in that city. For a displayed city, the time difference between the city and the default city is also shown, e.g Toyko is “-1h” compared to Melbourne (See Screenshot 1).
Note: time and time difference must be correct. Use the data in “zone.json” for reference.
[Mode]
In addition, your application shows whether a city is in one of the four modes “Business time”, Business overtime”, “Personal time” and “Sleeping time” using the following rule:
Page 2 of 7
1. Business time:
2. Business overtime: 3. Person time:
4. Sleepingtime:
local time 9:00am – 5:59pm
local time 6:00pm – 7:59pm
local time: 8:00am – 8:59am, 8:00pm – 10:59pm localtime:11:00pm–7:59am
,
As in the above sample page, the mode information is shown as an small icon underneath the time.
======================== Credit LEVEL ========================
NOTE: You should only attempt this level if you have completed PASS level.
[24 vs 12]
At this level, your application supports a checkbox “24-Hour Clock” which can toggle between 24- hour display and 12-hour display. For example:
(Screenshot 2)
[Yesterday, today and tomorrow]
Also your application will display “yesterday” if the date of that local time is one day behind the date at the default city. In the above example, San Francisco is at 6:08pm, one day behind Melbourne. If that city is in the same day as that of the default city, your application shows “today”. It should show “tomorrow” if that is one-day ahead.
======================== Distinction LEVEL ========================
NOTE: You should only attempt this level if you have completed CREDIT level.
From this level, you are required to import city data from “zone.json” (downloadable on Canvas).
[Add cities]
At this level, your application can add cities by clicking the “+” button at the end of the city list (See Screenshot 1). If the entered city is in your database, then the city will be added to the list.
[Delete cities]
Your application also supports deletion. When mouse over a city, an “X” will appear on its top right corner (See Screenshot 3 below). By clicking that “X”, the city will be removed from the list. If all cities on the list have been removed, then you should display a message, e.g. “Click + to add a city”.
You may show “X” without mouse over if you have trouble with that. Minor mark deduction will apply. Page 3 of 7
,
[Color Themes]
(Screenshot 3)
Your application at the DI level can toggle between three color themes (See Screenshot 4 below). Note, you are free to design the color themes as long as these three are different.
(Screenshot 4)
======================== 80+ LEVEL ========================
NOTE: You should only attempt this level if you have completed DISTINCTION level.
[Search Suggestions]
When type a city name in the add menu, your application can dynamically suggest the cities that may match the search term typed so far. See example in Screenshot 5. When entered ‘ca’, the top 5 suggestions are displayed; only four matches left when entered ‘cas’; one only remains when entered ‘casa’. User can click a suggestion to add that city (e.g. Newcastle in the example below).
The search/add can be abandoned by the “Cancel” button and cleared by the “Ä” or “x” button.
(Screenshot 5)
Page 4 of 7
,
[UTC/GMT]
Your application can show UTC and GMT time without a city. User can add the last two items in Screenshot 6 simply by adding “UTC+10” and “GMT-5” (see below).
(Screenshot 6)
======================== 90+ LEVEL ========================
NOTE: You should only attempt this level if you have completed 80+ level.
[Scroll bar]
Your application at this level has a scroll bar. By dragging the scroll bar, user can move the clocks forward or backward in synchrony. The offset is then showing above, e.g. +2h for moving forward for 2 hours, -1.5h for moving backward for 1.5 hours.
The day information, e.g. “yesterday”, “today”, “tomorrow” will be updated accordingly when dragging the scroll bar. If the time is beyond yesterday and tomorrow, then the actual date is display. See Screenshot 7. The date shown for Melbourne is Sunday, June 14, after moving forward for 38 hours from Friday, June 12, 11am. That is the same for Tokyo while that is “tomorrow” for San Francisco.
(Screenshot 7)
When click the “x” button next to the offset, e.g. “+1d 14h” in Screenshot 7, the clock will go back to
the current time.
Page 5 of 7
,
[Rearrange cities]
As an advanced feature, cites can be re-arranged by drag and drop as shown in Screenshot 8.
(Screenshot 8)
5. Referencing guidelines
If you have used sources of information other than the contents directly under Canvas→Modules, you must give acknowledge the sources and give references. Add a code comment near the work to be referenced and include the reference.
6. Academic integrity and plagiarism (standard warning)
Academic integrity is about honest presentation of your academic work. It means acknowledging the work of others while developing your own insights, knowledge and ideas. You should take extreme care that you have:
• Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have quoted (i.e. directly copied), summarised, paraphrased, discussed or mentioned in your assessment through the appropriate referencing methods,
• Provided a reference list of the publication details so your reader can locate the source if necessary. This includes material taken from Internet sites.
If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work and ideas of another person without appropriate referencing, as if they were your own.
RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism covers a variety of inappropriate behaviours, including:
• Failure to properly document a source
• Copyright material from the internet or databases
• Collusion between students
For further information on our policies and procedures, please refer to the University website.
7. Assessment declaration
When you submit work electronically, you agree to the assessment declaration.
Page 6 of 7
,
8. Submission
8.1 Submission on Canvas -> Assignments -> Final Project -> Submit
* Upload the zipped source file onto Canvas (the first tab from left). * Copy n paste README.md in the Text Entry (the second tab).
* Copy n paste your Heroku URL into the third tab (Website URL).
8.2 The submission must be individual. 8.3 You are free to use any Gem.
Click Submit Click Resubmit. Click Resubmit.
8.4 Your application is expected to be production ready. You are required to deploy the final version onto Heroku.
8.5 There is no need for your application to look exactly like the above example. You can make necessary adjustment to improve the design. However the aforementioned functionalities are the minimum requirement and should be well supported.
8.6 In the README.md file of your application, you should state
– Heroku deployment URL and the last Heroku deployment log.
Extra: You may find the following info helpful.
• Rails API for timezone: https://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html • Ruby API for timezone: https://www.tutorialspoint.com/ruby/ruby_date_time.htm
• For icons, e.g. twitter icon: https://fontawesome.com/icons?d=gallery&q=twitter
• Input event callback: https://www.w3schools.com/jsref/event_oninput.asp
Submission failed to run with provided docker/vagrant image would not be marked.
Rubric
Assessment Task
Marks
Pass Level
50 – 59%
Credit Level
60 – 69%
Distinction Level
70 – 79%
80+ Level
80 – 89%
90+ Level
90 – 100%
Page 7 of 7