Portfolio Case Study

Yurasis EDU

Next.jsTypeScriptEducationRole-based AccessProduct Design

A role-aware learning workspace that keeps courses, long-form lessons, protected materials, announcements, threaded discussion, assignments, and submissions in one continuous instructor-to-student flow.

July 31, 20266 min readLive service
Yurasis EDU public landing page
01 / 4Public EDU landing

02 — Screens and brief

Core roles
Owner / instructor / student
Learning flow
Course → lesson → assignment → submission
Public surfaces
Landing / product article

Client
Yurasis platform
Role
Product architecture, instructor and student journeys, access control, assignment workflow, public launch experience

03Access model

Account role and course membership solve different problems

User.eduRole determines whether an account may create courses, while EduCourseMember.role defines what that person can do inside one course. OWNER and INSTRUCTOR can manage lessons, announcements, assignments, invites, and members; STUDENT can read member content, comment, and submit work. The two layers prevent a global instructor flag from becoming implicit access to every course.

Administrators receive read-only observer access for support and QA. That exception is deliberately expressed as canView without canManage or isMember, so an administrator cannot edit a course, post a member comment, or change notification membership simply because they can inspect it.

04Learning context

Lessons carry the materials and assignments that belong to them

A lesson is a long-form page with a title, date, HTML body, attachment block, assignment block, and discussion. Instructors write with the same lightweight editing language used elsewhere in Yurasis, while students encounter the materials before the work that depends on them.

Files are stored outside the public directory and streamed only through authenticated course APIs. The public catalog exposes only the minimal course description; lessons, downloads, announcements, discussions, and submissions stay behind membership checks.

05Assignment workflow

Deadline-first for students, completion-first for instructors

Assignments support text, files, or both, with a due date, late-submission policy, and file-count limits. Each student has one submission row per assignment, so resubmission updates the same work instead of creating an ambiguous history of active answers.

The student workspace sorts open work by deadline and separates submitted and past work. The instructor view exposes submitted and missing students, late status, text responses, and protected downloads. Controls are rendered from the same access contract returned by the API.

06Launch system

A public product story leads into a protected learning workspace

The EDU root is a public landing page and /edu/article explains the product model before sign-in. The course catalog moved to /edu/courses, keeping all existing course detail URLs stable. Middleware makes only the landing and article public; every application route and every EDU API stays authenticated.

The same route tree is served on edu.yurasis.com through host-aware rewrites, with links shortened on the subdomain and preserved under /[lang]/edu on the main host. Portfolio imagery is captured from the shipped UI rather than mocked.

Interactive build

Yurasis EDU

Start on the public EDU landing page and article, then sign in with a Yurasis account to explore the role-specific course workspace. The article documents the instructor and student paths verified in QA.

See demo

Yurasis

상호: 유라시스 랩

대표: 이규형

사업자등록번호: 842-05-03371

주소: 서울특별시 강남구 선릉로69길 19, 101동 401호(역삼동, 역삼래미안)

업태: 정보통신업 · 종목: 응용 소프트웨어 개발 및 공급업, 컴퓨터 프로그래밍 서비스업

TEL: 010-2709-9846

Email: siholee@yurasis.com

Yurasis EDU Case study | YURASIS Portfolio