Mezuniyet Yıllığım
Digital school yearbook
A web application where students add photos and memories, teachers review contributions and agencies prepare school yearbooks.

- 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.
Application screens
Choose a screen to explore the end-to-end flow: from mobile student memory pages and peer notes to agency oversight, school-class hierarchies, yearbook edition management, and comment moderation. Screenshots show the Turkish interface.
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
Set up the school and classes
The agency establishes the school scope; CSV / XLSX imports bring in student and class data.
Organize yearbooks and participants
Associate classes, yearbooks and student pages with their school and agency scope.
Verify the role and session
Apply agency, teacher and student permissions through JWT / OTP and scope checks.
Prepare the student page
Associate content and photos with the page; keep media in private MinIO storage.
Collect memories and comments
Contributions to student pages enter the comment-moderation process.
Review content with teachers
Teachers and authorized roles manage comment states; sharing scope is checked for approved comments.
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
- Authorize the upload
The shared Go backend creates an upload intent and presigned URL.
- Associate private media
Completion validation links the uploaded object to the student page.
When reading through a sharing link
- Verify the sharing scope
The sharing token determines which student page can be read.
- Serve approved content
Approved comments and authorized media access feed the shared view.
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
