Base app architecture:

    Route groups for customer, staff and owner.
* Reusable design system with around 20 UI components.
* Complete Prisma schema.
* Authentication with email/password and Google.
* Role and permission model.
* Protected routes.
* Clean separation between features, services, components and shared utilities.
This commit is contained in:
Stefan Lazic committed 2026-08-02 17:47:23 +01:00
1 parent 468d163299
commit 090646fdfd
201 files changed
+31984

No files matched your search

+150
View File
@@ -0,0 +1,150 @@
<!DOCTYPE html>
<html lang="en">
<head>
<script>
window.FontAwesomeConfig = {
autoReplaceSvg: 'nest'
};
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Staff Schedule — TrimTime</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: { ink: '#111b15', stone: '#f4f6f4', surface: '#ffffff', muted: '#6c7870', line: '#e1e7e2', accent: '#10b981' },
fontFamily: { sans: ['Inter', 'sans-serif'] },
borderRadius: { jumbo: '1rem', tile: '0.75rem' }
}
}
}
</script>
</head>
<body class="bg-stone text-ink min-h-screen pb-32">
<header class="fixed top-0 left-0 right-0 z-50 px-6 py-6 bg-white/80 backdrop-blur-md border-b border-line flex items-center justify-between">
<div class="flex flex-col">
<div class="flex items-center gap-2">
<h1 class="text-xl font-bold tracking-tight">Schedule</h1>
<i class="fa-solid fa-chevron-down text-[10px] text-muted"></i>
</div>
<!-- Owner-only indicator -->
<div class="flex items-center gap-2 mt-1">
<div class="w-1.5 h-1.5 rounded-full bg-accent animate-pulse"></div>
<p class="text-[8px] text-muted font-bold uppercase tracking-widest">View: All Staff Members</p>
</div>
</div>
<button class="w-10 h-10 bg-stone rounded-full flex items-center justify-center text-muted">
<i class="fa-solid fa-magnifying-glass text-xs"></i>
</button>
</header>
<main class="pt-24 px-6">
<!-- Week Navigator -->
<section class="mb-8">
<div class="flex justify-between items-center mb-6">
<span class="text-sm font-bold">Oct 12, 2024</span>
<div class="flex gap-2">
<button class="w-8 h-8 rounded-full border border-line flex items-center justify-center text-xs"><i class="fa-solid fa-chevron-left"></i></button>
<button class="w-8 h-8 rounded-full border border-line flex items-center justify-center text-xs"><i class="fa-solid fa-chevron-right"></i></button>
</div>
</div>
<div class="flex gap-3 overflow-x-auto no-scrollbar">
<button class="w-14 py-4 bg-white border border-line rounded-xl flex flex-col items-center shrink-0">
<span class="text-[8px] font-bold uppercase text-muted mb-1">Thu</span>
<span class="text-sm font-bold">10</span>
</button>
<button class="w-14 py-4 bg-white border border-line rounded-xl flex flex-col items-center shrink-0">
<span class="text-[8px] font-bold uppercase text-muted mb-1">Fri</span>
<span class="text-sm font-bold">11</span>
</button>
<button class="w-14 py-4 bg-ink text-white rounded-xl flex flex-col items-center shrink-0 shadow-lg scale-110">
<span class="text-[8px] font-bold uppercase text-white/50 mb-1">Sat</span>
<span class="text-sm font-bold">12</span>
</button>
<button class="w-14 py-4 bg-white border border-line rounded-xl flex flex-col items-center shrink-0">
<span class="text-[8px] font-bold uppercase text-muted mb-1">Mon</span>
<span class="text-sm font-bold">14</span>
</button>
</div>
</section>
<!-- Timeline -->
<div class="space-y-6">
<!-- 9:00 Slot -->
<div class="flex gap-4">
<div class="w-10 text-right"><span class="text-[10px] font-bold text-muted uppercase">09:00</span></div>
<div class="flex-1 space-y-2">
<div class="bg-white p-4 rounded-xl border border-line flex items-center gap-3 shadow-sm">
<div class="w-1 h-8 bg-blue-400 rounded-full"></div>
<div class="flex-1">
<p class="text-xs font-bold">John Doe</p>
<p class="text-[9px] text-muted uppercase tracking-widest">Marcus Reed</p>
</div>
</div>
</div>
</div>
<!-- 10:00 Slot -->
<div class="flex gap-4">
<div class="w-10 text-right"><span class="text-[10px] font-bold text-muted uppercase">10:00</span></div>
<div class="flex-1 space-y-2">
<div class="bg-white p-4 rounded-xl border border-line flex items-center gap-3 shadow-sm">
<div class="w-1 h-8 bg-purple-400 rounded-full"></div>
<div class="flex-1">
<p class="text-xs font-bold">Mike Ross</p>
<p class="text-[9px] text-muted uppercase tracking-widest">Leo Vance</p>
</div>
</div>
</div>
</div>
<!-- 11:00 (Mixed Staff View) -->
<div class="flex gap-4">
<div class="w-10 text-right"><span class="text-[10px] font-bold text-muted uppercase">11:00</span></div>
<div class="flex-1 grid grid-cols-2 gap-2">
<div class="bg-white p-3 rounded-xl border border-line flex items-center gap-2 shadow-sm">
<div class="w-1 h-6 bg-blue-400 rounded-full"></div>
<div class="flex-1 min-w-0">
<p class="text-[10px] font-bold truncate">Sarah M.</p>
<p class="text-[8px] text-muted truncate">Marcus</p>
</div>
</div>
<div class="bg-white p-3 rounded-xl border border-line flex items-center gap-2 shadow-sm">
<div class="w-1 h-6 bg-emerald-400 rounded-full"></div>
<div class="flex-1 min-w-0">
<p class="text-[10px] font-bold truncate">Dave P.</p>
<p class="text-[8px] text-muted truncate">Sasha</p>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- Navigation context: Owner/Staff same layout -->
<nav class="fixed bottom-0 left-0 right-0 z-50 bg-[#0c0c0c] text-gray-400 py-4 px-10 border-t border-white/5 flex items-center justify-between">
<a href="StaffCalendar__mobile.html" class="flex flex-col items-center gap-1 text-white">
<i class="fa-solid fa-calendar-days text-xl"></i>
<span class="text-[10px] font-medium">Calendar</span>
</a>
<a href="StaffCurrent__mobile.html" class="flex flex-col items-center gap-1 hover:text-white transition-colors">
<i class="fa-solid fa-scissors text-xl"></i>
<span class="text-[10px] font-medium">Current</span>
</a>
<a href="StaffCustomers__mobile.html" class="flex flex-col items-center gap-1 hover:text-white transition-colors">
<i class="fa-solid fa-users text-xl"></i>
<span class="text-[10px] font-medium">Clients</span>
</a>
<a href="OwnerSettings__mobile.html" class="flex flex-col items-center gap-1 hover:text-white transition-colors">
<i class="fa-solid fa-gear text-xl"></i>
<span class="text-[10px] font-medium">Settings</span>
</a>
</nav>
</body>
</html>