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

119 lines
4.3 KiB
Markdown

# 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)