화장품 임상시험 완료 보고서를 등록·관리하고 보고서마다 고유 QR을 발급해 이력을 추적하며, 고객사는 별도 포털에서 자사 보고서만 조회하고 제품에 인쇄된 QR을 스캔하면 로그인 없이 자료를 확인할 수 있는 플랫폼을 React + Node.js 기반으로 설계·구현합니다.
화장품 임상시험 완료 보고서를 등록·관리하고 보고서마다 고유 QR을 발급해 이력을 추적하며, 고객사는 별도 포털에서 자사 보고서만 조회하고 제품에 인쇄된 QR을 스캔하면 로그인 없이 자료를 확인할 수 있는 플랫폼을 React + Node.js 기반으로 설계·구현합니다.
작업 범위
주요 업무

하는 스코핑 검증 필요
관리자가 임상시험 완료 보고서를 등록하고 고객사·보고서 번호별로 조회·수정할 수 있는 관리 화면입니다.
트리 구조 탐색과 목록 뷰를 결합하여 대량 보고서를 빠르게 탐색할 수 있는 노션형 문서 관리 인터페이스를 구현합니다.

등록된 보고서마다 고유 QR 코드를 자동 생성하고, 어떤 QR이 언제 어떤 보고서에 발급됐는지 이력을 관리합니다.
QR 코드와 보고서 데이터를 1:1로 매핑하는 고유 토큰 체계를 설계하여 위변조 및 중복 발급을 방지하는 검증 로직을 구현합니다.

고객사 담당자가 별도 계정으로 로그인해 자사에 발급된 보고서만 번호로 검색·조회하고 QR을 재다운로드할 수 있는 포털입니다.
단일 코드베이스에서 관리자와 고객사 두 사용자 그룹의 화면과 데이터 접근 범위를 동시에 분리하는 권한 분리(RBAC) 아키텍처를 설계합니다.

제품에 인쇄된 QR을 스캔하면 로그인 없이 해당 시험 자료 요약을 확인할 수 있는 공개 페이지로, PC와 모바일에서 반응형으로 표시됩니다.
로그인 없는 공개 조회임에도 토큰 서명 검증으로 위조 QR 접근을 차단하는 경량 보안 구조를 구현합니다.

보고서·고객사·QR 발급 이력 테이블 관계 설계, PostgreSQL 스키마 정의 및 Prisma 마이그레이션 작성
Express 기반 보고서 CRUD, qrcode 생성, 파일 암호화 업로드 API 22~28개 엔드포인트 구현
JWT 역할 클레임 기반 라우트 가드, 관리자·고객사 화면 분리, React 트리+목록 UI 구현
비로그인 공개 조회 API, 모바일 우선 반응형 레이아웃 구현 및 크로스 브라우저 검증