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

2.1 KiB

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:
bun install
  1. Datenbank initialisieren:
bunx prisma generate
bunx prisma db push

Entwicklung

Entwicklungsserver starten:

bun run dev

Die Anwendung ist dann unter http://localhost:3000 erreichbar.

Tests

Tests ausführen:

bun run test

Tests mit UI:

bun run test:ui

Datenbank

Prisma Studio öffnen:

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)