TimeTracker is a modern, responsive React application designed to help you manage your time effectively. It features multiple concurrent timers, a stopwatch, and audio notifications to keep you on track. Built with performance and user experience in mind, it utilizes local storage to persist your timers across sessions.
- Multiple Timers: Create and manage multiple countdown timers simultaneously.
- Stopwatch: A precise stopwatch for tracking elapsed time.
- Smart Controls: Start, pause, reset, and delete timers with ease.
- Persistance: Timers are saved to your browser's local storage, so you never lose your progress.
- Audio Notifications: Get alerted with a sound when a timer completes.
- Responsive Design: Works seamlessly on desktop and mobile devices.
- Clean UI: A polished interface built with Tailwind CSS and Lucide icons.
- Frontend Framework: React
- Language: TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Icons: Lucide React
- State Management: React Hooks (useState, useEffect, custom hooks)
Follow these instructions to get a copy of the project up and running on your local machine.
Ensure you have Node.js installed on your system.
-
Clone the repository:
git clone https://github.com/ashishvora1997/time-master.git cd time-master -
Install dependencies:
npm install
Start the development server:
npm run devOpen your browser and navigate to http://localhost:5173 (or the port shown in your terminal).
To build the application for production:
npm run buildTo preview the production build:
npm run previewsrc/
├── components/ # Reusable UI components (Header, TimerCard, etc.)
├── hooks/ # Custom React hooks (useTimers, useNotification)
├── types/ # TypeScript type definitions
├── utils/ # Utility functions (time formatting)
├── App.tsx # Main application component
└── main.tsx # Entry point
- Add a Timer: Enter a title, hours, minutes, and seconds, then click "Add Timer".
- Manage Timers: Use the play/pause, reset, and delete buttons on each timer card.
- Switch Views: Toggle between "Timers" and "Stopwatch" using the top navigation buttons.
- Notifications: Allow browser notifications when prompted to receive alerts when timers finish.
This project is open source and available under the MIT License.