https://github.com/devbaraus/kuehne-web
https://github.com/devbaraus/kuehne-web
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/devbaraus/kuehne-web
- Owner: devbaraus
- Created: 2025-12-22T22:45:23.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-22T23:36:47.000Z (7 months ago)
- Last Synced: 2025-12-24T12:22:51.043Z (7 months ago)
- Language: Vue
- Size: 135 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kuehne + Nagel Logistics Frontend
Nuxt-based dashboard for managing locations and shipments. Integrates with the backend API for auth, role-based access, and typed API clients generated from the OpenAPI schema.
## Technologies
- Nuxt 4 (Vue 3 + Vite) with TypeScript.
- UI kit: `@nuxt/ui` for ready-made components.
- Role-based UI/route gating via `@casl/ability` + `@casl/vue`.
- Utilities via `@vueuse/nuxt` and `@internationalized/date`.
- OpenAPI-driven client: `@hey-api/openapi-ts` (types) + `zod` validators.
- ESLint with `@nuxt/eslint`.
## Getting started
Prereqs: Node.js 22+ and a package manager, bun is preferred. Ensure the backend is running (defaults to `http://localhost:8000/v1`).
1) Install dependencies
```bash
bun install
```
2) Configure API base
Create `.env` in `frontend/` (Nuxt runtimeConfig reads `process.env.API_BASE`).
```
API_BASE=http://localhost:8000/v1
```
3) Generate OpenAPI types (optional but recommended after backend changes)
```bash
bun run openapi
```
4) Run the dev server
```bash
bun run dev
# App runs at http://localhost:3000
```
## Production
- Build:
```bash
bun run build
```
- Preview locally:
```bash
bun run preview
```
## Environment variables
- `API_BASE` (default `http://localhost:8000/v1`) — base URL for the backend API.
## Notes
- If you change the backend schema, re-run `npm run openapi` to refresh generated types in `app/openapi`.
- RBAC is enforced in routes and components using CASL abilities; users see actions permitted by their role.