- Implement standalone Go backend API server using Gin and pure-Go SQLite (modernc.org/sqlite) - Add 11-table schema DDL migrations (000001_init.up.sql) based on DATA_TABLE.md - Add seed data ingestion tool (cmd/seed) and static TypeScript content exporter (cmd/export-content) - Add configuration loader (internal/config) supporting environment variables and .env files (HOST, PORT, DB_PATH, GIN_MODE, CORS_ALLOW_ORIGINS, AUTO_MIGRATE) - Add lightweight multi-stage Dockerfile and docker-compose.yml with persistent SQLite volume - Add comprehensive architecture specification (ARCHITECTURE.md) and REST API interface specification (API_INTERFACE.md) - Harmonize frontend publications page to consume isHighlight flag from database-synced content
4.3 KiB
4.3 KiB
AI Agent Networking Lab (ANL) — Backend Database Schema Specification
This document defines the SQLite database schema and REST API entities to decouple data from the frontend landing page.
1. /home (Home & Overview)
1.1 research_projects (연구 과제)
id(INTEGER, PK, AUTOINCREMENT)slug(TEXT, UNIQUE, NOT NULL) — e.g.iot-standards,ccis,vlc-iottitle(TEXT, NOT NULL) — e.g.AIoT & AI-RAN,MCM,MVQMabstract(TEXT, NOT NULL)keywords(TEXT, JSON Array) — e.g.["AIoT", "agent-based IoT", "AI-RAN"]organization(TEXT) — e.g.National Research Foundation of Korea (NRF),IEC/TC 100/WG 12 supported by KEITstandards_org(TEXT) — e.g.NRF,IEC TC100period(TEXT) — e.g.2026 ~ Presentfunder(TEXT, OPTIONAL)created_at(DATETIME)updated_at(DATETIME)
1.2 research_areas (연구 분야)
id(INTEGER, PK, AUTOINCREMENT)name_en(TEXT, NOT NULL) — e.g.AI Agent Networking,QUIC & Transport Protocolname_kr(TEXT) — e.g.AI 에이전트 네트워킹display_order(INTEGER, DEFAULT 0)
2. /members (구성원 및 졸업생)
2.1 members (현재 연구원)
id(INTEGER, PK, AUTOINCREMENT)name_ko(TEXT, NOT NULL) — e.g.고석주name_en(TEXT, NOT NULL) — e.g.Seok-Joo Kohdegree(TEXT, NOT NULL) —Professor,PhD,PhDCandidate,PhDStudent,MSCandidate,MSStudentaffiliation(TEXT) — e.g.School of Computer Science and Engineeringemail(TEXT)is_advisor(BOOLEAN, DEFAULT FALSE)display_order(INTEGER, DEFAULT 0)created_at(DATETIME)
2.2 alumni (졸업생)
id(INTEGER, PK, AUTOINCREMENT)name_ko(TEXT, NOT NULL)name_en(TEXT, NOT NULL)degree(TEXT, NOT NULL) —PhD,MSgraduated_at(TEXT, NOT NULL) —YYYY-MM(e.g.2024-02)major(TEXT) — e.g.Computer Science and Engineeringcurrent_position(TEXT) — e.g.Samsung Electronics, Senior Researchercreated_at(DATETIME)
3. /publications (연구 실적 & 지식재산권)
3.1 publications (학술 논문)
id(INTEGER, PK, AUTOINCREMENT)category(TEXT, NOT NULL) —intl-journal-conf,domestic-journal-conftitle(TEXT, NOT NULL)authors(TEXT) — e.g.Seok-Joo Koh, ...venue(TEXT, NOT NULL) — e.g.IEEE Transactions on Network and Service Managementvolume(TEXT) — e.g.Vol. 23, pp. 4490~4505, April 2026published_at(TEXT, NOT NULL) —YYYY-MMorYYYY-MM-DDkci(BOOLEAN, DEFAULT FALSE)doi(TEXT)is_highlight(BOOLEAN, DEFAULT FALSE) — For Top Representative Highlightscreated_at(DATETIME)
3.2 patents (특허)
id(INTEGER, PK, AUTOINCREMENT)title(TEXT, NOT NULL)inventors(TEXT, NOT NULL)application_no(TEXT, NOT NULL)application_at(TEXT, NOT NULL) —YYYY-MM-DDregistration_no(TEXT)registration_at(TEXT) —YYYY-MM-DDcountry(TEXT, NOT NULL) — e.g.KR,USpublished_at(TEXT, NOT NULL)created_at(DATETIME)
4. /lectures (강의)
4.1 semesters (학기)
id(INTEGER, PK, AUTOINCREMENT)year(INTEGER, NOT NULL) — e.g.2026term(TEXT, NOT NULL) —Spring,Fall
4.2 courses (개설 과목)
id(INTEGER, PK, AUTOINCREMENT)semester_id(INTEGER, NOT NULL, FK -> semesters.id)code(TEXT, NOT NULL) — e.g.COMP0411name_en(TEXT, NOT NULL) — e.g.Computer Networksname_kr(TEXT)note(TEXT) — e.g.Graduate Course
5. /standardization (국제 표준화)
5.1 standards_bodies (표준화 기구)
id(INTEGER, PK, AUTOINCREMENT)org(TEXT, NOT NULL) — e.g.IEC TC100,ITU-T SG17full_name(TEXT, NOT NULL)scope(TEXT, NOT NULL) —international,domesticperiod(TEXT, NOT NULL) — e.g.2018 ~ Presentrole(TEXT) — e.g.Project Editor
5.2 standard_documents (표준 문서 및 기고서)
id(INTEGER, PK, AUTOINCREMENT)body_id(INTEGER, NOT NULL, FK -> standards_bodies.id)wg(TEXT, NOT NULL) — e.g.WG 12project_name(TEXT, NOT NULL)title(TEXT, NOT NULL)doc_ref(TEXT, NOT NULL) — e.g.IEC 63430 ED1status(TEXT, NOT NULL) —IS,TS,TR,CDV,WDTR,InProgresspublished_at(TEXT)