Skip to content

feat: add agentic workflow tooling and certificate generation#515

Closed
VulpritProoze wants to merge 57 commits into
PSITS-UCMAIN:stagingfrom
VulpritProoze:ram/cert-feat
Closed

feat: add agentic workflow tooling and certificate generation#515
VulpritProoze wants to merge 57 commits into
PSITS-UCMAIN:stagingfrom
VulpritProoze:ram/cert-feat

Conversation

@VulpritProoze

@VulpritProoze VulpritProoze commented May 20, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds two major tracks of work: a multi-provider agentic workflow layer for the repository, and the ICT Congress 2026 certificate generation feature set.

Ngano 27k Lines?

  1. Nidagan ug npm run format ang amaw wala ko kabantay
  2. Mga test infrastructure haha. Checks docs/test-infrastructure.md (fortunately, sa certificate.controller, eligibleCertificate.controller, ug authV2.controller ra nako gibutngan ug tests)
  3. Markdown files. Especially mga skills. New skills: analyze-design, code-review, engineering-plan, full-linting, full-tests, generate-tests, git-committer-atomic, review-test-fix-iterate.

High-level scope

  • Agentic workflow changes span AGENTS.md, .agents/rules, .agents/skills, .github/agents, .github/instructions, .bob, and GEMINI.md.
  • Certificate generation changes span the server controller, print template, image assets, active frontend certificate UI, tests, and supporting docs.
  • The branch is intentionally broad because the workflow foundation and the certificate feature were delivered together as one major release slice.

Workflow ecosystem

  • Copilot-facing surfaces now have explicit coordinator, implementor, small-fix, doc-updater, and TDD guidance.
  • Bob now has custom modes and mirrored rule files so the same repository conventions can be applied outside Copilot.
  • Gemini now has a repo-specific operating guide that mirrors the shared standards instead of relying on generic defaults.
  • The shared rules are centralized so future agents can reason from the same source of truth across providers.

Certificate feature scope

  • The backend generates ICT Congress 2026 PDF certificates for eligible students.
  • The student frontend lists eligible certificates and triggers PDF generation/download.
  • The PDF template now has explicit bottom-footer logo sizing and tightened typography so signer roles stay visible.
  • Supporting docs capture the plan, feature summary, setup, test infra, and test/report history for the feature.

File inventory

  • .agents/plan/certificate-generation-feature.plan.md — Implementation planning artifact for the certificate and workflow work.
    • Context: Captures the approved implementation plan used to guide the feature delivery.
  • .agents/rules/agent-behavior.md — Shared agent rule set that defines repo-wide behavior and constraints.
    • Context: Defines the canonical operating rules for AI agents working in this repo.
  • .agents/rules/architecture.md — Shared agent rule set that defines repo-wide behavior and constraints.
    • Context: Defines the canonical operating rules for AI agents working in this repo.
  • .agents/rules/coding-rules.md — Shared agent rule set that defines repo-wide behavior and constraints.
    • Context: Defines the canonical operating rules for AI agents working in this repo.
  • .agents/rules/linting.md — Shared agent rule set that defines repo-wide behavior and constraints.
    • Context: Defines the canonical operating rules for AI agents working in this repo.
  • .agents/rules/tech-stack.md — Shared agent rule set that defines repo-wide behavior and constraints.
    • Context: Defines the canonical operating rules for AI agents working in this repo.
  • .agents/skills/analyze-design/SKILL.md — Skill for analyzing the actual UI/design system in a codebase.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/code-review/SKILL.md — Skill for project-specific code review with high-signal feedback.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/engineering-plan/SKILL.md — Skill for generating structured engineering plans before implementation.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/full-linting/SKILL.md — Skill for running repo-wide lint and static validation.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/full-tests/SKILL.md — Skill for orchestrating full test runs across client and server workspaces.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/generate-tests/SKILL.md — Skill for generating coverage gaps into test files.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/git-committer-atomic/SKILL.md — Skill for atomic conventional commit planning and execution.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .agents/skills/review-test-fix-iterate/SKILL.md — Skill for test/review/fix orchestration across validation loops.
    • Context: Adds reusable workflow skills for analysis, planning, testing, review, and commits.
  • .bob/custom_modes.yaml — Bob custom-mode registry for the new coordinator/implementor workflow.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .bob/notes/pending-notes.txt — Bob workspace note artifact used by the custom workflow setup.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .bob/rules/agent-behavior.md — Bob-side mirror of the shared agent rules and conventions.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .bob/rules/architecture.md — Bob-side mirror of the shared agent rules and conventions.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .bob/rules/coding-rules.md — Bob-side mirror of the shared agent rules and conventions.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .bob/rules/linting.md — Bob-side mirror of the shared agent rules and conventions.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .bob/rules/tech-stack.md — Bob-side mirror of the shared agent rules and conventions.
    • Context: Extends the Bob provider setup with shared rules, notes, and custom modes.
  • .github/agents/coordinator.agent.md — Custom coordinator agent that routes work and defines task blocks.
    • Context: Defines Copilot custom agents and their routing/behavior instructions.
  • .github/agents/doc-updater.agent.md — Custom doc-updater agent for keeping documentation aligned with source.
    • Context: Defines Copilot custom agents and their routing/behavior instructions.
  • .github/agents/engineered-implementor.agent.md — Custom implementor agent for multi-file feature work.
    • Context: Defines Copilot custom agents and their routing/behavior instructions.
  • .github/agents/small-fix.agent.md — Custom small-fix agent for single-scope patches.
    • Context: Defines Copilot custom agents and their routing/behavior instructions.
  • .github/agents/tdd-guide.md — Custom TDD guide agent for test-first workflows and coverage discipline.
    • Context: Defines Copilot custom agents and their routing/behavior instructions.
  • .github/instructions/agent-behavior.instructions.md — GitHub/Copilot instruction mirror for the same agentic workflow rules.
    • Context: Adds instruction files so Copilot surfaces follow the same repository rules.
  • .github/instructions/architecture.instructions.md — GitHub/Copilot instruction mirror for the same agentic workflow rules.
    • Context: Adds instruction files so Copilot surfaces follow the same repository rules.
  • .github/instructions/coding-rules.instructions.md — GitHub/Copilot instruction mirror for the same agentic workflow rules.
    • Context: Adds instruction files so Copilot surfaces follow the same repository rules.
  • .github/instructions/linting.instructions.md — GitHub/Copilot instruction mirror for the same agentic workflow rules.
    • Context: Adds instruction files so Copilot surfaces follow the same repository rules.
  • .github/instructions/tech-stack.instructions.md — GitHub/Copilot instruction mirror for the same agentic workflow rules.
    • Context: Adds instruction files so Copilot surfaces follow the same repository rules.
  • .gitignore — Ignore rules updated for workflow artifacts and generated output.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • AGENTS.md — Repo-wide AI agent operating guide and delegation manifest.
    • Context: Updates the central agent manifest and project-wide contributor guidance.
  • GEMINI.md — Gemini-facing operating guide aligned with repo conventions.
    • Context: Mirrors the shared standards for Gemini-facing sessions and tooling.
  • client-side-ts/DESIGN.md — Active frontend design reference for the TypeScript client.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/package-lock.json — Active frontend dependency/script updates supporting the feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/package.json — Active frontend dependency/script updates supporting the feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/common/Footer.tsx — Shared active-frontend UI components used by the certificate and workflow UX.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/common/OptimizedImage.tsx — Shared active-frontend UI components used by the certificate and workflow UX.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/common/ProtectedRoute.tsx — Shared active-frontend UI components used by the certificate and workflow UX.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/ui/button.tsx — Shared UI primitives updated to stay consistent with the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/ui/card.tsx — Shared UI primitives updated to stay consistent with the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/ui/sidebar.tsx — Shared UI primitives updated to stay consistent with the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/ui/sonner.tsx — Shared UI primitives updated to stay consistent with the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/components/ui/tabs.tsx — Shared UI primitives updated to stay consistent with the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/data/sections-data.ts — Shared content/data definitions consumed by the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/api/admin.ts — Admin API client changes used by the expanded admin feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/components/index.ts — Admin feature component plumbing and exports.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/ViewToggle.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/AddEventModal.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/AttendeeSettingsModal.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/EditEventModal.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/EventInfoTab.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/MarkAttendanceModal.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/README.md — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/components/modals/SessionSetupTab.tsx — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-management/index.ts — Admin event-management UI updates tied to the broader event workflow.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-raffle/components/RaffleBackground.tsx — Admin raffle UI updates and supporting components.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-raffle/components/RaffleControls.tsx — Admin raffle UI updates and supporting components.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-raffle/components/RaffleSlotMachine.tsx — Admin raffle UI updates and supporting components.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-raffle/components/WinnersModal.tsx — Admin raffle UI updates and supporting components.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/event-raffle/raffle.tsx — Admin raffle UI updates and supporting components.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/admin/index.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/auth/api/auth.api.test.ts — Auth API/client wiring and tests supporting the new workflow baseline.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/auth/api/documentation.ts — Auth API/client wiring and tests supporting the new workflow baseline.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/auth/api/forgot.ts — Auth API/client wiring and tests supporting the new workflow baseline.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/auth/api/index.ts — Auth API/client wiring and tests supporting the new workflow baseline.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/auth/components/LoginForm.test.tsx — Auth UI tests and form components used in the active frontend.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/certificates/api/certificateApi.test.ts — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/api/certificateApi.ts — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/components/CertificateEventList.test.tsx — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/components/CertificateEventList.tsx — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/components/GenerateCertificateButton.test.tsx — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/components/GenerateCertificateButton.tsx — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/index.ts — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/certificates/types/index.ts — Student certificate module for eligibility, listing, generation, and tests.
    • Context: Implements the student-facing certificate eligibility and generation flow.
  • client-side-ts/src/features/events/api/eventService.ts — Shared event API and UI components consumed by certificate and event flows.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/events/components/QRCodeDisplay.tsx — Shared event API and UI components consumed by certificate and event flows.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/events/components/SessionStatusList.tsx — Shared event API and UI components consumed by certificate and event flows.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/events/index.tsx — Shared event API and UI components consumed by certificate and event flows.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/orders/api/orders.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/orders/api/promo.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/orders/components/CartArea.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/orders/components/OurShop.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/orders/components/ProductDetails.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/orders/index.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/student/api/student.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/student/index.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/features/student/types/student.types.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/layouts/AdminLayout.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/layouts/MainLayout.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/layouts/StudentLayout.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/lib/cart.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/lib/transactions.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/CertificatesPage.test.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/CertificatesPage.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/admin/EventRafflePage.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/auth/SignUp.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/events/sections/PastEvents.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/home/index.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/home/sections/GetInvolvedSection/GetInvolvedSection.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/home/sections/HomeBanner.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/home/sections/Resources.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/orders/components/Cart.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/orders/components/ProductDetails.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/orders/components/Shop.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/organizations/sections/OrganizationSection.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/resources/index.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/resources/sections/ResourcesSection.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/pages/student/MyOrders.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/router.tsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/test/msw/handlers.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/test/msw/server.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/test/setup.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/types/api.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/src/utils/alertHelper.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/tsconfig.app.json — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side-ts/vitest.config.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the active frontend aligned with the new certificate workflow and UI patterns.
  • client-side/DESIGN.md — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • client-side/src/App.jsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • client-side/src/api/admin.js — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • client-side/src/components/layout/AdminLayout.jsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • client-side/src/pages/admin/EligibleCertificates.jsx — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • docs/api.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/code-review-reports/2026-05-19-review-report1.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/code-review-reports/2026-05-20-review-report1.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/decisions/2026-05-16-srv-dns-workaround.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/feature-reports/authv2_flow.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/feature-reports/certificate_feature.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/linting-reports/2026-05-16-linting-report1.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/linting-reports/2026-05-16-linting-report2.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/migration-status.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/overview.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/plans/certificate-generation-feature.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/plans/full-tests-baseline-rollout.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/setup.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-infrastructure.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-16-test-report1.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-19-test-report1.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-19-test-report2.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-19-test-report3.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-20-test-report1.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-20-test-report2.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • docs/test-reports/2026-05-20-test-report3.md — Documentation, plans, or test reports keeping the workflow and features discoverable.
    • Context: Documents the workflow, setup, planning, and test status for maintainers.
  • package-lock.json — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Supports the net branch scope and should be reviewed as part of the full PR.
  • server-side/.gitignore — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/package-lock.json — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/package.json — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/app.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/ejs/cert-participation-mail-body.ejs — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/ejs/fonts/AlexBrush-Regular.ttf — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/ejs/fonts/Cinzel-VariableFont_wght.ttf — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/ejs/fonts/Montserrat-VariableFont_wght.ttf — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/ejs/pdf-ejs/certificate.ejs — Print template for the generated certificate PDF.
    • Context: Controls certificate typography, footer spacing, and logo placement for PDF output.
  • server-side/src/assets/ejs/pdf-ejs/certificate2.ejs — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/ejs/pdf-ejs/certificate3.ejs — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/assets/images/etc/all_logos-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/carlo_petalver-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/eric_ortega-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/esig_test2.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/janette_tanquis-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/neil_basabbe-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/psits.jpg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/etc/top-logos.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/fullscale-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/fullscale-logo.jpeg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/kohfee-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/kohfee-logo.jpeg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/n compass-logo.jpeg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/oltek-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/oltek-logo.jpeg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/philnits-logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/pldt-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/pldt-logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/rococo-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/rococo-logo.jpeg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/skloud-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/skloud-logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/talleco-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/talleco-logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/truestaff-logo-removebg-preview.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/bottom-logos/truestaff-logo.jpeg — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/ccs_logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/logos-bottom.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/psits_logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/assets/images/logos/uc_logo.png — Certificate artwork and logo assets used by PDF generation.
    • Context: Adds the logo artwork required by the printable certificate.
  • server-side/src/controllers/certificate.controller.ts — Certificate PDF generation and student eligibility controller.
    • Context: Runs the backend certificate PDF generation, cooldown, and eligibility logic.
  • server-side/src/controllers/eligibleCertificate.controller.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/controllers/event.controller.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/index.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/mail_template/mail.interface.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/mail_template/mail.schema.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/mail_template/mail.template.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/mail_template/utils/generate-pdf-from-ejs.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/middlewares/custom_authenticate_token.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/middlewares/verifyAdmin.middleware.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/middlewares/verifyStudent.middleware.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/models/attendee.model.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/models/eligibleCertificate.interface.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/models/eligibleCertificate.model.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/routes/certificate.route.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/routes/eligibleCertificate.route.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/routes/index.route.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/scripts/.gitignore — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/scripts/data/bulk-email-data.json — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/utils/escape-html.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/utils/path-normalizer.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/src/utils/to-base64.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/contract/authV2.contract.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/integration/authV2.integration.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/integration/certificate.controller.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/integration/eligibleCertificate.controller.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/setup/env.setup.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/unit/models/eligibleCertificate.model.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/unit/services/attendance.service.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/unit/services/eventStatistics.service.test.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/tests/utils/mongoTestServer.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.
  • server-side/vitest.config.ts — Part of the branch scope that supports the agentic workflow or certificate feature set.
    • Context: Keeps the backend implementation, tests, and PDF output aligned with the feature scope.

AdrianeDriane and others added 30 commits April 22, 2026 00:20
feat: cert creation script

feat: e-cert creation script utils

This is the 1st commit message:

blabla

Swap event venue and specific location

save 1

json

swap enue and venu specific

stop

ignore bulk-cert

ajaja
These skill definitions add reusable agent workflow guidance for planning, linting, test execution, and atomic commit hygiene. They centralize agent-facing configuration so future work can follow the same repository-specific process without rediscovering it each time.\n\nChanges:\n- Engineering plan skill: structured planning workflow for larger implementation tasks\n- Full linting skill: repository-wide lint validation guidance\n- Full tests skill: test execution and validation guidance across workspaces\n- Git committer atomic skill: atomic commit staging and message discipline
- 68 frontend issues detected (51 errors, 17 warnings)
- 4 backend TypeScript compilation errors
- Critical React hooks violations identified
- TypeScript 'any' usage documented (23 instances)
- Action plan with prioritized phases included

Generated by Bob Shell full-linting skill
Expand agent documentation from bare minimum to comprehensive standards covering architecture, naming conventions, linting configuration, and tech stack details.

Changes:
- AGENTS.md: Add reference section linking to detailed rules
- GEMINI.md: Expand to 100+ lines with quick reference structure
- .bob/rules/: Add 5 detailed markdown files for agent guidance

Notes:
- Provides structured reference for AI coding agents
- Maintains consistency across agent interactions
Add new certificate endpoints, eligible-certificate management, model interfaces, middleware wrappers, and PDF generation utility.

Changes:
- server-side/controllers: add certificate and eligibleCertificate controllers
- server-side/models: add eligibleCertificate interface and model; export Attendee model
- server-side/routes: add certificate and eligibleCertificate routes
- server-side/middlewares: add verifyStudent and verifyAdmin wrappers
- server-side/mail_template: improve EJS->PDF generation helper

Notes: includes package-lock.json updates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add Certificates page, API client, components and register route.

Changes:
- client-side-ts/features/certificates: new API client, components, and types
- client-side-ts/pages: add CertificatesPage and tests
- client-side-ts/router: register route for certificates
- client-side-ts/components/common/ProtectedRoute: fix ref usage to avoid render-time ref access

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add admin-facing Eligible Certificates page and admin API usage for legacy JS client.

Changes:
- client-side/src/pages/admin: add EligibleCertificates.jsx
- client-side/src/api/admin.js: add certificate-related API calls
- client-side/src/App.jsx & layout: register admin page

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add documentation for certificate feature and include linting report generated on 2026-05-16.

Changes:
- docs/CERTIFICATE_FEATURE.md: new feature doc
- docs/api.md: update API documentation
- docs/linting-reports: add generated linting report

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Tidy .gitignore and remove duplicate linting report file left over from earlier runs.

Changes:
- .gitignore: minor adjustment
- docs/linting-reports/LINTING_REPORT_2026-05-16.md: removed duplicate file

Notes:
- Agent artifact directories left uncommitted (.agents/, docs/test-reports/, server-side/tests/unit/models/) to avoid committing generated or ephemeral files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Set system DNS servers (1.1.1.1, 8.8.8.8) before mongoose.connect to work around Node/Windows SRV resolver issues when connecting to MongoDB Atlas. Can be disabled by setting FORCE_DNS=false in environment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…FUSED

Document rationale, testing, risks, and revert instructions for the DNS workaround applied to server-side/src/index.ts (commit 923797d). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…leCertificates

Fixed two tightly coupled issues that caused white-screen crash:
1. Import path was pointing to non-existent api/events module (corrected to api/event)
2. fetchAttendees was reading response.data (event metadata) instead of response.attendees (array), causing .filter() to fail

Changes:
- client-side/src/pages/admin/EligibleCertificates.jsx: corrected getAttendees import path and data binding
…ecks

Student lookups in bulkCheckEligibility and importEligibleCertificatesFromCSV were querying the wrong field (studentId instead of id_number), causing valid students to be reported as not found.

Changes:
- server-side/src/controllers/eligibleCertificate.controller.ts: added findStudentByIdNumber() helper with base-ID fallback logic (e.g., matching 24928350 against 24928350-* variants), fixed both functions to use it, added temporary diagnostic logging to trace CSV import flow for debugging.

Notes:
- Helper follows existing pattern from admin.controller.ts for consistency
- Temporary logging can be removed after CSV import is verified working end-to-end
- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ller

Improved robustness of getAllEventsAndAttendeesController by adding fallback logic to resolve events by multiple ID types:
- Direct _id lookup (primary)
- EligibleCertificate._id derivation (secondary fallback)
- eventId field lookup (tertiary fallback)
- Explicit 404 on not found instead of returning undefined/null

Changes:
- server-side/src/controllers/event.controller.ts: refactored event lookup with defensive fallbacks and error handling

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
VulpritProoze and others added 22 commits May 16, 2026 23:26
Certificate endpoints were using the old verifyStudent middleware which failed with 'JWT verify error: invalid signature' against authV2 tokens. Switched to requireAccessTokenV2 + roleAuthenticateV2 pattern matching studentsV2 and eventsV2 routes. Updated controller to read req.userV2.sub / req.userV2.idNumber instead of req.student / req.user.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…chema

ref: 'Event' (capital E) didn't match the registered model name 'event' (lowercase) in event.model.ts, causing MissingSchemaError on populate().

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e list

cert.eventId is a populated object {_id, name, date, venue} from the backend, but generateCertificate expects a plain string ID. Added ternary to extract _id when eventId is an object.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tance

Switch from raw axios + manual token handling to api/axios interceptor for authV2 compatibility. Replace sonner toasts with project's showToast utility.

Changes:
- certificateApi.ts: Remove sessionStorage token handling, use axios interceptor
- CertificateEventList.tsx: Replace sonner toast with showToast, add 403 error handling
- GenerateCertificateButton.tsx: Update toast calls to showToast

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove excessive console.log statements from CSV import endpoint. Restrict DNS server override to test database only. Add debug logging to student_authenticate middleware.

Changes:
- eligibleCertificate.controller.ts: Remove debug console logs from CSV import
- index.ts: Constrain DNS workaround to test database only
- custom_authenticate_token.ts: Add debug logging

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Changes:
- certificate3.ejs: New modern template with dark blue corners, gold accents, and SVG medal badge
- CertificateEventList types: Allow eventId to be string or populated object for flexibility
- CertificatesPage: Increase spacing (mb-12) between header and certificate list

These changes provide an alternative certificate design while maintaining compatibility with the existing certificate generation pipeline.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Minor updates to certificate.controller.ts, mail.template.ts, and bulk-email-data.json for consistency.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
These changes address the remaining client-side lint/type regressions reported in docs/test-reports/2026-05-19-test-report2.md and docs/test-reports/2026-05-19-test-report3.md, with context from docs/code-review-reports/2026-05-19-review-report1.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix line ending consistency (LF to CRLF)
- Apply ESLint and Prettier formatting rules
- Update all TypeScript/TSX files in src/ directory
- No functional changes, formatting only
- Add certificate.controller.test.ts with comprehensive test coverage
- Add eligibleCertificate.controller.test.ts for eligibility checks
- Configure vitest with MongoDB memory server setup
- Add test utilities for MongoDB test server management
- Add environment setup for test configuration
- Add test report 2026-05-20-test-report1.md
- Add test report 2026-05-20-test-report2.md
- Add code review report 2026-05-20-review-report1.md
- Update .agents/skills/review-test-fix-iterate/SKILL.md
- Add .bob/custom_modes.yaml for custom agent modes
- Add .bob/notes/ directory for agent notes
Add the new certificate logo assets and adjust the EJS template so the footer logos render at the bottom with more room. The typography and spacing are tightened to keep the signer roles visible alongside the expanded footer artwork.\n\nChanges:\n- certificate.controller.ts: points certificate data at the new top and bottom logo assets\n- certificate.ejs: reduces certificate spacing and reserves explicit room for the footer logo strip\n- assets: adds the new top logo and footer logo images used by the certificate template\n\nNotes:\n- The footer logo strip is sized explicitly for PDF output so it does not collapse into the remaining content area
@vercel

vercel Bot commented May 20, 2026

Copy link
Copy Markdown

@VulpritProoze is attempting to deploy a commit to the PSITS-UCMAIN's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need review. nangusab ang copilot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants