Files

56 lines
1.5 KiB
Markdown

# HRM
Svelte 5 + shadcn-svelte + PocketBase, using [Bun](https://bun.sh).
## Stack
- **Svelte 5** (SvelteKit) with TypeScript
- **Tailwind CSS v4** via `@tailwindcss/vite`
- **shadcn-svelte** (new-york style, slate base)
- **PocketBase** — client and server connector for `https://pocketbase.ccllc.pro`
## Develop
```sh
bun install
bun run dev
```
Open [http://localhost:5173](http://localhost:5173). Use `bun run dev -- --open` to open automatically.
## Build
```sh
bun run build
bun run preview # preview production build
```
## PocketBase
- **Client:** use the shared client in `$lib/pocketbase` (e.g. `import { pb } from '$lib/pocketbase'`) for browser-side API calls and auth.
- **Server:** use `event.locals.pb` in `load` functions, form actions, and API routes. Auth is restored from the `pb_auth` cookie and refreshed in `src/hooks.server.ts`.
To change the PocketBase URL or auth collection, edit:
- `src/lib/pocketbase.ts` — client base URL
- `src/hooks.server.ts` — server base URL and `users` auth collection name if different
## shadcn-svelte
Add components with:
```sh
bunx shadcn-svelte@latest add <component>
```
Example: `bunx shadcn-svelte@latest add card input label`
Config: `components.json`. Global styles and theme: `src/routes/app.css`.
## Project layout
- `src/lib/components/ui/` — shadcn-svelte components
- `src/lib/pocketbase.ts` — PocketBase client (browser)
- `src/lib/utils.ts``cn()` and shared types
- `src/hooks.server.ts` — PocketBase per-request instance and cookie auth