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
- Browse individual services in the Microservice Catalog.
- Download the Postman collections and start making calls.
- Install the TypeScript client SDK in your project.