vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A drug-candidate explorer built for the Merck Senior Frontend Engineer challenge using Next.js App Router, TypeScript, and Tailwind CSS.
Browse a fictional portfolio, search by candidate name, combine status and therapeutic-area filters, and open a dedicated candidate profile. This is a working application with real HTTP endpoints backed by an in-memory mock repository.
Prerequisites: Node.js 20.9+ (Node 22 LTS recommended) and npm. No API keys, database, or environment variables are required.
Open http://localhost:3000. To demonstrate the production build:README 전문 보기 ↗A drug-candidate explorer built for the Merck Senior Frontend Engineer challenge using Next.js App Router, TypeScript, and Tailwind CSS.
Browse a fictional portfolio, search by candidate name, combine status and therapeutic-area filters, and open a dedicated candidate profile. This is a working application with real HTTP endpoints backed by an in-memory mock repository.
Prerequisites: Node.js 20.9+ (Node 22 LTS recommended) and npm. No API keys, database, or environment variables are required.
npm ci
npm run dev
Open http://localhost:3000. To demonstrate the production build:
npm run build
npm start
The archive excludes dependencies and build output; npm ci installs the exact dependency versions recorded in package-lock.json.
npm run typecheck
npm run lint
npm test
npx playwright install chromium
npm run test:e2e
The E2E suite starts a development server automatically when port 3000 is free, or reuses a running local server. For production E2E verification, run npm run build and npm start before npm run test:e2e. In a minimal Linux CI environment use npx playwright install --with-deps chromium.
| Challenge requirement | Implementation |
|---|---|
| Next.js, TypeScript, Tailwind | App Router, strict TypeScript, Tailwind v4 |
| Homepage with name, status, description | Searchable candidate library with 24 synthetic records |
| Search by name | Case-insensitive, 300 ms debounced search; Enter submits immediately |
| View details on a separate page | /candidates/[id] with mechanism, side effects, stage, modality, administration |
| Mock API | GET /api/candidates and GET /api/candidates/[id], backed by JSON |
| Large-data architecture | Server-side filtering/sorting/pagination, page-size cap, summary payloads, replaceable repository |
| Testing | Vitest query/repository/HTTP tests; Playwright browser and axe accessibility checks |
| Documentation | This README, architecture decisions, and API contract |
src/
app/
api/candidates/route.ts HTTP listing endpoint and validation
api/candidates/[id]/route.ts HTTP detail endpoint
candidates/[id]/page.tsx Server-rendered profile
candidates/[id]/loading.tsx Route loading UI
page.tsx Library entry point
error.tsx Route recovery
not-found.tsx Missing-record recovery
components/
explorer.tsx Search, filters, results, pagination
shell.tsx Responsive workspace layout
status-badge.tsx Shared status treatment
data/candidates.json Synthetic mock records
lib/
types.ts Domain and HTTP result types
query.ts Shared URL parsing and serialization
repository.ts Replaceable mock data adapter
use-candidates.ts Cancellable HTTP request lifecycle
tests/ Vitest contract and repository tests
e2e/ Playwright journeys and accessibility checks
docs/ Architecture, API, walkthrough, verification
All candidate names, scientific targets, observations, and approval statuses are fictional. No medical or regulatory claims are made.
The mock repository scans and sorts a small in-memory dataset. It is not a benchmarked large-data database. The architecture bounds browser payloads and isolates storage access so a production repository can use indexed queries and cursor pagination. See architecture for limitations and migration choices.
Authentication, editing, real clinical datasets, and analytics are intentionally outside the assignment’s scope. The application does not persist user data or send telemetry added by this application. Next.js itself has framework telemetry; set NEXT_TELEMETRY_DISABLED=1 to disable it.