{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"name": "MedOrbits",
"manifestVersion": "1.1.0",
"manifestType": "repository-inventory",
"description": "Structured inventory of the intended MedOrbits education, admissions, career services, recruitment, and consultancy platform.",
"repositoryRoot": ".",
"statusSemantics": {
"planned": "Intended repository item; existence and implementation are not confirmed.",
"existing": "Verified to exist at the declared repository-relative path.",
"deprecated": "Existing item scheduled for removal; replacement and removal plan should be documented.",
"missing": "Expected item was checked but could not be found.",
"ignored": "Path is excluded by Git ignore rules and is not expected to be committed in its current form."
},
"statusRules": {
"defaultStatus": "planned",
"requireVerificationBeforeExisting": true,
"requireReplacementForDeprecated": true,
"requireReasonForMissing": true,
"repositoryPathsMustBeRelative": true,
"repositoryPathsMustNotEscapeRoot": true,
"caseSensitivePathValidation": true
},
"brand": {
"name": "MedOrbits",
"designDirection": "Royal Burgundy and Champagne Gold",
"visualGuidance": "Use accessible luxury-inspired colours, readable contrast, responsive layouts, and consistent design tokens."
},
"runtime": {
"platform": "Node.js",
"minimumNodeVersion": "20.0.0",
"versionSource": "package.json engines and the repository runtime-version file",
"packageManager": "npm",
"packageManifest": "package.json",
"lockfile": "package-lock.json",
"nodeVersionFile": ".nvmrc",
"environmentTemplate": ".env.example",
"entryPoints": {
"server": {
"path": "server.js",
"purpose": "Production HTTP server bootstrap, if confirmed by the implementation.",
"status": "planned"
},
"application": {
"path": "src/app.js",
"purpose": "Express application construction and middleware/route registration, if confirmed by the implementation.",
"status": "planned"
},
"frontend": {
"path": "index.html",
"purpose": "Public website entry page, if served directly by the configured frontend architecture.",
"status": "planned"
}
},
"startupPolicy": {
"singleDocumentedProductionCommand": true,
"entryPointMustBeVerified": true,
"frontendServingStrategyMustBeDocumented": true,
"environmentVariablesMustBeValidated": true
}
},
"projectAreas": [
{
"id": "root",
"path": ".",
"purpose": "Application entry points, package metadata, environment templates, container configuration, and project-wide documentation.",
"status": "planned"
},
{
"id": "github",
"path": ".github/",
"purpose": "Issue templates, contribution workflows, CI, security scanning, dependency updates, deployment, and release automation.",
"status": "planned"
},
{
"id": "husky",
"path": ".husky/",
"purpose": "Optional Git hooks for commit messages, pre-commit checks, and pre-push validation.",
"status": "planned"
},
{
"id": "pages",
"path": "pages/",
"purpose": "Public informational, contact, service, accessibility, sitemap, error, and offline pages.",
"status": "planned"
},
{
"id": "account",
"path": "account/",
"purpose": "Authentication, profiles, dashboards, applications, counselling, documents, payments, subscriptions, and support.",
"status": "planned"
},
{
"id": "education",
"path": "education/",
"purpose": "Courses, colleges, universities, admissions, study in India, study abroad, and educational resources.",
"status": "planned"
},
{
"id": "career",
"path": "career/",
"purpose": "Jobs, internships, employer services, recruitment, resume assistance, interview preparation, and career resources.",
"status": "planned"
},
{
"id": "admin",
"path": "admin/",
"purpose": "Administrative interfaces for users, roles, applications, courses, colleges, jobs, documents, payments, subscriptions, support, audit logs, and settings.",
"status": "planned"
},
{
"id": "legal",
"path": "legal/",
"purpose": "Privacy, terms, refunds, disclaimers, cookies, accessibility, data deletion, consent, employer, job-service, payment, and grievance policies.",
"status": "planned"
},
{
"id": "assets",
"path": "assets/",
"purpose": "Public frontend CSS, JavaScript, reviewed datasets, images, icons, and approved downloadable resources.",
"status": "planned",
"subareas": [
"assets/css/",
"assets/js/",
"assets/data/",
"assets/images/",
"assets/icons/",
"assets/documents/"
]
},
{
"id": "public",
"path": "public/",
"purpose": "Public web resources and metadata, including robots.txt, sitemap.xml, web manifests, and security.txt where applicable.",
"status": "planned"
},
{
"id": "database",
"path": "database/",
"purpose": "MySQL schema definitions, ordered migrations, controlled seed data, and database documentation.",
"status": "planned",
"databaseEngine": "MySQL",
"rules": [
"Use the migration mechanism adopted by the repository.",
"Never include production database exports or credentials.",
"Use synthetic test data.",
"Document destructive migrations and recovery limitations."
]
},
{
"id": "storage",
"path": "storage/",
"purpose": "Runtime storage conventions for private files, temporary files, and logs.",
"status": "planned",
"gitPolicy": "Runtime contents must not be committed; use documented ignore rules and external persistent storage where appropriate."
},
{
"id": "src",
"path": "src/",
"purpose": "Backend application configuration, routing, controllers, middleware, services, models, repositories, validation, policies, integrations, templates, workers, and jobs.",
"status": "planned",
"subareas": [
"src/config/",
"src/routes/",
"src/controllers/",
"src/middleware/",
"src/services/",
"src/models/",
"src/repositories/",
"src/validators/",
"src/policies/",
"src/utils/",
"src/integrations/",
"src/templates/",
"src/workers/",
"src/jobs/"
]
},
{
"id": "infrastructure",
"path": "infrastructure/",
"purpose": "Deployment, backups, recovery, monitoring, capacity planning, rollback, and queue-operations documentation and scripts.",
"status": "planned"
},
{
"id": "scripts",
"path": "scripts/",
"purpose": "Environment validation, database migration and seed commands, data validation, and operational utilities.",
"status": "planned"
},
{
"id": "tests",
"path": "tests/",
"purpose": "Unit, integration, API, database, security, end-to-end, accessibility tests, fixtures, and test documentation.",
"status": "planned"
},
{
"id": "docs",
"path": "docs/",
"purpose": "Architecture, API, database, security, deployment, testing, and operational documentation.",
"status": "planned"
}
],
"documentCollections": [
{
"id": "admission-guides",
"path": "assets/documents/admission-guides/",
"manifest": "assets/documents/admission-guides/MANIFEST.json",
"purpose": "Public guides for course selection, eligibility, admissions, applications, and counselling.",
"status": "planned",
"contentRequirements": [
"Verify time-sensitive information against official sources.",
"Include a last-reviewed date where appropriate.",
"Do not guarantee admission, seat allocation, or outcomes without a valid basis."
]
},
{
"id": "career-resources",
"path": "assets/documents/career-resources/",
"manifest": "assets/documents/career-resources/MANIFEST.json",
"purpose": "Public career-development resources covering resumes, cover letters, interviews, job search, internships, and workplace skills.",
"status": "planned"
},
{
"id": "checklists",
"path": "assets/documents/checklists/",
"purpose": "Printable checklists grouped by admissions, applications, career, education, examinations, general tasks, and study abroad.",
"status": "planned"
},
{
"id": "fee-guides",
"path": "assets/documents/fee-guides/",
"manifest": "assets/documents/fee-guides/MANIFEST.json",
"purpose": "Public educational guides about fees, living costs, financial aid, loans, counselling charges, and refund terms.",
"status": "planned",
"contentRequirements": [
"Distinguish estimates from confirmed charges.",
"Identify the source and applicable academic year for time-sensitive figures.",
"Link to official fee schedules when available."
]
},
{
"id": "study-abroad-guides",
"path": "assets/documents/study-abroad/",
"manifest": "assets/documents/study-abroad/MANIFEST.json",
"purpose": "International education planning resources for applications, immigration preparation, funding, accommodation, and student safety.",
"status": "planned",
"contentRequirements": [
"Use official government and institutional sources for immigration requirements.",
"Clearly distinguish general information from professional advice.",
"Review time-sensitive country-specific requirements regularly."
]
}
],
"security": {
"neverCommitSecrets": true,
"environmentSecretsSource": ".env",
"environmentTemplate": ".env.example",
"privateStorageMustBeProtected": true,
"privateRecordsRequireAuthorization": true,
"verifyPaymentWebhooks": true,
"useParameterizedDatabaseQueries": true,
"reviewDependenciesAndRunSecurityChecks": true,
"doNotPublishPrivateApplicantDocuments": true,
"doNotTrustClientSuppliedRolesOrPaymentStates": true,
"useSyntheticTestData": true,
"securityReportingDocument": "SECURITY.md"
},
"quality": {
"formattingConfig": ".prettierrc.json",
"lintConfig": ".eslintrc.json",
"editorConfig": ".editorconfig",
"testDirectory": "tests/",
"documentationDirectory": "docs/",
"workflowDirectory": ".github/workflows/",
"rules": [
"Only document commands that are configured or explicitly identify them as examples.",
"Do not mark tests as passing unless they have been executed successfully.",
"Keep automated checks aligned with the actual package scripts.",
"Do not commit generated reports or runtime artifacts unless explicitly required."
]
},
"git": {
"ignoreFile": ".gitignore",
"attributesFile": ".gitattributes",
"requiredTrackedFiles": [
"README.md",
"LICENSE",
"CONTRIBUTING.md",
"CODE_OF_CONDUCT.md",
"SECURITY.md",
"CHANGELOG.md",
"package.json",
"package-lock.json"
],
"requiredTrackedFilesArePolicy": "Intended baseline only; verify each path before enforcing it in CI.",
"rules": {
"gitDoesNotTrackEmptyDirectories": true,
"doNotCommitEnvironmentFiles": true,
"doNotCommitRuntimeStorage": true,
"doNotCommitNodeModules": true,
"doNotCommitProductionDatabaseDumps": true,
"preserveLockfile": true,
"respectCaseSensitivePaths": true,
"checkIgnoredFilesBeforeAdding": true,
"avoidForceAddingSecrets": true
},
"recommendedChecks": [
"git status –short",
"git diff –check",
"git check-ignore -v PATH",
"git ls-files",
"git diff –cached –check"
]
},
"dataGovernance": {
"publicDataMustBeReviewed": true,
"timeSensitiveEducationInformationMustBeVerified": true,
"feeAndAdmissionClaimsMustUseOfficialSources": true,
"privateRecordsMustNotBeStoredInPublicAssets": true,
"keepDirectoryManifestsSynchronized": true,
"useSyntheticDataInFixtures": true,
"avoidUnsupportedAdmissionOrEmploymentGuarantees": true
},
"manifestValidation": {
"format": "JSON",
"encoding": "UTF-8",
"commentsAllowed": false,
"trailingCommasAllowed": false,
"requireUniqueAreaIds": true,
"requireUniqueCollectionIds": true,
"pathsMustBeRepositoryRelative": true,
"pathSeparators": "forward-slash",
"verifyParentDirectoryBeforeAddingFile": true,
"nestedManifestPathsMustBeConsistent": true,
"statusMustReflectVerification": true,
"manifestMustNotClaimUnverifiedFilesExist": true
},
"maintenance": {
"maintainedBy": "MedOrbits",
"updateWhenProjectStructureChanges": true,
"verifyPathsBeforeMarkingExisting": true,
"keepNestedManifestsConsistent": true,
"reviewSecurityAndDeploymentDocumentation": true,
"reviewRuntimeVersionAndDependencies": true,
"reviewManifestChangesInPullRequests": true
},
"notes": [
"This manifest documents intended structure; it does not prove that listed paths exist.",
"All paths are relative to the repository root.",
"Use planned until the path has been verified in the working tree or repository.",
"Git tracks files, not empty directories. Add a meaningful file or an intentional .gitkeep placeholder when an otherwise empty directory must be represented.",
"A .gitkeep file is a convention, not a special Git feature.",
"The root server.js, src/app.js, and index.html must have clearly documented responsibilities and a verified production startup command.",
"Use MySQL consistently if it is the selected database engine.",
"Keep private uploads and application records outside publicly served asset directories.",
"Do not use force-add commands to bypass ignore rules for secrets or private data.",
"The repository root name is determined by the actual checkout directory; repositoryRoot is set to . rather than a hard-coded folder name.",
"Only add schema validation to CI after a validator and an agreed schema are available."
]
}