About this project

Gwageo Explorer is a Next.js web application for exploring Joseon Dynasty civil service exam success records by clan, person, and royal reign. According to the README, it provides 84,525 records, 2,976 clan combinations, person relationships, and clan location information based on open data from the Academy of Korean Studies. Key features include clan and surname search with detailed pages, exploration of success records by exam type, reign, and rank, person details and relationship networks, a map of clan origins and residences across the Korean Peninsula, investigation status by location with official evidence links, optional AI summaries based on NVIDIA NIM, a responsive web interface, and a Capacitor Android app. The technical stack utilizes Next.js 16.3.1 (App Router, Turbopack) as the web framework to handle SSR, dynamic routes, and API Route Handlers. The UI is built with React 19.2 and TypeScript 5, styling with Tailwind CSS 4 and CSS tokens, and transition motions with anime.js 4. The data layer uses a combination of Prisma 7.9, SQLite, and better-sqlite3 to query exam records and clan investigation data. Maps visualize clan origins and residences using OpenStreetMap-compatible tiles and Web Mercator projection. AI summaries are structured to stream via a server proxy using NVIDIA NIM's OpenAI-compatible API and SSE. The mobile version is a com.spear.gwageo WebView app based on Capacitor 6, Android SDK 36, and JDK 17. Quality assurance is managed via ESLint 9, tsc --noEmit, and Gradle. Execution follows the sequence of npm install, npm run db:push, npm run db:seed, and npm run dev, with the local server running at http://localhost:3000. To verify without a DB, DATA_SOURCE=mock npm run dev can be used, and verification is possible via npm run typecheck, lint, build, and npm run audit:release. The repository includes architecture, deployment guides, data licenses, and third-party notices. The application code is licensed under MIT, while map tiles and third-party data maintain their original licenses and attribution conditions and are not re-licensed under MIT. Locations without confirmed official evidence or permissive licenses are stored and displayed as under review. Famous person data by clan was generated via scripts using 4,549 figures from 367 clans from Wikipedia infoboxes (CC BY-SA 4.0). A merged Namuwiki version (6,341 people) is kept for local use only and not distributed due to CC BY-NC-SA conditions. Android releases are built using Gradle assembleRelease after configuring JDK 17 and the Android SDK, with the output located at android/app/build/outputs/apk/release/app-release-unsigned.apk. Since the deployment signing key is not included in the repository, the GitHub Release APK is an unsigned build; a separate keystore signature is required for general installation or store distribution.