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)
This commit is contained in:
102
README.md
Normal file
102
README.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# 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)
|
||||
|
||||
Reference in New Issue
Block a user