💶 LexOffice-Verbindung

Trage deinen LexOffice API-Key ein. Den Key findest du unter: app.lexoffice.de → Einstellungen → Integrationen → Öffentliche API

⏱️ Clockify-Verbindung

Trage deinen Clockify API-Key ein. Der Workspace Adsmasters wird automatisch erkannt. Den Key findest du unter: clockify.me → Profil → API

🔗 Supabase-Verbindung

Supabase ist eine kostenlose Datenbank-Plattform. Erstelle ein kostenloses Projekt auf supabase.com und trage die Zugangsdaten hier ein. Die Daten werden nur lokal in deinem Browser gespeichert.
Zu finden unter: Project Settings → API → Project URL
Zu finden unter: Project Settings → API → anon public

🗄️ 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.

Zugänge die du anlegen solltest:

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:

  1. Repository auf github.com erstellen (öffentlich oder privat)
  2. Alle Dateien aus dem stundencheck/-Ordner ins Repository pushen
  3. Repository → Settings → Pages → Source: main Branch aktivieren
  4. URL (https://user.github.io/stundencheck/) im Team teilen
  5. 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