Skip to content

feat: complete pages and move data to json - #3

Open
rammmaa wants to merge 19 commits into
mainfrom
feat/complete-pages
Open

feat: complete pages and move data to json#3
rammmaa wants to merge 19 commits into
mainfrom
feat/complete-pages

Conversation

@rammmaa

@rammmaa rammmaa commented Sep 5, 2026

Copy link
Copy Markdown
Member

요약

미완성이던 페이지를 완성하고, Google Sheets 대신 레포 안 JSON을 데이터 원본으로 바꿨습니다. feature/theme-toggle 브랜치에 있던 재설계(PageHeader, 연도별 수상 표, 활동 페이지, 주소 있는 푸터, 라이트·다크 테마)를 main 규약(shadcn, lucide, next/image, 디자인 토큰)에 맞춰 이식했습니다.

스펙: docs/superpowers/specs/2026-09-05-complete-pages-design.md
계획: docs/superpowers/plans/2026-09-05-complete-pages.md

결정 사항

  • 데이터는 data/*.json이 원본. zod 스키마(lib/schema.ts)로 빌드 시 검증하고, 명단 핸들과 수상자 핸들이 members.json에 있는지 참조 무결성까지 검사합니다. 잘못된 데이터는 빌드가 실패해 배포되지 않습니다.
  • 시트에서 옮겨오는 pnpm import:sheets와 검증용 pnpm check:data를 두었습니다. 기존 시트 CSV는 빈 행 23,960개를 포함해 355KB였고 60초마다 다시 받고 있었습니다.
  • 서버형 DB는 두지 않았습니다. 지원서 접수나 출석처럼 사이트가 데이터를 써야 하는 기능이 생기면 그때 다시 검토합니다.
  • Join 본문은 "서류 지원으로만 선발"로 확정했고 지원 버튼은 JOIN_FORM_URL(구글폼)입니다.
  • 히어로 문구는 나중에 고친 쪽인 "EST. 2000 / YONSEI ALGORITHM CLUB"으로 맞췄습니다.

페이지별 변경

  • Home: About을 "생각한다, 푼다, 경쟁한다"로 바꾸고 최근 수상 3건 섹션을 추가했습니다. 히어로 오른쪽에 동아리원 solved.ac 풀이 수 합산 카운터를 넣었습니다(하루 한 번 갱신, 조회 실패 시 아이콘으로 대체). 히어로 배경과 갤러리는 옛 사이트(molgorithm.netlify.app)에서 가져온 실제 사진(ICPC 아시아 태평양 단체 사진, 정기 세션, 교내 경시대회 포스터)과 레포에 있던 졸업 현수막 사진을 씁니다.
  • Awards: 대회별 필터 칩, 연도별 표, 소속 메모 표시, 수상자 이름에 solved.ac 프로필 링크(BOJ 서비스 종료로 BOJ 링크는 쓰지 않음). 상단 메타는 데이터에서 계산한 "82 RECORDS // 2016–2026"입니다.
  • Activities: 세로 섹션 레이아웃으로 재설계하고 깨진 스톡 이미지를 없앴습니다. sessions.json이 채워지면 정기 세션 기록 표가 나타납니다.
  • Members: 가장 최근 학기를 "현재 동아리원"으로, 이전 학기는 아래에 나열합니다. solved.ac 링크, 수상 횟수, solved.ac 티어 배지(하루 한 번 갱신, 실패 시 표시 안 함).
  • Join: 3단계 절차 카드를 없애고 구글폼 안내로 바꿨습니다.
  • Donate: 구조 유지, metadata만 추가.
  • 공통: 라이트·다크 테마(next-themes, 기본 다크), 헤더 토글, 주소와 이메일이 있는 푸터, 페이지별 <title>, 404 페이지, sitemap.xml, robots.txt, .env.example, 한국어 README.

확인

  • pnpm lint, pnpm typecheck, pnpm test(26개), pnpm check:data, pnpm build 통과.
  • 프로덕션 빌드를 headless Chrome으로 라이트와 다크 양쪽에서 7개 경로 스크린샷해 확인했고, 390px 폭에서 표가 가로 스크롤 안에 머무는 것을 확인했습니다.

후속 작업

  • 시트에서 옮긴 상명 중 "1", "2"처럼 숫자만 있는 행은 의미가 모호해 그대로 두었습니다. data/awards.json에서 "교내 1위" 같은 문구로 다듬어 주세요.
  • 현재 prod는 molgorithm.netlify.app 의 옛 Vite 사이트입니다. Netlify 프로젝트를 이 레포의 main으로 연결해야 새 사이트가 배포됩니다.
  • Vercel 환경 변수: NEXT_PUBLIC_SITE_URL, JOIN_FORM_URL, DONATION_ACCOUNT, DONATION_CONTACT_URL.

@netlify

netlify Bot commented Sep 5, 2026

Copy link
Copy Markdown

Deploy Preview for molgo ready!

Name Link
🔨 Latest commit ff719ad
🔍 Latest deploy log https://app.netlify.com/projects/molgo/deploys/6a9bd8e947e01a000885c086
😎 Deploy Preview https://deploy-preview-3--molgo.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant