Einstellungen
💶 LexOffice-Verbindung
⏱️ Clockify-Verbindung
🔗 Supabase-Verbindung
🗄️ Datenbank einrichten (einmalig, nur beim ersten Mal)
Öffne den SQL Editor in deinem Supabase-Projekt und führe dieses Script einmalig aus:
-- Kundentabelle
create table if not exists clients (
id uuid primary key default gen_random_uuid(),
name text not null,
am_budget numeric,
adv_budget numeric,
created_at timestamptz default now()
);
-- Mitarbeitertabelle
create table if not exists employees (
id uuid primary key default gen_random_uuid(),
name text not null,
role text not null check (role in ('account_manager','advertising','freelancer','other')),
email text,
active boolean not null default true,
created_at timestamptz default now()
);
-- Stundeneinträge pro Mitarbeiter, Kunde und Monat
create table if not exists entries (
id uuid primary key default gen_random_uuid(),
client_id uuid not null references clients(id) on delete cascade,
employee_id uuid not null references employees(id) on delete cascade,
year int not null,
month int not null,
hours numeric not null default 0,
updated_at timestamptz default now(),
constraint entries_unique unique (client_id, employee_id, year, month)
);
-- Zugriff für alle (team-internes Tool ohne Login)
alter table clients disable row level security;
alter table employees disable row level security;
alter table entries disable row level security;
ℹ️ Row Level Security ist deaktiviert, da das Tool intern genutzt wird. Teile die Supabase-URL und den Key nur mit Teammitgliedern.
👤 Benutzer anlegen
Benutzer werden direkt im Supabase Dashboard angelegt. Gehe auf Authentication → Users → Add user und trage E-Mail + Passwort ein.
Nutzer ·
amazon@adsmasters.de · Passwort: Stunden2026!Admin · deine eigene E-Mail · Passwort: selbst vergeben
Führe danach dieses SQL aus, um die Rollen zu setzen (E-Mail anpassen):
-- Admin-Rolle setzen (E-Mail anpassen!)
update auth.users
set raw_user_meta_data = '{"role":"admin"}'
where email = 'deine@email.de';
-- Nutzer-Rolle
update auth.users
set raw_user_meta_data = '{"role":"user"}'
where email = 'amazon@adsmasters.de';
ℹ️ Unter Authentication → Providers → Email die Option „Confirm email" deaktivieren, damit der Login ohne E-Mail-Bestätigung funktioniert.
🔄 Datenbank-Migration (einmalig)
Führe diese SQLs einmalig im SQL Editor aus:
-- Bearbeiter-Spalten + Vertragsstart für Kunden alter table clients add column if not exists am_employee_id uuid references employees(id) on delete set null, add column if not exists adv_employee_id uuid references employees(id) on delete set null, add column if not exists contract_start date; -- Projektkunden-Felder alter table clients add column if not exists is_project boolean not null default false, add column if not exists project_end date; -- Monatliche Korrekturen pro Kunde create table if not exists adjustments ( id uuid primary key default gen_random_uuid(), client_id uuid not null references clients(id) on delete cascade, year int not null, month int not null, am_hours numeric not null default 0, adv_hours numeric not null default 0, note text, updated_at timestamptz default now(), constraint adjustments_unique unique (client_id, year, month) ); alter table adjustments disable row level security;
🚀 GitHub Pages Hosting
So hostest du das Tool auf GitHub Pages, damit alle Mitarbeiter darauf zugreifen können:
- Repository auf github.com erstellen (öffentlich oder privat)
- Alle Dateien aus dem
stundencheck/-Ordner ins Repository pushen - Repository → Settings → Pages → Source: main Branch aktivieren
- URL (
https://user.github.io/stundencheck/) im Team teilen - Jeder Mitarbeiter gibt einmalig Supabase-URL und Key in den Einstellungen ein
cd stundencheck git init git add . git commit -m "Initial commit" git remote add origin https://github.com/DEIN-USER/stundencheck.git git push -u origin main