Web App für Rechnungen, Kunden und Positionen. Frontend mit Vue 3 + Vite + Tailwind CSS. Backend mit Spring Boot.
| Tool | Version |
|---|---|
| Java | 21 |
| Node.js | 20+ |
| npm | 10+ |
Windows? Du brauchst zusätzlich Git Bash, um das Startscript auszuführen.
git clone https://github.com/Mirac61/InvoicePWA.git
cd invoice-appmacOS / Linux
chmod +x dev.sh
./dev.shWindows (Git Bash)
bash dev.shDas Script startet Backend und Frontend automatisch.
| Dienst | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend Health | http://localhost:8080/api/health |
Wenn beide URLs antworten, läuft alles. ✅
Falls das Script nicht funktioniert, kannst du beide Dienste einzeln starten.
Terminal 1 – Backend
cd backend/invoice-backend
./mvnw clean package
./mvnw spring-boot:runTerminal 2 – Frontend
cd frontend
npm install
npm run devTailwind ist bereits als Abhängigkeit in der package.json eingetragen. Ein npm install reicht — du musst nichts extra installieren.
Damit Tailwind funktioniert, müssen drei Dinge stimmen:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [
vue(),
tailwindcss(), // ← das hier
],
})/* src/style.css */
@import "tailwindcss";import './style.css'Wenn alle drei Punkte stimmen, kannst du Tailwind-Klassen direkt in Vue-Templates verwenden:
<button class="px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700">
Speichern
</button>invoice-app/
├── backend/
│ └── invoice-backend/ ← Spring Boot API (Port 8080)
└── frontend/ ← Vue 3 App (Port 5173)
├── src/
│ └── style.css ← Tailwind Import hier
└── vite.config.ts ← Tailwind Plugin hier
Checke die drei Punkte aus dem Tailwind-Abschnitt oben. Danach Dev-Server neu starten:
# Ctrl+C, dann:
npm run devVite zeigt in der Konsole automatisch einen freien Port. Oder fix auf 5173 erzwingen:
npm run dev -- --port 5173cd backend/invoice-backend
./mvnw clean packageDen ersten ERROR-Block in der Konsole lesen — dort steht die eigentliche Ursache.
java -version # braucht Java 21
node -v # braucht Node 20+
npm -v # braucht npm 10+- http://localhost:8080/api/health aufrufen — kommt eine Antwort?
- Proxy-Einstellung in
frontend/vite.config.tsprüfen - In der Browser-Konsole schauen, ob die Requests auf
/apigehen
# Backend Tests
cd backend/invoice-backend && ./mvnw test
# Frontend für Produktion bauen
cd frontend && npm run build
# Produktions-Build lokal testen
cd frontend && npm run previewPrivate Nutzung.