---
# System prepended metadata

title: 軟體設計（Software Design）
tags: [專題規劃]

---

###### tags: `專題規劃`

<!-- [TOC] -->

# 軟體設計（Software Design）

## ToDo

- [ ] APCS測資
- [ ] Backend Design

## 架構
  
- [Database](#Database)
- [Backend](#Backend)
- [Judger](#Judger)
- [Frontend](#Frontend)

## Database

### 題目

* APCS
    - 題目：[YUI HUANG 演算法學習筆記](https://yuihuang.com/)
        > 這個網站有整理APCS、CPE題目(來自zerojudge)。APCS考古也有列出命題範圍
    - 測資：
* CPE
    - 題目
      * [一顆星選集](https://cpe.cse.nsysu.edu.tw/environment.php#starList)
      * [Lucky貓的 UVA（ACM）園地](http://web.kshs.kh.edu.tw/academy/luckycat/index.htm)：主要收集中文題目和難度
      * [UVa官網](https://onlinejudge.org/)：對應的英文題目和解題狀況
      
    - 測資
      * [uDebug](https://www.udebug.com/UVa/)
    - 解答
      * [CPE歷屆考題](https://cpe.cse.nsysu.edu.tw/cpe/test_data/problems)：可收集解答和測資
      * [codeforces](https://codeforces.com/problemset/status)：可以觀看別人的程式碼和測資，但好像沒有UVa題目
## Backend

Online Judge Backend...

:::warning
Incompelete block
:::

## Judger

The judger give  used to compile source user submitted, execute it and **judge** the result.

The judger should have following features.

**Basic Requirement**

* Compile compiled language
* Execute source and generate output
* Compare user output and correct output, and return the result

**Advance Requirement**

* Execute source in `sandbox` to protect our system from crashing by running malicious code

## Frontend

Online Judge's frontend built with `Next.js` may have following features

* Should able to submit code
* Member could check its solving problem history

