One platform to train, test and map every skill.

Smart India Hackathon 2026 · PS 26075 · India Meteorological Department · Team Syntax Squad

One platform to train, test and map every skill.

Capacity Connect is a digital capacity-building and learning platform for the India Meteorological Department: admin-approved accounts, four-tier role security, AI-drafted assessments that run in the cloud or fully offline, and competency mapping that matches the right trainer to the right course.

4roles in one hierarchy
4checkpoints on every request
768numbers in every skill fingerprint
2AI modes: cloud or fully offline

What the brief asks for, and what we built

Every requirement in the problem statement maps to a concrete piece of the design, with the page that explains it.

RequirementHow it is metWhere
Sign-up and login for three rolesBetter Auth with JWT sessions. Roles are rows in user_roles: admin, trainer, trainee, plus a system tier for background jobs.Roles
Admin approval and role managementEvery role row starts unapproved. A bulk approve and reject queue lets admins decide.Roles
Trainee profile: qualifications, experience, skills, certificatestrainee_profiles with structured JSONB for qualifications, work experience and certificates, plus skills and interests.Data model
Course enrollmentA unique enrollment per trainee and course, so double clicks are harmless.Data model
Trainer resource libraryLectures, presentations and study material on a private volume. Files are served only through the authenticated API.Files
MCQ assessments with deadlinesManual or AI-drafted questionnaires, a deadline, one attempt, and scoring on the server.Assessments
FeedbackA 1 to 5 rating and a comment per course, aggregated on the admin dashboard.Data model
Competency mappingSkill fingerprints for trainers and courses in pgvector, ranked by cosine similarity.Matching
Admin dashboardsOverview, list and management templates cover approvals, courses, assessments and competency.Clients
Homepage announcementsNotices targeted at chosen roles, with expiry and read tracking.Data model

Three ideas that work together

1

Train

People sign up, an admin approves them, and they join courses. Trainers upload slides and notes into a shared library. Trainees study there and download a certificate at the end.

2

Assess

A trainer asks the AI helper to draft a multiple-choice quiz from their own material, then edits it. Marking is automatic and deadlines are enforced by the server.

3

Map

Every trainer and course gets a skill fingerprint made of 768 numbers. Comparing fingerprints shows which trainer suits which course, and where the gaps are.

Why it holds up

Security in depth

Nginx limits, per-user rate limits, four checkpoints on every request, and row-level security that also covers vectors.

AI that works offline

One switch, AI_PROVIDER, selects Vertex AI (Gemini) or local Ollama. Embeddings are always local, so a weak connection cannot stop ingestion.

A human in the loop

Generated questions land as drafts. Nothing reaches trainees until a trainer reviews and publishes.

Private by default

Files have no public URLs. Downloads pass the same checks as any other request.

Verifiable certificates

PDFs rendered by Gotenberg, each with a unique verification code and QR.

A clear scaling path

A modular monolith today, with modules already separated so it can split into services by capability.

The people it serves

Four roles, one hierarchy. The system tier keeps the platform running, admins govern, trainers teach and trainees learn.

Role hierarchy

AUTHORITYHOW THE DATABASE ENFORCES ITSUPER ADMINSystem tier · service identity, no screens✓ Runs the background embedding workers✓ Writes the vector data the AI features rely on✓ Never a login: no menu, no dashboardRLS ruleapp.current_role = super_adminkeeps embeddings and jobs runningADMINGoverning tier · person, web admin console✓ Approves accounts, assigns and manages roles✓ Owns dropdowns, notices and dashboards✓ Sees competency suggestions for every courseRLS ruleadmin sees all trainer profiles and resourcesapproves accounts, grants the roleTRAINERTeaching tier · person, portal and mobile✓ Creates courses, uploads the resource library✓ Drafts, reviews and publishes MCQ assessments✓ Monitors trainee results and feedbackRLS ruleown profile and own uploadspublishes courses, quizzes, resourcesTRAINEELearning tier · person, portal and mobile✓ Enrolls, studies, attempts each quiz once✓ Gives feedback, sees skill gaps✓ Downloads a verifiable certificateRLS ruleonly rows from courses they joined
Full detail, permissions and enforcement on the Roles page.

Explore every role

Built with

Node.js + ExpressBetter AuthPostgreSQL 17pgvectorRow-level securityDrizzleReact + ViteReact RouterFlutterPythonOllama nomic-embed-textVertex AI GeminiQwen3.5 (local)GotenbergNginxDocker Compose
Capacity Connect · Team Syntax Squad · SIH 2026 · PS 26075Code samples are implementation sketches.