Files
WearPartTracker/README.md
Denis Urs Rudolph de193bc783 Initial commit: Fahrrad Verschleißteile Tracker
- 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)
2025-12-05 22:17:50 +01:00

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)