CodeYourFuture / CodeYourFuture/Module-Data-Groups

Build an alarm clock app

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
🏕 Priority Mandatory 🐂 Size Medium 📅 Sprint 3 Core Module-Data-Groups Submit:PR
Dominant language
JavaScript
Stars
1
Forks
326
Avg merge
3h 25m
Merged PRs (30d)
2

Description

### 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](https://curriculum.codeyourfuture.io/guides/getting-help/asking-questions/).
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](https://simpledev.io/lesson/create-branch-gh-desktop-1) based on the `main` branch for each project.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.