A countdown timer application built with Angular 19. Users can set an event name and a future date, and the app will display a live countdown to the selected date.
- Clone the repository and navigate to the project directory:
- Run
npm installto install the required dependencies. - Run
ng serveto start the development server. - Open your browser and navigate to
http://localhost:4200/to view the application.
The application is hosted on Netlify at this link.
CD pipeline on Netlify is set up to automatically deploy the latest changes from the main branch of the GitHub repository.
To build the project run:
ng buildThis will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.
To execute unit tests with the Karma test runner, use the following command:
ng testUI
- Add UI element (e.g.button) to reset event and countdown
- Switch date picker to datetime picker. Improved UX, enabling user to select a specific time during the day
- Enable user input on date picker for improved accessibility - tabbing on calendar icon works, but text input is disabled
Technical
- Modularise code for better readability and maintainability (e.g. create separate components for countdown and form)
- Format locale to YYYY-MM-DD (currently MM-DD-YYY)
- Extend test coverage
endDateretrieval and parsing from local storage takes longer thaneventName’s retrieval - rendering strategy could be improved
- Date always refers to the start of the day. For example, let’s say I have a trip planned on 2024-06-21, then I would like the countdown to refer to the start of that day
- Because of point 1, current date, as well as past dates, are disabled in date picker
- When countdown hits 0, display
"00 days, 00 h, 00 m, 00 s". User should input a new date or refresh the page to start again



