University of Peradeniya crestSCS Documentation
University of Peradeniya crestSCS Documentation
Department website

Start here

Repository handbookRepository overviewDevelopment

System design

ArchitectureAuthentication and authorizationPublic dataAPI contractsSchemas
UI system

Applications

Department Web applicationPeople applicationProjects applicationPortal application

Services

API serviceGitHub App serviceMailer service

Shared packages

Schemas packageUI packageTypeScript configuration packageESLint configuration package
Shared package internals

Development workflow

Testing and verificationDependency managementDocumentation authoringUI quality assurance

Operations

Continuous integrationEnvironment variablesOperationsSecurityTroubleshooting

Reference

Route referenceGlossary
Shared package internals

Ownership, export, evolution, and verification guides for schemas, UI primitives, and repository tooling presets.

Shared package internals

Packages centralize contracts or policy that genuinely cross deployable boundaries. They do not turn the monorepo into one runtime: every application and service remains independently deployable and consumes package exports at build time.

Package areaShared responsibilityMust remain in a consumer
Schemasruntime domain and transport contractsprivate persistence and view state
UIproduct-neutral primitives, hooks, and theme tokensshells, cards, editors, and domain composition
ToolingTypeScript and ESLint policy presetslocal files, aliases, runtime globals, ignores

Use direct package exports. Do not import a shared contract or primitive into a local wrapper only to re-export it under the owning app or service.

ESLint configuration package

Shared lint presets, Tailwind and import policy, consumer overrides, tests, and change workflow.

Schemas package internals

Maintainer guide to shared schema ownership, package exports, contract evolution, parsing behavior, and verification.

On this page

Shared package internals