This is a real-time timer application with a Next.js frontend and a Node.js/Express backend. It allows multiple users to create, start, pause, and stop timers, with updates reflected in real-time across all connected clients.
- Create new timers and countdowns with a color-coded progress bar and visual cues for completion status.
- Start, pause, and stop timers
- Real-time updates across all connected clients
- Modern Material-UI design
- User Management: Timers are associated with specific users, and users can set a friendly name.
- Admin View: An admin user can view all active users and create timers for any specific user.
This project is a monorepo containing two main parts:
client/: The Next.js frontend application.server/: The Node.js and Express backend server.
-
Clone the repository:
git clone https://github.com/nikalomoiris/timer-app.git cd timer-app -
Install dependencies for both client and server:
# For the server cd server npm install # For the client cd ../client npm install
You will need to run the client and server in separate terminal windows.
-
Start the server:
Open a new terminal, navigate to the
serverdirectory, and run:cd server node index.jsThe server will start on
http://localhost:3001. -
Start the client:
Open another terminal, navigate to the
clientdirectory, and run:cd client npm run devThe client application will open in your browser at
http://localhost:3000.
- Admin View:
http://localhost:3000/ - User View:
http://localhost:3000/user
- Frontend:
- Backend: