Skip to main content

ristek-verify - Documentation

Document Status
Document OwnerProduct Engineering 2026Product Engineering 2026
Contributors
Project Linkshttps://github.com/RistekCSUI/ristek-verifyhttps://github.com/RistekCSUI/ristek-verify
Project Linkshttps://verify.ristek.cs.ui.ac.idhttps://verify.ristek.cs.ui.ac.id
Project Links[Monitoring Dashboard][Monitoring Dashboard]
Project Links[API Documentation][API Documentation]
Project Links[Other Related Doc/Link][Other Related Doc/Link]
TeamTheodore Kevin Himawantheodore.kevin@ristek.cs.ui.ac.id
TeamAri Darrell Muljonodarrell@ristek.cs.ui.ac.id
TeamGrace Karinagracekarin@ristek.cs.ui.ac.id
TeamYeshua Marco G. Manurungmarco@ristek.cs.ui.ac.id

πŸ”Ž Background

Overview​

RISTEK Verify is a public-facing web service used to validate certificate or ticket IDs issued by RISTEK and present the corresponding proof to end users. It solves the business problem of manual credential checking by giving organizers, participants, and external reviewers a single self-service verification flow tied directly to the official verification API.

Stakeholders​

  • Users: Event participants
  • Upstream Dependencies: Backend
  • Downstream Consumers: End users accessing the web application through a browser

Scope & Boundaries​

  • In Scope: UI and integration with the verify API endpoints.
  • Out of Scope: Backend verification logic, certificate generation, ticket issuance, database changes, migration of historical data, frontend redesign outside the existing verification experience, and third-party integrations beyond the configured verify API.

βš™οΈ Architecture & Design

System Diagram​

Architecture Decisions (ADRs)​

  • Language/Framework: TypeScript, React 18, Next.js 13
  • Database: -
  • Communication: Synchronous HTTPS calls

πŸ’»Technical Specifications

API Documentation​

Data Model/Schema​

Project Structure​

ristek-verify/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ app/
β”‚ β”‚ β”œβ”€β”€ components/ # Reusable UI such as navbar and result modals
β”‚ β”‚ β”œβ”€β”€ sections/ # Landing page sections (hero, about, contributors, footer)
β”‚ β”‚ β”œβ”€β”€ globals.css # Global styles
β”‚ β”‚ β”œβ”€β”€ layout.tsx # Root layout and metadata
β”‚ β”‚ └── page.tsx # Main verification flow and API integration
β”‚ └── type.ts # Shared TypeScript interfaces for API response data
β”œβ”€β”€ public/
β”‚ β”œβ”€β”€ assets/ # Decorative page assets
β”‚ β”œβ”€β”€ icons/ # UI icons and favicon assets
β”‚ └── images/ # Partner logos and modal images
β”œβ”€β”€ docs/
β”‚ └── verify-service-architecture.mmd
β”œβ”€β”€ package.json
└── README.md

Components​

LayerPathsResponsibility
Application Shell Layersrc/app/layout.tsxInitializes the Next.js app shell, including global stylesheet loading, metadata definition, favicon registration, font setup through next/font, and the root HTML/body wrapper used by all rendered pages.
Verification Orchestration Layersrc/app/page.tsxHandles the main public verification flow, including client-side state for modal visibility and result payloads, synchronous API calls to the upstream verify service, response branching between certificate and ticket rendering, construction of certificate asset URLs, and user feedback through toast notifications.
Verification Input Layersrc/app/sections/HeroSection.tsxHandles certificate or ticket ID collection from the landing page, manages local form state, adapts input copy based on viewport size, and triggers the parent verification action.
Verification Result Presentation Layersrc/app/components/CertModal.tsx, src/app/components/TicketModal.tsxRenders the verification result UI for certificates and tickets, including metadata display, certificate image preview, PDF and PNG download actions, and clipboard-based copy interactions for IDs and certificate images.
Content and Navigation Layersrc/app/components/NavigationBar.tsx, src/app/sections/About.tsx, src/app/sections/Contributors.tsx, src/app/sections/Footer.tsxProvides the supporting landing page structure around the verification feature, including top-level navigation, service context, contributor information, and footer content.
Type Definition Layersrc/type.tsStores the shared TypeScript interfaces for certificate and ticket payloads so the frontend can consistently model upstream verification responses.

☁️ Operational Playbook

Infrastructure​

Environment Variables​

πŸ™‹Questions

πŸ—’ List of frequently asked questions or question that need to be answered that is related to this initiative ..