Back to all projects

Mezuniyet Yıllığım

Digital school yearbook

A web application where students add photos and memories, teachers review contributions and agencies prepare school yearbooks.

Mezuniyet Yıllığım overview: digital school yearbook management platform; agency and school administration, class and student memory pages, comment moderation, and ZIP archiving.
Different roles, one shared graduation story.A promotional visual of the web application.
Who is it for?
Yearbook agencies, schools, teachers and students
My contribution
Independent project · Full-stack development
Period
Initial version: 2025 · Later moved to a shared Go backend

The need to solve

Agencies need to manage schools and classes while coordinating student photos and comments, teacher approval and content exports.

What it enables

Create student pages, add photos and comments, review them as a teacher and export yearbook content as files.

What I built

I developed agency, school and class-based yearbook workflows, bringing together student contributions, moderation and imports with role-based access.

Explore development details

For readers interested in the technical approach: workflows, technologies and implementation decisions.

How does the process work?

A multi-role process from agency school setup to student memory pages, teacher moderation and export.

Main flow

  1. Set up the school and classes

    The agency establishes the school scope; CSV / XLSX imports bring in student and class data.

  2. Organize yearbooks and participants

    Associate classes, yearbooks and student pages with their school and agency scope.

  3. Verify the role and session

    Apply agency, teacher and student permissions through JWT / OTP and scope checks.

  4. Prepare the student page

    Associate content and photos with the page; keep media in private MinIO storage.

  5. Collect memories and comments

    Contributions to student pages enter the comment-moderation process.

  6. Review content with teachers

    Teachers and authorized roles manage comment states; sharing scope is checked for approved comments.

  7. Export the yearbook

    Authorized users export scoped school / agency yearbook data and media as ZIP files.

Alternative and supporting processes

When a photo is added

  1. Authorize the upload

    The shared Go backend creates an upload intent and presigned URL.

  2. Associate private media

    Completion validation links the uploaded object to the student page.

When reading through a sharing link

  1. Verify the sharing scope

    The sharing token determines which student page can be read.

  2. Serve approved content

    Approved comments and authorized media access feed the shared view.

Different roles, one shared graduation story.A schematic illustration of how the product works.

The approach

  • Built school/class/yearbook structures, student pages and comment moderation, with role-based contribution and approval permissions for agencies, teachers and students.
  • Migrated the initial Supabase version to a Go backend shared with Anı Kutusu, separating product modules while sharing OTP/JWT authentication and private media infrastructure.
  • Built CSV/XLSX school imports and ZIP exports of yearbook content and MinIO media; scoped data access by agency and role.

Technologies

  • Next.js
  • Go
  • TypeScript
  • PostgreSQL
  • Redis
  • MinIO
  • Docker Compose