This guide walks you through cloning the NuestraVoz monorepo, wiring up your Supabase project credentials, seeding the database with demo data, and booting the full-stack development environment. By the end you will have the Astro frontend running atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Renzo717/Aula-Virtual-Universidad-Radiolocucion/llms.txt
Use this file to discover all available pages before exploring further.
http://localhost:4321 and the Express API running at http://localhost:3001.
Prerequisites
Before you begin, make sure the following are available on your machine:- Node.js 20 or later — the root
package.jsonenforces"node": ">=20"via theenginesfield. - pnpm 10 or later — the monorepo uses pnpm workspaces. Install it through Corepack (bundled with Node.js 16.9+) so the exact version pinned in
package.json(pnpm@10.12.1) is automatically selected. - A Supabase project — create a free project at supabase.com. You need the project URL and the service-role secret key (not the anon key) to seed and run the API.
Setup Steps
Clone the repository and enable Corepack
Clone the monorepo and activate Corepack so pnpm is managed automatically:Corepack reads the
"packageManager": "pnpm@10.12.1" field from the root package.json and ensures every subsequent pnpm call uses that exact version.Install all workspace dependencies
A single command installs packages for every workspace (web, api, and shared):pnpm resolves the workspace protocol (
workspace:*) used by @nuestravoz/web and @nuestravoz/api to link the local @nuestravoz/shared package without any publishing step.Configure the API environment variables
Create Then open
apps/api/.env by copying the example file and filling in your Supabase credentials:apps/api/.env and set your values:Apply database migrations
Push all versioned SQL migrations from If you prefer to apply migrations manually, the files are numbered sequentially (
supabase/migrations/ to your Supabase project using the Supabase CLI:001_initial_schema.sql → 019_preceptor_notas_finales_write.sql) and can be executed in order through the Supabase SQL editor.Seed demo data
The API workspace includes a seed script that populates users, careers, courses, and sample activities. Run it using pnpm’s The seed script uses the
--filter flag to target only the API package:SUPABASE_SERVICE_ROLE_KEY from apps/api/.env to bypass RLS and insert demo records directly. It is safe to re-run — existing records are upserted, not duplicated.Start the development servers
The root You should see two processes start concurrently:
The Astro Vite dev server is configured to proxy any request beginning with
dev script builds the shared package first (so both the web and API workspaces pick up the latest types), then starts both servers in parallel:| Server | URL | Package |
|---|---|---|
| Astro frontend | http://localhost:4321 | @nuestravoz/web |
| Express API | http://localhost:3001 | @nuestravoz/api |
/api to http://localhost:3001, so the browser only ever speaks to one origin.Log in with demo credentials
Open your browser and navigate to
The admin dashboard provides access to user management, career and course configuration, enrollment oversight, audit logs, and all classroom features. To test other roles, create additional users through the admin panel and assign the
http://localhost:4321. Use the seeded admin account to explore the full platform:| Field | Value |
|---|---|
admin@nuestravoz.edu | |
| Password | Admin123! |
docente, estudiante, or preceptor role.Verifying the API
You can confirm the Express server is healthy without a browser by hitting the health-check endpoint:How the Frontend Proxy Works
The Astro configuration atapps/web/astro.config.mjs registers a Vite proxy rule for local development:
http://localhost:4321/api/... is transparently forwarded to the Express server. This means the frontend never needs to know the API’s port — in production the same path prefix is handled by a reverse proxy (nginx, a cloud load balancer, etc.) pointing at the deployed API service.
When running
pnpm dev, the @nuestravoz/shared package is compiled first (pnpm --filter @nuestravoz/shared build) before the parallel dev servers start. If you modify types or schemas in packages/shared/src, stop the dev process, run pnpm dev again (or manually rebuild shared with pnpm --filter @nuestravoz/shared build) to pick up the changes.