UZDI is a full-stack web platform built with Vue 3 (Vite) on the frontend and NestJS on the backend, backed by a PostgreSQL database. This page walks you through every step needed to get both applications running on your local machine so you can develop and test changes against a real database.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Zapiony/PUCE_UZDI_2026/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure the following tools are installed and available on yourPATH:
| Tool | Minimum version | Notes |
|---|---|---|
| Node.js | 18.x | LTS recommended; required by both projects |
| npm | 9.x | Bundled with Node.js 18 |
| PostgreSQL | 14.x | Must be running and accessible locally |
| Git | Any recent | For cloning the repository |
Step-by-step Setup
Clone the repository
UZDI_FRONT (Vue 3) and UZDI_BACK (NestJS). Each has its own package.json and must be installed separately.Install frontend dependencies
axios, @lucide/vue, and all other frontend dependencies declared in UZDI_FRONT/package.json.Install backend dependencies
pg, bcrypt, class-validator, dompurify, and all other backend dependencies declared in UZDI_BACK/package.json.Initialize the PostgreSQL database
Create the database and apply the full schema using the DDL script included in the repository root. See the Database page for detailed instructions and a schema reference.
Create UZDI_BACK/.env
Create a
.env file inside the UZDI_BACK directory. This file is loaded by @nestjs/config at startup.PORT is optional and defaults to 3000 if omitted. See the Environment Variables page for the full reference.Create UZDI_FRONT/.env (or .env.local)
Create a The
.env or .env.local file inside the UZDI_FRONT directory. Vite only exposes variables prefixed with VITE_ to client-side code.api.ts service reads this value to construct the base URL for all axios requests: ${import.meta.env.VITE_API_BASE_URL}/api/v1.Start the backend
From NestJS will compile and start on
UZDI_BACK, run the development server with watch mode enabled:http://localhost:3000. The --watch flag restarts automatically on file changes. You should see:Backend Scripts (UZDI_BACK)
All scripts are defined in UZDI_BACK/package.json and run via npm run <script>.
| Script | Command | Description |
|---|---|---|
start | nest start | Compile and start — no file watching |
start:dev | nest start --watch | Development mode — recompiles on file changes (HMR) |
start:debug | nest start --debug --watch | Watch mode with Node.js debugger on default port 9229 |
start:prod | node dist/main | Run the pre-compiled production build from dist/ |
build | nest build | Compile TypeScript to dist/ using the NestJS CLI |
test | jest | Run all unit tests (*.spec.ts) via Jest |
test:e2e | jest --config ./test/jest-e2e.json | Run end-to-end tests using the dedicated Jest config |
lint | eslint "{src,apps,libs,test}/**/*.ts" --fix | Lint and auto-fix TypeScript files |
format | prettier --write "src/**/*.ts" "test/**/*.ts" | Format all TypeScript files with Prettier |
Frontend Scripts (UZDI_FRONT)
All scripts are defined in UZDI_FRONT/package.json and run via npm run <script>.
| Script | Command | Description |
|---|---|---|
dev | vite | Start the Vite HMR dev server on port 5174 |
build | vue-tsc -b && vite build | Type-check with vue-tsc, then bundle for production |
preview | vite preview | Serve the production build locally for verification |
CORS Configuration
The NestJS bootstrap inmain.ts explicitly allows requests from the Vite dev server origin:
If you change the Vite dev server port (via
vite.config.ts), you must update the origin value in main.ts to match, otherwise all browser requests will be blocked by CORS policy. For production deployments, the origin must be updated to the deployed frontend domain.