engineering docs

Structure Rules

Aturan struktur monorepo mengikuti pohon berikut.

๐Ÿ“ main/
โ”œโ”€โ”€ ๐Ÿ“ apps/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ <product1>/
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ main/ # Admin Access
โ”‚    โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ mobile/
โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ web/ # include package.json
โ”‚    โ”‚    โ”‚
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ app/ # Public Access
โ”‚    โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ mobile/
โ”‚    โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ store/# include package.json
โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ web/
โ”‚    โ”‚    โ”‚         โ”œโ”€โ”€ ๐Ÿ“ store/ # include package.json
โ”‚    โ”‚    โ”‚         โ””โ”€โ”€ ๐Ÿ“ panel/# include package.json
โ”‚    โ”‚    โ”‚
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ api/ # include package.json
โ”‚    โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ prisma/
โ”‚    โ”‚    โ”‚    โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ schema.prisma
โ”‚    โ”‚    โ”‚    โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ seed.ts
โ”‚    โ”‚    โ”‚    โ”‚   โ””โ”€โ”€ ...
โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ...
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ docs/ # include package.json
โ”‚    โ”‚         โ””โ”€โ”€ ...
โ”‚    โ”‚
โ”‚    โ””โ”€โ”€ ๐Ÿ“ <product2>/
โ”‚         โ”œโ”€โ”€ ๐Ÿ“ main/
โ”‚         โ”‚    โ””โ”€โ”€ ๐Ÿ“ ...
โ”‚         โ”œโ”€โ”€ ๐Ÿ“ app/
โ”‚         โ”‚    โ””โ”€โ”€ ๐Ÿ“ ...
โ”‚         โ”œโ”€โ”€ ๐Ÿ“ api/
โ”‚         โ”‚    โ””โ”€โ”€ ๐Ÿ“ ...
โ”‚         โ””โ”€โ”€ ๐Ÿ“ docs/
โ”‚              โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ packages/ # Shared utils, hooks, logic, etc.
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ db/              # โ† Prisma tinggal di sini
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ prisma/
โ”‚    โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ schema.prisma
โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“„ seed.ts
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚    โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ client.ts
โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“„ index.ts
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ package.json
โ”‚    โ”‚    โ””โ”€โ”€ ...
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ i18n/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ http-client/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ hooks/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ utils/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ helpers/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ core/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ configs/
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ css/
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ eslint/
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ typescript/
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ global-types/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ auth/
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ hooks/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ permissions/
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ hooks/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ components/
โ”‚    โ”‚    โ”œโ”€โ”€ web/
โ”‚    โ”‚    โ””โ”€โ”€ mobile/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ icons/
โ”‚    โ”‚    โ”œโ”€โ”€ web/
โ”‚    โ”‚    โ””โ”€โ”€ mobile/
โ”‚    โ””โ”€โ”€ ๐Ÿ“ ui/
โ”‚         โ”œโ”€โ”€ web/
โ”‚         โ””โ”€โ”€ mobile/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ infrastructure/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ docker/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ terraform/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ github/
โ”‚    โ””โ”€โ”€ ๐Ÿ“ deployment/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ data/
โ”‚    โ””โ”€โ”€ ๐Ÿ“ src/
โ”‚         โ””โ”€โ”€ ๐Ÿ“ seed-indonesia-regions/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ tools/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ cli/
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ _test/
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ src/
โ”‚    โ”‚         โ”œโ”€โ”€ ๐Ÿ“ commands/
โ”‚    โ”‚         โ””โ”€โ”€ ๐Ÿ“ core/
โ”‚    โ””โ”€โ”€ ๐Ÿ“ scripts/
โ”‚         โ””โ”€โ”€ ๐Ÿ“ src/
โ”‚              โ””โ”€โ”€ ๐Ÿ“„ ...
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ README.md
โ”œโ”€โ”€ ๐Ÿ“„ package.json        # Root-level dependencies/tools
โ””โ”€โ”€ ๐Ÿ“„ eslint.config.ts

Shortener

๐Ÿ“ main/
โ”œโ”€โ”€ ๐Ÿ“ apps/
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ main/ # Admin Access
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ mobile/
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ web/
โ”‚    โ”‚
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ app/ # Public Access
โ”‚    โ”‚    โ”œโ”€โ”€ ๐Ÿ“ mobile/
โ”‚    โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ store/
โ”‚    โ”‚    โ””โ”€โ”€ ๐Ÿ“ web/
โ”‚    โ”‚         โ”œโ”€โ”€ ๐Ÿ“ landing/
โ”‚    โ”‚         โ””โ”€โ”€ ๐Ÿ“ store/
โ”‚    โ”‚
โ”‚    โ”œโ”€โ”€ ๐Ÿ“ docs/
โ”‚    โ”‚    โ””โ”€โ”€ ...
โ”‚    โ”‚
โ”‚    โ””โ”€โ”€ ๐Ÿ“ api/
โ”‚         โ”œโ”€โ”€ ๐Ÿ“ prisma/
โ”‚         โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ schema.prisma
โ”‚         โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ seed.ts
โ”‚         โ”‚   โ””โ”€โ”€ ...
โ”‚         โ””โ”€โ”€ ...