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

Research direction

Start with the coursework in Sprint-3/alarmclock and read the acceptance criteria before running the app. Check the existing entry points and implement the timer, alarm controls, sound, and background change described there. Done means every listed scenario works, including the initial 00:00 state.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Feature
Difficulty
2/5
Estimated time
Half a day
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.