Sets up the initial project infrastructure only, no business modules yet: - apps/api: Express/TypeScript backend skeleton (healthcheck route, zod-validated env config, error handling, Prisma initialized with no models yet, Postgres as the target DB) - apps/web: React/Vite/TypeScript frontend skeleton, Capacitor-ready for the future mobile app - packages/shared: empty placeholder for types/schemas shared between api and web once the data model is defined - Tooling: Biome (lint/format), Mocha+Chai+Supertest (api tests), Cypress (web e2e smoke test), GitHub Actions CI (lint + test + build + e2e) - docker-compose.yml for local Postgres - README documents setup steps, including the Cypress binary caveat (pnpm install doesn't always fetch the native binary — needs `cypress install` run locally per machine) Fixes along the way: - apps/web/cypress.config.ts: disable GPU on browser launch for headless/sandboxed environments - apps/web/tsconfig.*: split into solution/app/node tsconfig files (standard Vite pattern) — the previous single-file setup caused `tsc -b` to emit compiled .js/.d.ts next to vite.config.ts and cypress.config.ts
41 lines
738 B
JSON
41 lines
738 B
JSON
{
|
|
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
"vcs": {
|
|
"enabled": true,
|
|
"clientKind": "git",
|
|
"useIgnoreFile": true
|
|
},
|
|
"files": {
|
|
"ignoreUnknown": false,
|
|
"ignore": [
|
|
"dist",
|
|
"coverage",
|
|
"**/node_modules",
|
|
".pnpm-store",
|
|
"cypress/videos",
|
|
"cypress/screenshots"
|
|
]
|
|
},
|
|
"formatter": {
|
|
"enabled": true,
|
|
"indentStyle": "space",
|
|
"indentWidth": 2,
|
|
"lineWidth": 100
|
|
},
|
|
"organizeImports": {
|
|
"enabled": true
|
|
},
|
|
"linter": {
|
|
"enabled": true,
|
|
"rules": {
|
|
"recommended": true
|
|
}
|
|
},
|
|
"javascript": {
|
|
"formatter": {
|
|
"quoteStyle": "double",
|
|
"semicolons": "always",
|
|
"trailingCommas": "all"
|
|
}
|
|
}
|
|
}
|