Об этом проекте
Gwageo Explorer — это веб-приложение на Next.js для поиска записей о сдаче государственных экзаменов эпохи Чосон по кланам (бонгван), личностям и периодам правления королей. Согласно README, на основе открытых данных Академии корейских исследований приложение предоставляет 84 525 записей, 2 976 комбинаций кланов, а также информацию о связях между личностями и местоположении кланов.
Основные функции включают поиск по кланам и фамилиям с детальными страницами, просмотр записей о сдаче экзаменов (тип экзамена, период правления, ранг), детальную информацию о личностях и сеть их связей, карту мест возникновения и проживания кланов на Корейском полуострове, статус исследования по локациям со ссылками на официальные источники, опциональное AI-резюме на базе NVIDIA NIM, адаптивный веб-интерфейс и Android-приложение на Capacitor.
Технический стек: в качестве веб-фреймворка используется Next.js 16.3.1 (App Router, Turbopack) для обработки SSR, динамических маршрутов и API Route Handler. Интерфейс построен на React 19.2 и TypeScript 5, стилизация выполнена с помощью Tailwind CSS 4 и CSS-токенов, анимации реализованы через anime.js 4. Слой данных состоит из Prisma 7.9, SQLite и better-sqlite3 для запросов к записям экзаменов и данным о кланах. Карты визуализируют места происхождения и проживания кланов с использованием тайлов, совместимых с OpenStreetMap, и проекции Web Mercator. AI-резюме реализовано через OpenAI-совместимый API NVIDIA NIM с потоковой передачей SSE через серверный прокси. Мобильная версия представляет собой WebView-приложение com.spear.gwageo на базе Capacitor 6, Android SDK 36 и JDK 17. Для проверки качества используются ESLint 9, tsc --noEmit и Gradle.
Запуск осуществляется последовательно: npm install, npm run db:push, npm run db:seed, npm run dev; локальный сервер работает по адресу http://localhost:3000. Для проверки без БД используется DATA_SOURCE=mock npm run dev, а для верификации — npm run typecheck, lint, build и npm run audit:release. Репозиторий содержит архитектуру, руководство по развертыванию, лицензии на данные и уведомления о стороннем ПО.
Лицензирование: код приложения распространяется под лицензией MIT, однако тайлы карт и сторонние данные сохраняют свои оригинальные лицензии и условия атрибуции и не перелицензируются под MIT. Локации, официальные основания или разрешительные лицензии которых не подтверждены, сохраняются и отображаются только в статусе «на рассмотрении». Данные о знаменитостях по кланам создаются скриптом на основе 4 549 личностей из 367 кланов из инфобоксов Википедии (CC BY-SA 4.0). Объединенная версия из Namuwiki (6 341 человек) из-за условий CC BY-NC-SA остается только для локального использования и не распространяется.
Релиз для Android собирается с помощью Gradle assembleRelease после настройки JDK 17 и Android SDK; выходной файл находится в android/app/build/outputs/apk/release/app-release-unsigned.apk. Поскольку ключи подписи не включены в репозиторий, APK в GitHub Release является неподписанным (unsigned), а для обычной установки или публикации в сторе требуется отдельная подпись keystore.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.