Skip to main content

Repository Tour

The Ghasi-EdTech platform is a Turborepo monorepo using pnpm workspaces. Here is how the code is organized:

ghasi-EdTech/
+-- services/ 19 NestJS microservices (one per bounded context)
? +-- <service-name>/
? +-- src/
? +-- domain/ Pure business logic ? no frameworks, no I/O
? +-- application/ Use cases, command/query handlers, ports
? +-- infrastructure/ Adapters: Postgres, NATS, Redis, S3
? +-- presentation/ NestJS controllers, REST/GraphQL/WS
+-- packages/
? +-- api-contracts/ Shared Zod schemas, error codes, request envelopes
? +-- domain-primitives/ Branded IDs, value objects (TenantId, Money, ?)
? +-- event-envelope/ EventEnvelope<T>, outbox/inbox types
? +-- sdk-client/ TypeScript client generated from OpenAPI
? +-- telemetry/ OpenTelemetry wrapper, structured logging
? +-- ui/ Design tokens, Radix-wrapped components
+-- apps/ Web and mobile frontends (learner, authoring, admin)
+-- postman/ Pre-built API collections for all services
+-- event-schemas/ Git-backed event schema registry
+-- infra/ Docker Compose local stack

Package naming

  • Services: @ghasi/service-<name>
  • Shared libraries: @ghasi/<domain> (e.g. @ghasi/api-contracts)
  • Frontend apps: @ghasi/app-<surface> (e.g. @ghasi/app-web-learner)

Where to go from here