TimR is a time-tracking web app designed for freelancers. It's built with Node.js and Express for the server-side, MongoDB for the database, and Bootstrap along with Vanilla JavaScript for the frontend. It enables users to easily track time spent on various tasks without the hassle of complex setup.
I've used GPT-Pilot v2 and OpenAI GPT-4 to generate this project. Experiments using GPT-3.5 were not successful. The generation of this project required 1 hour and a $10 expenditure on GPT-4.
The application leverages Node.js and Express for robust server-side functionality, MongoDB for efficient data storage, and Bootstrap for responsive UI design. User sessions are managed through express-session for secure authentication. The app's architecture includes a separation of concerns with specific directories for models, routes (including API endpoints), and views, ensuring maintainability and scalability.
- User Registration and Login: Simple and secure access using a username and password.
- Time Tracking: Users can start and stop timers, entering descriptions for tasks, with no overlapping entries allowed.
- Data Visibility: The homepage displays the 10 most recent entries, with a detailed report page for viewing entries within a selected date range.
- Reports and Downloads: Users can download their time entries in CSV format and view a bar chart of time spent per day within the report's date range.
- CRUD Operations: Users have the ability to edit and delete time entries directly from the main page.
- Node.js
- MongoDB
- npm
- Clone the repository.
- Copy
.env.example
to.env
and configure the MongoDB connection string and session secret. - Install dependencies with
npm install
. - Start the server using
npm start
. Access the app through the port defined in your.env
file.
Copyright (c) 2024.