Platform Requirements

The agreed scope of work and basis for acceptance for the RISE AI Interview Coach — an implementation engagement delivered over three months for Tehnička škola.

Client
Tehnička škola
Vendor
Zoran Krnetić (PR BRIGHTNESS)
Engagement
Fixed-scope platform delivery
Duration
3 months
Version
2.1
Document date
2026-06-29 · status updated 2026-09-15
Status
Delivered and accepted

ETA. If signed and started in the first week of July, expected launch is the beginning of September.

Delivered and accepted. This document is a record, not a live specification. It states what was agreed, and it is deliberately not rewritten to describe the platform as it stands today — an acceptance basis that changes after acceptance no longer says what was contracted.

The platform has since gone well beyond this scope; most substantially, it now serves three partner schools rather than one. Everything added after acceptance is listed in §12 — Beyond the engagement. For how the system works today see the architecture document, and for what is still outstanding see the work plan.

01 — Context

Background & Context

RISE is an AI-powered interview-coaching platform that lets students practise job interviews in a realistic, structured setting and receive immediate, rubric-based feedback in their own language. Educators use the same platform to follow each student's progress and tailor their guidance. This PRD is created based on the ERASMUS+ project specification “KA210-VET — Small-scale partnerships in vocational training (KA210-VET)”.

Following the accepted proposal, Tehnička škola has engaged Zoran Krnetić, operating through the legal entity PR BRIGHTNESS, to design, build, and deliver the platform within a three-month implementation window. This document is the agreed scope of work and the basis for acceptance.

Engagement structure

Three delivery months, with a real-world testing window between the first two.

PhaseWindowOutcome
Month 1 Core PlatformWeeks 1–4A working, deployable interview-coaching platform with the full end-to-end student and teacher experience.
Pilot TestingEnd of Month 1 → start of Month 2Real students (provided by the project participants) run live sessions; structured feedback is collected.
Month 2 Launch PreparationWeeks 5–8Compliance, accessibility, analytics, cultural adaptation, teacher tooling, mobile support, and survey instrumentation — built on pilot findings to bring the platform to launch readiness.
Month 3 Launch & SupportWeeks 9–12Production go-live on the infrastructure provided by Marabunta, followed by monitoring and post-launch bug fixes to stabilise the platform in real use.

02 — Objectives

Goals & Success Criteria

Business goals

  1. Give students a safe, repeatable way to build interview confidence and skills.
  2. Give teachers and counsellors visibility into individual and cohort progress.
  3. Provide means for measuring skill improvement suitable for project reporting.
  4. Deliver a compliant, accessible, multilingual platform that can be operated at low cost.

Acceptance criteria — the platform is accepted when

  • A student can complete a full interview and receive useful, supportive, rubric-based feedback.
  • A teacher can review any student's history.
  • Interview history and scores are persisted and exportable.
  • Scenarios are editable by school staff without code changes. Satisfied, by a different mechanism than assumed here: each school points the platform at its own spreadsheet and imports it when ready. Editing the sheet no longer changes what students see until someone presses import.
  • The platform is GDPR-compliant with data-subject rights and minors' safeguards (§7.1). Corrected 2026-09-03: this originally read “with consent”. The lawful basis is Article 6(1)(e), public task, not consent — in a classroom the power imbalance means consent could not be freely given, and its withdrawal at any moment would make the pilot measurement impossible. That choice is also what makes Article 8’s digital age of consent inapplicable, which is what dissolved the differing thresholds across France, Portugal and Serbia. See DPIA.md §4.
  • The platform meets the agreed accessibility baseline (§7.2).
  • Students and teachers can use the platform on phones, tablets, and desktops (§7.6).
  • The platform runs reliably on the agreed hosting.

03 — Users

Personas

PersonaDescriptionPrimary needs
Student18–19 yrs, technical-school pupils; some with special educational needs (SEN).Practice interviews, understand feedback, see own progress, in own language, on any device.
TeacherSubject teacher running practice sessions.Review student work, track progress, leave notes, identify who needs help.
Career counsellorGuides students across classes/cohorts toward employment; distinct from a single-class teacher.Cross-cohort visibility, progress trends, at-risk flags.
AdministratorSchool IT / coordinator.Manage accounts, manage content, oversee compliance and exports.

04 — Plan

Delivery Plan

Month 1 Core Platform Weeks 1–4

Delivers the complete interview-practice loop end to end (scope in §6). Exit checklist:

Pilot Testing window

Month 2 Launch Preparation Weeks 5–8

Brings the platform to launch readiness and delivers the items in §7, prioritised by pilot findings:

PriorityItem§
MustGDPR compliance & minors' safeguards7.1
MustAccessibility (SEN) baseline7.2
MustMobile & tablet support7.6
MustPilot / survey instrumentation & KPI export7.8
ShouldStudent progress dashboard (tracking over time)7.3
ShouldTeacher per-student view + notes7.5
ShouldCultural adaptation in AI feedback7.4
ShouldCareer-counsellor role7.7

Exit: §2 acceptance criteria fully met on the vendor's staging server, pilot findings incorporated, platform launch-ready.

Month 3 Launch & Post-Launch Support Weeks 9–12

Takes the launch-ready platform live and stabilises it in real-world use.

Exit: platform live on production infrastructure, post-launch issues resolved, handover complete.

Note on production infrastructure. The production hosting environment is to be provided by Marabunta, as set out in the project specification (KA210-VET-778D8F70, “Activity 5”). Providing production infrastructure is not within the vendor's (Zoran Krnetić / PR BRIGHTNESS) scope or responsibility; the vendor delivers, deploys, and stabilises the platform on the infrastructure Marabunta or another RISE project participant provides.

05 — Technology

Architecture & Technology

React / Vite Frontend
        ↓
Node.js / Express Backend  ──→  Together.ai (Qwen)   (AI feedback)
        ↓
   PostgreSQL   ◀── offline import ──  Google Sheets   (content authoring)

Stack

  • Frontend: React + Vite + React Router.
  • Backend: Node.js + Express; cookie-based sessions.
  • Database: PostgreSQL (UUID keys, migration-managed schema).
  • AI provider: Together.ai, Qwen instruct model via OpenAI-compatible API; structured JSON validated against a schema with a repair retry.

Content & hosting

  • Content management: school staff author scenarios / questions / rubrics in Google Sheets; an import loads them into PostgreSQL and the app serves content from the database — Sheets is not called at request time.
  • Hosting: a single VPS behind nginx + TLS, managed via systemd; provider-agnostic so it can later move to cloud or an on-prem school appliance.
The architecture is deliberately modular (separate content source, AI provider, and persistence layers) to allow future expansion — additional professions, languages, a self-hosted model, or alternate content sources — without rework. See the companion Architecture & Infrastructure document for full detail.

06 — Scope

Month 1 Scope — Core Platform

6.1 Authentication & roles

  • Login / logout, server-side sessions, role-based routing.
  • Roles: student, teacher (administrator and counsellor roles introduced in Month 2 — §7.7).
  • Accounts provisioned by invitation (no open self-registration in the pilot).

6.2 Student experience

  • Choose interface language (Serbian, English, French, Portuguese).
  • Browse scenarios grouped by profession.
  • Complete an interview: questions presented sequentially; the platform — not the AI — controls the flow.
  • After each answer, structured AI feedback (per-criterion scores, strengths, improvements, an improved-answer example).
  • On completion, a final summary (overall score, strengths, improvements, encouragement).
  • Review past sessions and retry any scenario (attempts are tracked).

6.3 Teacher experience

  • Dashboard listing sessions with student, status, and average score.
  • Filter by student and status.
  • Open any session read-only to inspect every question, answer, score, and feedback.

6.4 Interview engine & AI feedback

  • Questions, rubrics, and scenarios are served from the database (authored in Google Sheets and imported — not read per request).
  • AI evaluates strictly against the rubric, stays encouraging, avoids harsh language, returns deterministic structured JSON.
  • All AI output validated; on failure a single repair pass is attempted before surfacing an error.
  • Per-message model and token accounting recorded (foundation for sustainability reporting).

6.5 Content (initial bank)

Initial scenarios delivered for two professions, multilingual (Serbian, English, French, Portuguese):

ProfessionScenarios
Service TechnicianTechnical troubleshooting · Customer communication / field support
Junior Brand ManagerGeneral interview · Behavioural / teamwork

The content schema supports adding further professions, sectors, and difficulty levels without code changes; expanding the bank is a content task for school staff — edit the sheet and re-import.

6.6 Data model (core)

users, interview_sessions, interview_messages, answer_feedback — persisted in PostgreSQL with full interview history, scores, and AI output retained per session and attempt.

07 — Scope

Month 2 Scope — Launch Preparation

The work that brings the platform to launch readiness: compliance, accessibility, analytics, and the tooling needed to operate it with real students at scale.

7.1 GDPR compliance & minors' safeguards Must

Target users include minors, SEN students, and migrants, so data-protection is a hard requirement, not an enhancement.

  • Privacy notice & consent capture. A privacy_version on each user; first login gated on accepting the current version. Documented lawful basis agreed with the school's DPO.
  • Data-subject rights. GET /api/me/export (JSON export of own sessions/answers/feedback) and DELETE /api/me (soft-delete + anonymisation: PII removed, aggregate KPIs retained).
  • Encryption at rest for student-authored content (student_answer, message content), key supplied via environment configuration.
  • Audit log (actor_id, subject_id, action, at) written whenever a teacher/admin reads a student's record.
  • Retention policy with a scheduled anonymisation job (e.g. sessions older than 24 months, or N days after last login).
  • Minors' safeguards. Date-of-birth at invitation; under-threshold users gated behind parental-email confirmation. A lightweight safety check (safety_review) on AI feedback, plus a “Report this feedback” control writing to a review queue.
  • DPIA — a Data Protection Impact Assessment prepared with the school's DPO, covering AI-assisted processing of minors' education data.

7.2 Accessibility for SEN students Must

  • Localised login (no English-only screens; falls back via browser language) so a non-English-literate student can sign in.
  • WCAG-AA pass: automated axe-core check wired into the build, top violations fixed.
  • aria-live announcements on feedback and summary panels for screen-reader / low-vision users.
  • An accessibility settings panel: dyslexia-friendly font (OpenDyslexic), font-size scaler (100 / 125 / 150 %), high-contrast theme, and text-to-speech playback (browser Web Speech API — no extra infrastructure).
  • Touch targets raised to a 44 px minimum; keyboard-only navigation audited.

7.3 Student progress dashboard (tracking over time) Should

Beyond a list of past sessions, students see how they improve over time.

  • GET /api/me/progress returning per-competency scores over time across scenarios.
  • A line-chart of competency trends on the student dashboard.
  • A “weakest competency” highlight with a “Practice this” shortcut.
  • A confidence self-report timeline (fed by §7.8 measures).

7.4 Cultural adaptation in AI feedback Should

Feedback reflects culturally appropriate interview norms rather than a single one-size template.

  • A country attribute on users (captured at invitation).
  • A culture_notes column in the CMS describing what “good” looks like per competency in a given context.
  • Cultural notes injected into the feedback prompt so guidance on communication style is context-appropriate.
  • Documented cultural axes for the contexts in scope.

7.5 Teacher per-student view + notes Should

  • A per-student page: summary across sessions and scenarios, weakest competency, attempt history.
  • Teacher notes saved against a student/session (POST /api/sessions/:id/notes, teacher-only), persisted to a teacher_notes table.
  • An at-risk indicator surfaced from low or declining scores.

7.6 Mobile & tablet support Must

  • Audited mobile-first layouts; device test pass on iOS Safari and Android Chrome.
  • Touch targets ≥ 44 px (shared with §7.2).
  • A sticky Submit control on the answer screen so it stays reachable above the on-screen keyboard.
  • Session lists render as cards on phones rather than a horizontally-scrolling table.

7.7 Career-counsellor role Should

Counsellors are a distinct user group from class teachers, with cross-cohort reach.

  • A counsellor role with visibility scoped to one or more cohorts rather than a single class.
  • A cohort-level progress view (reusing §7.3 / §7.5 surfaces) without exposing data beyond the counsellor's assigned cohorts.

7.8 Pilot tooling, surveys & KPI capture Must

Without measurement during the pilot, project outcomes cannot be reported. Stood up at the start of the pilot window so data is captured from the first real session.

  • A student_assessments table capturing: baseline digital-skills self-assessment, baseline confidence, post-session confidence, and a final survey.
  • A short Likert-scale (1–5) confidence prompt before and after each interview.
  • An in-app satisfaction / NPS-style question after the final summary (higher response rate than an external form).
  • An admin/teacher KPI export (GET /api/admin/kpi-export, CSV) covering the agreed 5–8 project KPIs (score improvement, confidence change, completion rate, engagement).
  • KPIs defined and instrumented before the pilot begins — not reconstructed afterward.

08 — Quality

Testing & Pilot Approach

  1. Internal verification (Month 1). Tests of the student and teacher flows on staging.
  2. Pilot (between months). Real test subjects supplied by the project participants run live sessions. Instrumentation from §7.8 collects quantitative measures; the vendor collects qualitative usability, language-quality, and device findings.
  3. Triage. Findings categorised (blocker / important / minor) and scheduled into Month 2.
  4. Acceptance verification (Month 2). Re-run pilot scenarios against the launch-ready build; confirm every §2 acceptance criterion and that pilot findings are resolved.
  5. Production verification & stabilisation (Month 3). Smoke-test the production deployment on Marabunta's infrastructure after go-live; monitor real use and resolve post-launch issues.

09 — Outputs

Deliverables

#DeliverablePhase
D1Deployed core platform (student + teacher flows, multilingual, AI feedback)Month 1
D2Initial scenario bank (2 professions, 4 scenarios, SR/EN/FR/PT) authored in Sheets and imported to the databaseMonth 1
D3Staging environment for the pilot + pilot instrumentationPilot
D4Pilot findings reportPilot
D5GDPR/compliance package: consent, DSR endpoints, encryption, audit log, retention job, DPIAMonth 2
D6Accessibility baseline + settings panelMonth 2
D7Mobile/tablet-ready UIMonth 2
D8Progress dashboard, teacher per-student view + notes, counsellor roleMonth 2
D9Cultural-adaptation feedbackMonth 2
D10KPI export + survey instrumentationMonth 2
D11Production go-live on Marabunta infrastructure + handover docs (admin, content-editing, account guides)Month 3
D12Post-launch monitoring & bug fixesMonth 3

10 — Boundaries

Out of Scope

The following are explicitly not part of this three-month engagement (candidates for a possible future phase):

  • Open public self-registration (access is invitation-based).
  • Voice or video interviews.
  • A dedicated marketing website and social-media campaign.
  • Employer-facing portal.
  • A self-hosted / on-prem AI model (architecture stays compatible, but hosting Qwen locally is future work).
  • Native mobile apps (the web app is responsive; no app-store builds).
  • A public community forum.
  • Load-testing at large scale and formal performance optimisation beyond the pilot's needs.

11 — Dependencies

Assumptions & Dependencies

12 — After acceptance

Beyond the Engagement

Everything below was built after the scope above was accepted, between August and September 2026. It is recorded here so the difference between what was contracted and what exists is visible, rather than blurred by editing the sections above.

The platform serves three schools, not one

This document was written for a single school. The platform now serves Tehnička škola Zrenjanin, Lycée Professionnel Jacques Le Caron and AEVA in one system, separated from each other.

Content moved into the platform’s own database

Spreadsheets remain the authoring surface; the platform no longer reads them while a student is interviewing.

Data protection, built rather than promised

Measurement and content quality

Operations

Getting in, and getting locked out

How much a student may take on

Three limits, set per school over a platform default. They are a cost ceiling as much as a pedagogical one: every answer is two calls to the language model, and a measured cohort of roughly 300 students is the first time this platform meets a bill that scales with enthusiasm.

The school completes its own privacy notice

Somewhere to write when something breaks

What the platform can count about itself

Still outstanding

Named here so this document is not read as a completion certificate. The current list lives in the work plan.