Development setup, project structure, and contribution guidelines.
git clone https://github.com/Cabeda/Convocados.git
cd Convocados
npm ci
npx prisma generate
npx prisma db push # create local SQLite DB
npm run dev # start dev server on http://localhost:4321 Convocados/
├── prisma/
│ └── schema.prisma # Database schema
├── public/ # Static assets
├── src/
│ ├── components/ # React components (MUI)
│ ├── layouts/ # Astro layouts (DocsLayout, etc.)
│ ├── lib/ # Server utilities (db, webhook, push, i18n)
│ ├── pages/
│ │ ├── api/ # API routes (Astro endpoints)
│ │ ├── docs/ # Documentation pages
│ │ ├── events/ # Event UI pages
│ │ └── index.astro # Home page
│ └── test/ # Vitest test files
├── Dockerfile
├── fly.toml
└── package.json | Layer | Technology |
|---|---|
| Framework | Astro 5 (SSR with Node adapter) |
| UI | React 19 + MUI 6 |
| Database | SQLite via Prisma 6 |
| Testing | Vitest + Supertest |
| Deployment | Docker on Fly.io |
| Command | Description |
|---|---|
npm run dev | Start Astro dev server |
npm run build | Production build |
npm run test | Run tests with Vitest |
npm run typecheck | TypeScript type checking |
npm run db:generate | Regenerate Prisma client |
npm run db:migrate | Create and apply migrations |
npm run db:studio | Open Prisma Studio GUI |
npm run test Tests use Vitest with Supertest for API endpoint testing. The test suite uses an in-memory SQLite database, so no external setup is needed.
.astro files; interactive components use React .tsxGET, POST, PATCH, DELETE)*.server.ts filesnpm run typecheck and npm run test to verifymainprisma/schema.prisma, run npm run db:migrate to create a migration file, then commit it with your PR.