SCRL 0%CRSR 0,0
01 — WORK
GET IN TOUCH
← BACK TO WORK
01 · K-APPLY

Study-in-Korea applications, from catalog to acceptance, in four languages.

A production platform that helps students from Central Asia discover Korean universities, scholarships and language courses, and apply through a guided workflow.

ROLE
Founder, sole engineer
COMPANY
Discovery Group
TIMELINE
AUG 2025 — NOW
SCOPE
Product design · Full-stack build · Admin panel · Deploy pipeline
STACK
Next.jsNestJSGraphQLMongoDBMUIDockernginx
  • 4 LANGUAGES
  • 70+ UNIVERSITIES
  • 6-STEP PROFILE WIZARD
  • GOOGLE & TELEGRAM SIGN-IN
01
CONTEXT

Students from Central Asia had no single place to compare Korean universities and apply with confidence.

K-Apply is a production full-stack platform where students browse universities, scholarships and language courses, complete a guided profile, and track every application — while agency staff review submissions from a dedicated dashboard.

Designed, built and deployed solo: a NestJS GraphQL API with MongoDB, role-based auth and rate limiting; a Next.js + MUI frontend with Apollo Client; Dockerized behind nginx on a Linux VPS.

02
AT A GLANCE
70+
Korean universities modeled
4
Interface languages
6
Profile wizard steps
5
Pipeline stages per application
03
KEY FEATURES

Multi-provider auth

Google OAuth, Telegram Login with server-side HMAC verification, and JWT email/password sign-in.

University catalog

Majors, tuition, scholarships and multi-round GKS application periods, with rankings like Top 1% and Korea Top 10.

URL-synced filters

Every filter lives in the URL — bookmark, share or revisit any view and the exact search state comes back.

Guided application

A 6-step wizard for personal details, family, education, TOPIK/IELTS certificates and essays, saved as you go.

Visa status checker

A standalone microservice that checks visa status against visa.go.kr on demand.

Four languages

English, Korean, Russian and Uzbek across the whole product, with dark and light themes.

04
ARCHITECTURE

A NestJS monorepo — a code-first GraphQL API plus a batch app for scheduled jobs.

Next.js handles the frontend, and Apollo Client talks to the backend over GraphQL while caching responses locally. The API is split into independent modules — auth, student profiles, universities, scholarships, applications — that each own their resolvers and schemas, with data in MongoDB through Mongoose.

File uploads bypass GraphQL and go over REST into Cloudinary, and visa checks call the separately deployed checker service over HTTP. In production everything runs in Docker Compose behind nginx on a single Linux VPS, with PostHog for product analytics.

05
ADMIN PANEL

The role-based panel agency staff use to manage applicants and track each application through its rounds.

  • Catalog management

    Universities, scholarship programs and language courses with rounds, deadlines, tuition and majors.

  • Application pipeline

    Applied → Contacted → Contract signed → Submitted → Accepted, with internal notes on every applicant.

  • Full applicant profiles

    Education, certificates and essays open without leaving the review screen.

  • Notices & inquiries

    Publish multilingual notices and answer community questions in four languages.

  • Release discipline

    Releases follow fixed GKS admissions deadlines, so the platform is stable when application windows open.

USED TECHNOLOGIES
Next.js 14
TypeScript
MUI 5
Apollo Client
NestJS
GraphQL (code-first)
MongoDB Atlas
JWT · OAuth
Cloudinary
PostHog
Docker Compose
nginx + certbot
02NEXT PROJECT
AUTOAUCTION