A minimal and modern time tracking application built with Astro.js, Supabase, and Tailwind CSS.
- Clean and modern UI with a light, retro color palette
- Simple time entry management
- Project-based time tracking
- Real-time duration calculations
- Responsive design
- Node.js 16 or higher
- npm or yarn
- Supabase account
- Clone the repository:
git clone <repository-url>
cd hours-tracker
- Install dependencies:
npm install
- Create a Supabase project and set up the following tables:
-- Create projects table
create table projects (
id uuid default uuid_generate_v4() primary key,
name text not null,
description text,
rate_per_hour numeric(10,2),
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);
-- Create time_entries table
create table time_entries (
id uuid default uuid_generate_v4() primary key,
project_id uuid references projects(id) not null,
description text not null,
start_time timestamp with time zone not null,
end_time timestamp with time zone,
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);
- Copy the environment variables:
cp .env.example .env
- Update the
.env
file with your Supabase project credentials:
PUBLIC_SUPABASE_URL=your-project-url
PUBLIC_SUPABASE_ANON_KEY=your-anon-key
- Start the development server:
npm run dev
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production build
- Astro.js - Web framework
- Supabase - Backend and database
- Tailwind CSS - Styling