77 lines
1.7 KiB
Markdown
77 lines
1.7 KiB
Markdown
# Annas Rechnungsmanager
|
|
|
|
Buchhaltungs- und Rechnungsverwaltungssystem für Mandanten.
|
|
|
|
## Features
|
|
|
|
- **Mandantenverwaltung** — Mehrere Unternehmen verwalten
|
|
- **Rechnungen** — Erstellen, verwalten, als PDF exportieren (§14 UStG konform)
|
|
- **Kundenverwaltung** — Kundenstammdaten pro Mandant
|
|
- **Steuerberichte** — USt-Voranmeldung, monatliche & quartalsweise Auswertungen
|
|
|
|
## Tech Stack
|
|
|
|
- **React Router v7** (Framework Mode, SSR) + TypeScript
|
|
- **MariaDB / MySQL** via Prisma ORM
|
|
- **Cookie-Session-Auth** (bcryptjs, kein NextAuth)
|
|
- **Tailwind CSS v4** + shadcn/ui
|
|
- **@react-pdf/renderer** für PDF-Generierung
|
|
- **Docker** für die Datenbank
|
|
|
|
## Setup
|
|
|
|
### 1. Voraussetzungen
|
|
|
|
- Node.js 20+
|
|
- Docker (für MariaDB)
|
|
|
|
### 2. Installation
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### 3. Umgebungsvariablen konfigurieren
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
# DATABASE_URL und AUTH_SECRET in .env anpassen
|
|
```
|
|
|
|
### 4. Datenbank einrichten
|
|
|
|
```bash
|
|
npx prisma migrate dev --name init
|
|
npx prisma db seed
|
|
```
|
|
|
|
**Demo-Zugangsdaten:** `anna@example.de` / `demo123`
|
|
|
|
### 5. Entwicklungsserver starten
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
Startet Docker (PostgreSQL) und den Vite-Dev-Server.
|
|
|
|
Öffne [http://localhost:5173](http://localhost:5173)
|
|
|
|
## Datenbank-Kommandos
|
|
|
|
```bash
|
|
npm run db:migrate # Migrationen ausführen
|
|
npm run db:seed # Demo-Daten einspielen
|
|
npm run db:studio # Prisma Studio öffnen
|
|
```
|
|
|
|
## Rechnungs-Compliance (§14 UStG)
|
|
|
|
Alle PDFs enthalten die gesetzlich vorgeschriebenen Pflichtangaben:
|
|
- Name & Anschrift Rechnungssteller und -empfänger
|
|
- Steuernummer / USt-IdNr. des Ausstellers
|
|
- Rechnungsdatum & Rechnungsnummer (fortlaufend)
|
|
- Leistungsdatum / Lieferdatum
|
|
- Leistungsbeschreibung
|
|
- Nettobetrag, USt-Satz, USt-Betrag, Bruttobetrag
|