En moderne web-applikasjon bygget med Next.js, Prisma, og PostgreSQL.
- Frontend: Next.js 15, React 19, TypeScript
- Backend: tRPC, Better Auth
- Database: PostgreSQL (via Docker), Prisma ORM
- Styling: TailwindCSS v4
- Pakkebehandler: pnpm
- Code Quality: Biome (linting og formatering)
Før du starter, sørg for at du har følgende installert:
- Node.js (versjon 18 eller nyere)
- pnpm pakkebehandler
- Docker for databasen
- Make (eller bruk kommandoene direkte)
Følg disse stegene for å sette opp prosjektet lokalt:
pnpm install
Opprett en PostgreSQL database i Docker:
make db-create
Start database-kontaineren:
make db-start
Anvend database-migreringer:
make migrate
Generer TypeScript-typer for databasen:
make generate
Start Next.js utviklingsserver:
pnpm dev
Applikasjonen vil nå være tilgjengelig på http://localhost:3000.
Prosjektet inkluderer flere nyttige database-kommandoer via Makefile:
make db-create
- Opprett ny PostgreSQL database i Dockermake db-start
- Start eksisterende database-kontainermake db-stop
- Stopp database-kontainermake db-remove
- Fjern database-kontainer (data går tapt)make db-logs
- Vis database-loggermake db-connect
- Koble til database med psqlmake db-status
- Vis status for database-kontainermake migrate
- Kjør Prisma migreringermake migrate-reset
- Tilbakestill database og anvend alle migreringermake generate
- Generer Prisma Clientmake studio
- Åpne Prisma Studio (database GUI)
Prosjektet bruker Biome for linting og formatering:
# Sjekk kode-kvalitet
pnpm check
# Fiks automatisk rettbare problemer
pnpm check:write
# Fiks med usikre endringer
pnpm check:unsafe
# Bygg for produksjon
pnpm build
# Start produksjonsserver
pnpm start
# Forhåndsvis produksjonsbygg
pnpm preview
src/
├── app/ # Next.js App Router
├── components/ # React komponenter
│ ├── ui/ # UI komponenter (shadcn/ui)
│ └── form/ # Skjema-komponenter
├── lib/ # Hjelpefunksjoner og konfigurasjon
├── schemas/ # Zod-skjemaer for validering
├── server/ # Server-side kode og tRPC API
├── services/ # Business logic
└── trpc/ # tRPC konfigurasjon
Kopier .env.example
til .env
og fyll inn nødvendige miljøvariabler:
cp .env.example .env
DATABASE_URL="postgresql://postgres:password@localhost:5452/proton"
BETTER_AUTH_SECRET="your-secret-key"
BETTER_AUTH_URL="http://localhost:3000"
Prosjektet bruker PostgreSQL som database med Prisma som ORM. Database-skjemaet finnes i prisma/schema.prisma
.
Applikasjonen bruker Better Auth for autentisering med støtte for:
- E-post/passord pålogging med TIHLDE bruker
- Lag-basert tilgangskontroll