- Next.js SPA mit Bun Runtime - Prisma mit SQLite Datenbank - Vollständige CRUD-Operationen für Fahrräder, Verschleißteile und Wartungshistorie - Warnsystem für bevorstehende Wartungen - Statistik-Features (Gesamtkosten, durchschnittliche Lebensdauer) - Zod-Validierung für alle API-Requests - Umfassende Test-Suite (41 Tests)
103 lines
2.1 KiB
Markdown
103 lines
2.1 KiB
Markdown
# Fahrrad Verschleißteile Tracker
|
|
|
|
Eine Single-Page-Application zur Erfassung und Verwaltung von Verschleißteilen an verschiedenen Fahrrädern.
|
|
|
|
## Features
|
|
|
|
- Verwaltung mehrerer Fahrräder
|
|
- Erfassung von Verschleißteilen (Kette, Bremsbeläge, Reifen, etc.)
|
|
- Wartungshistorie für jedes Verschleißteil
|
|
- Warnsystem bei bevorstehender Wartung
|
|
- Statistiken (Gesamtkosten, durchschnittliche Lebensdauer)
|
|
- Keine Authentifizierung erforderlich
|
|
|
|
## Technologie-Stack
|
|
|
|
- **Framework**: Next.js 14+ (App Router)
|
|
- **Runtime**: Bun
|
|
- **Datenbank**: SQLite (via Prisma)
|
|
- **Styling**: Tailwind CSS
|
|
- **Validierung**: Zod
|
|
- **Testing**: Vitest
|
|
|
|
## Installation
|
|
|
|
1. Dependencies installieren:
|
|
```bash
|
|
bun install
|
|
```
|
|
|
|
2. Datenbank initialisieren:
|
|
```bash
|
|
bunx prisma generate
|
|
bunx prisma db push
|
|
```
|
|
|
|
## Entwicklung
|
|
|
|
Entwicklungsserver starten:
|
|
```bash
|
|
bun run dev
|
|
```
|
|
|
|
Die Anwendung ist dann unter [http://localhost:3000](http://localhost:3000) erreichbar.
|
|
|
|
## Tests
|
|
|
|
Tests ausführen:
|
|
```bash
|
|
bun run test
|
|
```
|
|
|
|
Tests mit UI:
|
|
```bash
|
|
bun run test:ui
|
|
```
|
|
|
|
## Datenbank
|
|
|
|
Prisma Studio öffnen:
|
|
```bash
|
|
bun run db:studio
|
|
```
|
|
|
|
## Projektstruktur
|
|
|
|
```
|
|
/
|
|
├── app/ # Next.js App Router
|
|
│ ├── api/ # API Routes
|
|
│ ├── components/ # React-Komponenten
|
|
│ └── bikes/ # Fahrrad-Detailseiten
|
|
├── prisma/
|
|
│ └── schema.prisma # Datenbankschema
|
|
├── lib/
|
|
│ ├── prisma.ts # Prisma Client
|
|
│ ├── utils.ts # Hilfsfunktionen
|
|
│ └── validations.ts # Zod-Schemas
|
|
├── types/ # TypeScript Typen
|
|
└── __tests__/ # Test-Dateien
|
|
```
|
|
|
|
## Verschleißteil-Typen
|
|
|
|
Das Tool unterstützt folgende Verschleißteil-Typen:
|
|
- CHAIN (Kette)
|
|
- BRAKE_PADS (Bremsbeläge)
|
|
- TIRE (Reifen)
|
|
- CASSETTE (Ritzel)
|
|
- CHAINRING (Kettenblatt)
|
|
- DERAILLEUR (Schaltwerk)
|
|
- BRAKE_CABLE (Bremszug)
|
|
- SHIFT_CABLE (Schaltzug)
|
|
- BRAKE_ROTOR (Bremsscheibe)
|
|
- PEDAL (Pedale)
|
|
- CRANKSET (Kurbelgarnitur)
|
|
- BOTTOM_BRACKET (Tretlager)
|
|
- HEADSET (Steuersatz)
|
|
- WHEEL (Laufrad)
|
|
- HUB (Nabe)
|
|
- SPOKE (Speiche)
|
|
- OTHER (Sonstiges)
|
|
|