Skip to content

Build an alarm clock app #61

@codebyshay

Description

@codebyshay

Link to the coursework

https://github.com/CodeYourFuture/Module-Data-Groups/tree/main/Sprint-3/alarmclock

Learning Objectives

  • Develop a web app according to a specification
  • Practice working with timers in JavaScript

Why are we doing this?

These challenges are designed to develop your problem-solving skills.

In this exercise you need to build an alarm clock which meets the following criteria:

Acceptance criteria

  • Given the user has entered a number in the input field
    When the user clicks the "Set Alarm" button
    Then the "Time Remaining" title should update to show the entered number in mm:ss format

  • Given the alarm is set with a valid time
    When one second passes
    Then the "Time Remaining" title should decrement by 1 second

  • Given the alarm is set with a time of 00:00
    When the timer reaches 00:00
    Then the alarm sound should play continuously

  • Given the alarm sound is currently playing
    When the user clicks the "Stop Alarm" button
    Then the alarm sound should stop playing

  • Given the alarm is set with a time of 00:10
    When the timer reaches 00:00
    Then the background colour should change
    And the alarm sound should play

  • Given the user has not set an alarm
    When the page first loads
    Then the "Time Remaining" title should show 00:00
    And no alarm sound should play

Maximum time in hours

4

How to get help

General advice on asking for help can be found on the curriculum pages.
You can always share your blockers in your class channel and get help from your colleagues.

Submission & Review

  1. Fork the coursework repo to your Github account.
  2. Make a branch for this project.
  3. Make regular small commits in this branch with clear messages.
  4. When you are ready, open a PR to the CYF repo, following the instructions in the PR template.

There are several projects in this repo. Make a new branch based on the main branch for each project.

Metadata

Metadata

Assignees

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions