Skip to content

matheushenriquefs/pomodoro-timer

Repository files navigation

Pomodoro Timer

A simple Pomodoro web application built with Vue.js, Typescript and Docker. In addition to the chosen tech stack, the project adheres to essential coding best practices to improve its maintainability, readability, and scalability. Throughout the project the following principles were taken into account: clean code, Don't Repeat Yourself (DRY), Keep It Simple, Stupid (KISS), You Aren't Gonna Need It (YAGNI), Separation Of Concerns (SOC), and good documentation.

Demo

Pomodoro Timer app demo

Techs

Prerequisites

Make sure you have the following dependencies installed on your system:

Docker >= 23.0.5
Docker Compose >= 2.17.3

Project Setup

  1. Clone this repository.
  2. Copy the .env.example file to .env.
cp .env.example .env

Running The Application

Start the development server using Docker Compose.

docker compose up

The application will be running in development mode by default. Open your browser to see it.

Run Unit Tests

If the container is already running execute unit tests by running the following:

docker exec -it pomodoro-timer npm run test-unit

Type-Check, Compile and Minify for Production

To prepare the project for production, run:

docker exec -it pomodoro-timer npm run build

Preview For Production

  1. Change the NODE_ENV value in .env.
  2. Run the application to preview the production build locally. Open your browser to see it.
docker exec -it pomodoro-timer npm run preview