- Read the sections
Functional Requirements,Technical RequirementsandUI Design. - Create a UML Class diagram representing your architectural design.
- Implement the functional requirements in a forked project, on your
main/masterbranch.
- Your watch must display the current local time in this format:
hh:mm:ss. - It must show the current time and increment every second.
- It must have a trailing zero if the hour, minute, second is a single digit number (e.g.
1:5:9should display01:05:09instead).
- Your watch has a
modebutton that behaves as follows:- When pressing it one time: the hours will visually blink every second, and it is now editable.
- When pressing it two times: the hours will stop blinking and are not editable anymore, it is now the minutes that are blinking and are now editable.
- When pressing it three times: everything stop blinking, and nothing is editable anymore.
- While any part of the time is editable, the time still advances and the UI is still updating.
- Your watch has an
increasebutton that behaves as follows:- If the hours are editable, it will increase by one when pressing this button. When reaching
23, the next increase will put it to00. - If the minutes are editable, it will increase by one when pressing this button. When reaching
59, the next increase will put it to00and the hours will be increased by one.
- If the hours are editable, it will increase by one when pressing this button. When reaching
- Your watch has a
lightbutton that behaves as follows:- When pressing it, it will toggle a change of color in the watch: the background behind the displayed time will switch from yellow (
#FBE106) to white (#FFFFFF), and vice versa.
- When pressing it, it will toggle a change of color in the watch: the background behind the displayed time will switch from yellow (
- Typescript vanilla, no architectural framework (Angular, Vue, React) is allowed.
- Your architectural design must be in MVC (Model, View, Controller). Class names should include
Model,View,Controllerwhen relevant (i.e.CarModel,CarView, etc.).
Note: this is here to give you an idea, you are free to do your own design.
- Read the sections
Functional RequirementsandUI Design. - Update your existing UML Class diagram to represent your new architectural design.
- Implement the functional requirements in the same branch as
Part A.
- We now want to display multiple clocks. Add a button
Addthat allow to display an additional clock. - By default, the new clock displays the local time.
- Add a way (to your liking) to select a timezone (i.e. GMT+1, GMT+2, etc.) that will be applied to the newly created clock instead of using the local timezone.
- All the clocks must have their
secondssynchronized.
- Add a button to switch the time display of a given clock between AM/PM and 24H format.
- Add a reset button to reset the displayed time. This only resets the time value, but not the format, light, editing mode. This keeps the given timezone.
- Add a button for each clock to remove them completely from the page.
- (Extra) Make every clock draggable and being able to switch position between themselves.
Note: this is here to give you an idea, you are free to do your own design.
Template typescript project
npm install
npm run start

