Files
Godopu fb6881070c feat(backend,docker,docs): implement Go/Gin/SQLite REST API server, Docker containerization, and architecture specifications
- 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
2026-08-24 17:34:51 +09:00

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-iot
  • title (TEXT, NOT NULL) — e.g. AIoT & AI-RAN, MCM, MVQM
  • abstract (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 KEIT
  • standards_org (TEXT) — e.g. NRF, IEC TC100
  • period (TEXT) — e.g. 2026 ~ Present
  • funder (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 Protocol
  • name_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 Koh
  • degree (TEXT, NOT NULL) — Professor, PhD, PhDCandidate, PhDStudent, MSCandidate, MSStudent
  • affiliation (TEXT) — e.g. School of Computer Science and Engineering
  • email (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, MS
  • graduated_at (TEXT, NOT NULL) — YYYY-MM (e.g. 2024-02)
  • major (TEXT) — e.g. Computer Science and Engineering
  • current_position (TEXT) — e.g. Samsung Electronics, Senior Researcher
  • created_at (DATETIME)

3. /publications (연구 실적 & 지식재산권)

3.1 publications (학술 논문)

  • id (INTEGER, PK, AUTOINCREMENT)
  • category (TEXT, NOT NULL) — intl-journal-conf, domestic-journal-conf
  • title (TEXT, NOT NULL)
  • authors (TEXT) — e.g. Seok-Joo Koh, ...
  • venue (TEXT, NOT NULL) — e.g. IEEE Transactions on Network and Service Management
  • volume (TEXT) — e.g. Vol. 23, pp. 4490~4505, April 2026
  • published_at (TEXT, NOT NULL) — YYYY-MM or YYYY-MM-DD
  • kci (BOOLEAN, DEFAULT FALSE)
  • doi (TEXT)
  • is_highlight (BOOLEAN, DEFAULT FALSE) — For Top Representative Highlights
  • created_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-DD
  • registration_no (TEXT)
  • registration_at (TEXT) — YYYY-MM-DD
  • country (TEXT, NOT NULL) — e.g. KR, US
  • published_at (TEXT, NOT NULL)
  • created_at (DATETIME)

4. /lectures (강의)

4.1 semesters (학기)

  • id (INTEGER, PK, AUTOINCREMENT)
  • year (INTEGER, NOT NULL) — e.g. 2026
  • term (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. COMP0411
  • name_en (TEXT, NOT NULL) — e.g. Computer Networks
  • name_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 SG17
  • full_name (TEXT, NOT NULL)
  • scope (TEXT, NOT NULL) — international, domestic
  • period (TEXT, NOT NULL) — e.g. 2018 ~ Present
  • role (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 12
  • project_name (TEXT, NOT NULL)
  • title (TEXT, NOT NULL)
  • doc_ref (TEXT, NOT NULL) — e.g. IEC 63430 ED1
  • status (TEXT, NOT NULL) — IS, TS, TR, CDV, WDTR, InProgress
  • published_at (TEXT)