You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+
## Project Overview
6
+
7
+
MUNify CHASE (CHAiring SoftwarE) is a conference management application for Model United Nations debates. Built by Deutsche Model United Nations (DMUN) e.V., it provides speakers lists, digital voting, resolution editing, committee status tracking, and roll-call management.
**GraphQL Generation**: Uses [Rumble](https://github.com/m1212e/rumble) (`@m1212e/rumble`), a custom glue package that generates GraphQL schemas and resolvers directly from Drizzle ORM definitions with built-in ability-based access control.
12
+
13
+
## Common Commands
14
+
15
+
```bash
16
+
# Development
17
+
bun run dev # Start dev server + Docker containers (database, mock OIDC)
18
+
bun run dev:server # Dev server only (requires running containers)
19
+
bun run dev:docker # Docker containers only (add -d for detached)
20
+
21
+
# Code Quality
22
+
bun run lint # Prettier check + ESLint
23
+
bun run format # Auto-format with Prettier
24
+
bun run check # Svelte type checking
25
+
bun run typecheck # TypeScript type checking
26
+
27
+
# Database
28
+
bun run db:push # Push schema changes to database
29
+
bun run db:migrate # Run migrations
30
+
bun run db:seed:dev # Seed test data
31
+
bun run db:studio # Open Drizzle Studio GUI
32
+
bun run db:reset # Reset database
33
+
34
+
# Build
35
+
bun run build # Production build
36
+
bun run preview # Preview production build
37
+
```
38
+
39
+
## Architecture
40
+
41
+
### API Layer (`src/api/`)
42
+
43
+
-**`db/schema.ts`**: Drizzle table definitions (source of truth for database)
44
+
-**`db/relations.ts`**: Table relationships for Drizzle queries
45
+
-**`handlers/*.ts`**: GraphQL resolvers using Rumble DSL with ability-based access control
46
+
-**`context.ts`**: Request context with auth and permissions
47
+
-**`services/`**: Business logic (OIDC integration, email validation)
48
+
49
+
**Handler pattern**: Each handler file defines GraphQL types, access control rules, queries, mutations, and subscriptions for an entity using the Rumble DSL.
50
+
51
+
### Frontend (`src/lib/`)
52
+
53
+
-**`components/`**: Svelte 5 components using runes (not stores)
54
+
-**`state/`**: Client-side state (theme, server time sync)
55
+
-**`data/`**: Static data (country names, flags)
56
+
-**`paraglide/`**: Auto-generated i18n code (do not edit)
0 commit comments