Monorepon rakenne — Frontpics
Frontpics on pnpm/Turborepo-työtila.
Juuri
frontpics/
apps/
api/ NestJS API
web/ Next.js-sovellus
docs/ Docusaurus-dokumentaatio
packages/
database/ Prisma-skeema, migraatiot, generoitu client
shared/ jaetut enumit, Zod-skeemat, tyypit ja apurit
config/ jaettu TypeScript-konfiguraatio
infrastructure/
scripts/ VPS/bootstrap/deploy-skriptit
media/ paikalliset media- ja tukitiedostot
apps/api
NestJS 11 API Fastify-adapterilla.
apps/api/src/
app.module.ts
main.ts
config/
common/
modules/
admin/
audit/
auth/
database/
email/
feedback/
images/
incoming-emails/
invoices/
licenses/
mailer/
notifications/
orders/
payouts/
photographers/
queue/
redis/
shooting-requests/
storage/
tags/
telemetry/
upload/
users/
wallets/
Säännöt:
BullModule.forRoot()kuuluu vainAppModule-moduuliin.- Ominaisuusmoduulit käyttävät
BullModule.registerQueue()-kutsua. IMAGE_PROCESS_QUEUEtuodaan tiedostostaqueue.constants.ts.- API:n TypeScript käyttää NodeNext-asetuksia.
apps/web
Next.js 16 App Router -sovellus.
apps/web/src/
app/
[locale]/
admin/
auth/
buyer/
moderator/
payroll/
photographer/
images/
page.tsx
components/
hooks/
i18n/dictionaries/
lib/
proxy.ts
Säännöt:
- Reittisuojaus ja i18n-ohjaukset kuuluvat
src/proxy.ts-tiedostoon. - UI-käännökset päivitetään kaikkiin tuettuihin sanakirjoihin:
fi.json,en.json,sv.json. - Generoidut dokumentit ovat
public/docs-hakemistossa; lähde onapps/docs.
apps/docs
Docusaurus 3 -dokumentaation lähde.
apps/docs/docs/
staff/
fi/staff/
en/users/
fi/users/
Build-tulos on apps/docs/build.
packages/database
Omistaa Prisma-skeeman ja generoidun clientin.
packages/database/
prisma/schema.prisma
prisma/migrations/
prisma/seed.ts
src/
Tarkista schema.prisma ennen mallikenttien käyttöä.
packages/shared
Jaetut enumit, skeemat ja apurit API:n ja webin käyttöön.
Deployment
docker-compose.yml
docker-compose.infra.yml
docker-compose.blue.yml
docker-compose.green.yml
infrastructure/scripts/
Blue/green-compose-tiedostot määrittävät sovelluspinot. docker-compose.infra.yml määrittää jaetun PostgreSQL- ja Redis-infran.