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

Start here

Repository handbookRepository overviewDevelopment

System design

ArchitectureAuthentication and authorizationPublic dataAPI contractsSchemas
Schema referenceAcademic schemasPeople schemasCourse schemasResearch schemasProject schemasAPI transport schemas
UI system

Applications

Department Web applicationPeople applicationProjects applicationPortal application

Services

API serviceGitHub App serviceMailer service

Shared packages

Schemas packageUI packageTypeScript configuration packageESLint configuration package

Development workflow

Testing and verificationDependency managementDocumentation authoringUI quality assurance

Operations

Continuous integrationEnvironment variablesOperationsSecurityTroubleshooting

Reference

Route referenceGlossary
Schema reference

Public request, response, error, mutation, operation, pagination, mail, and proxy contracts shared across deployment boundaries.

API transport schemas

These schemas define data crossing application and service boundaries. Domain schemas validate the records inside a request; transport schemas add actor, revision, idempotency, status, and response semantics.

Editor responses

SchemaResponsibility
EditorPullRequestStatusSchemaPull-request and checks state exposed to editors.
PublicProfileKindSchemaEditable public profile variant.
StudentPlacementResponseSchemaLocked canonical placement for undergraduate or postgraduate students.
PublicProfileSchemaResponseSchemaProfile editor permissions, identity, locked fields, and guidance.
PublicProfilePrSchemaProfile pull-request state and editable draft metadata.
PublicProfileResponseSchemaCurrent profile record and owning data paths.
PublicProjectSchemaResponseSchemaProject editor permissions, identity, and locked fields.
PublicProjectPrSchemaProject pull-request state, revisions, paths, and draft.
PublicProjectResponseSchemaCurrent project record, revision, and owning paths.
PublicCourseSchemaResponseSchemaCourse editor permission and identity response.
PublicAcademicPrSchemaCourse or offering pull-request state, revision, paths, and draft.

Errors

SchemaResponsibility
ApiErrorCodeSchemaStable machine-readable error code.
CorrelationIdSchemaOpaque identifier connecting client and service diagnostics.
ConflictDetailsSchemaResource and expected/actual revisions for optimistic conflicts.
ApiErrorSchemaBounded error message, code, correlation id, and optional conflict.
ApiErrorEnvelopeSchemaVersioned error response envelope.

GitHub-backed automation requests

SchemaResponsibility
getPublicProfileQuerySchemaQuery for one public profile by username.
getPublicProjectQuerySchemaQuery for one public project by slug.
getPublicAcademicRecordQuerySchemaQuery for one course or offering by registry id.
updateStudentPlacementMetadataRequestSchemaReplace canonical placement, alumni, postgraduate, and stream configuration.
discardStudentPlacementMetadataRequestSchemaDiscard a placement metadata draft.
updatePublicProfileRequestSchemaUpsert one validated profile and its exact aggregate paths.
submitPublicProfileOperationRequestSchemaProfile mutation plus actor, idempotency, and correlation context.
discardPublicProfilePrRequestSchemaClose a profile pull request at an expected head revision.
updatePublicProjectRequestSchemaUpsert a project and verify its canonical record paths.
deletePublicProjectRequestSchemaDelete a project using canonical paths and expected revision.
submitPublicProjectOperationRequestSchemaDiscriminated project upsert/delete operation envelope.
updatePublicCourseRequestSchemaUpsert a course at its canonical registry path.
deletePublicCourseRequestSchemaDelete a course at its canonical registry path.
updatePublicCourseOfferingRequestSchemaUpsert an offering at its canonical registry path.
deletePublicCourseOfferingRequestSchemaDelete an offering at its canonical registry path.
submitPublicAcademicOperationRequestSchemaDiscriminated course/offering upsert/delete operation envelope.

Mail, mutation, and operations

SchemaResponsibility
MailerSendRequestSchemaRaw HTML/text mail or the named portal sign-in OTP template.
MailerSendResponseSchemaSuccess or bounded mailer failure response.
IdempotencyKeySchemaClient key for safely retried mutations.
EntityRevisionSchemaOpaque resource revision used by optimistic concurrency.
MutationControlSchemaIdempotency key and optional expected revision.
MutationAcceptedSchemaVersioned asynchronous-operation acceptance response.
OperationIdSchemaDurable operation identifier.
OperationResourceTypeSchemaResource kinds handled by durable operations.
OperationResourceSchemaOperation target type and identity.
OperationActorSchemaUser or service actor reference.
OperationStatusSchemaQueued, running, or terminal operation state.
OperationOutcomeSchemaSuccess, failure, conflict, or cancellation outcome.
OperationStatusResponseSchemaComplete status response with lifecycle timestamps and terminal outcome.

Pagination and proxy configuration

SchemaResponsibility
OpaqueCursorSchemaBounded opaque pagination cursor.
PageLimitSchemaCoerced list limit from 1 through 100.
PaginationRequestSchemaOptional cursor and defaulted page limit.
PageInfoSchemaNext cursor, hasMore, and optional total with consistency validation.
createPageSchemaFactory for versioned item arrays and page metadata.
ProxyUrlSchemaValid HTTP(S) proxy URL without embedded credentials.
ProxyUpdateRequestSchemaStrict proxy activation and target configuration request.

Provider SDK objects, Worker bindings, and Durable Object storage records are service-private and are not part of this shared transport surface.

Project schemas

Public schemas for project showcase records and their people, course, media, provenance, and lifecycle context.

UI system

Shared primitives, app-owned composition, theme tokens, responsive navigation, accessibility, and interface conventions.

On this page

API transport schemasEditor responsesErrorsGitHub-backed automation requestsMail, mutation, and operationsPagination and proxy configuration