# JudgeBox 一個增強刷題體驗的平台 ## 建立初衷 網路上的 OJ 琳瑯滿目,不管是對程式初學者或是競程選手,在篩選題目上都十分麻煩,因此我們希望能夠開發出一個平台,能夠彙整台灣用戶常用的 OJ 題目,並且加入題單、紀錄寫題過程的功能,讓使用者能夠有更好的刷題體驗。 ## 功能 ### 第一階段 - 題庫 API - 彙整台灣使用者經常使用的 OJ 題目們 - ZJ - CF - ATC - CSES - TIOJ - TCFSH OJ - ... - 有點類似 https://courseapi.org/search?q=%E5%BE%AE%E7%A9%8D%E5%88%86 - 透過爬蟲定時更新題目 ### 第二階段 - 平台本身的前後端開發 - 每道題目都會有 tag 以及難度標示,方便使用者搜尋 - 自動新增:如果平台有內建 tag 如 CF,那就會直接顯示 - 使用者新增:tag 以及難度標示是可以由使用者投票決定的 - 使用者可以對題目做標示 - 狀態 - 已經 AC - 嘗試過但還沒 AC - 待做 - 設定優先順序 - 以上狀態的更動皆會記錄 - 使用者頁面顯示每天 AC 的題目 - 記錄寫題過程 - 程式碼 - markdown + 數學式筆記功能 - 內建繪圖白板,可記錄推導過程 - 創建題單 - 就像是 spotify 創建歌單 - 分為私人 / 公開 - 一鍵加入題單,簡單快速 ### 第三階段 - 延伸功能 - 瀏覽器插件 - 在支援的 OJ 按下插件後可自動於平台開啟該題 - 即時記錄想法,並儲存於雲端 - 使用者可選擇將自己的筆記上傳成公開題解 - 支援 markdown 以及數學式 - 按讚機制,被按讚的文章其作者會獲得貢獻值 - 每篇題解可以設定 tag - 內容:敘述、程式碼、類似題目、語言 - 解法:二分搜、動態規劃、圖論、... - 留言機制 - 以討論串的形式呈現 - 追蹤機制 - 可以追蹤需要題解的題目,若該題有題解上傳了則會發送通知給使用者 - 顯示追蹤排行榜 - 教室功能 - 分為教師、學員 - 教師:該教室管理員 - 學員:參與者 - 記分板 - 紀錄參與者在每個題單中的答題狀況 - 教師可設定學員是否可見記分板 - 學員可上傳程式碼 - 適合教師或是營隊使用 ### 第四階段 - 長遠規劃 - 分析使用者實力並提出建議 - reference:https://recommender.codedrills.io/ ## 效益 - 題目整理 - 免除到每個 OJ 搜尋題目的時間成本 - 題單 - 解決題目眾多,不知道該如何練習的問題 - 有效的統整程式學習者的經驗,傳承給其他想練習的人,達成資源共享 - 無論是新手或是競程選手都能夠受益 - 協助各種層級的使用者提高練習效率 - 新手:可以透過別人分享的題單,有效率且有方向的練習、進步 - 選手:可以監督自己的練題過程,提高訓練的效率 - 瀏覽器插件 - 解決許多競程選手都會遇到的問題:賽中將想法畫下來之後就刪掉了,無法回顧 - 能夠直接將解題思路、過程分享給其他使用者 - 題解 - 網路上的題解分散在個人 blog 中,如果有平台能夠整合,且上傳題解的方式非常簡單,會大大增加題解的資源量 - 教室功能 - 讓監督學員寫題進度變得更簡單 - 總結 - 將許多刷題者本來就會用的功能整合在一起 - 題目整理:從需要點開各大 OJ,變成只需要打開我們的網頁 - 題單:原本只能在試算表紀錄,非常麻煩,但現在能夠很方便的創建題單,也會美觀很多 - 紀錄寫題過程:選手們經常利用繪圖板 / iPad 在寫題過程中畫下推導過程,但用完就會刪掉了 - 題解:減去了架 blog 的技術成本 - 教室功能:免去了老師或營隊講師建置題單平台的成本 - 能夠創造出更多學習資源、本地社群 - 題單、題解等等 ## 為什麼要選擇這平台? 網路上的題目如此豐富,身為一名競程選手的我經常不知道該練習哪一題比較好,更別說是程式初學者了,這個平台能夠很好的彙整台灣,甚至是全球使用者常使用的練習平台、OJ,並推出題目關鍵字搜尋、題單等功能,讓你不用再為選擇練習哪一題而發愁。 除此之外,相信很多人都會利用繪圖板、iPad 或是純文字等工具紀錄練題時的想法推導,但是寫完那題,或是換個裝置寫的時候就遺失原本的進度了,這個平台將會內建筆記及繪圖的功能,不但能夠依據題目、OJ 分類,更能夠在跨平台無縫接軌,提升練習時的體驗及效率。 ## 使用技術 ### API 待定 ### 平台 前端將使用 Flutter,支援 Web、Android、iOS 三平台 後端待定 ## 時間線 1. JudgeAPI - 先寫出 Codeforces 的 2. JudgeBox 基本前後端 - 列出 Codeforces 題目列表 3. JudgeBox 後端 - 使用者登入 - 題目狀態標示 4. 題單功能 5. markdown 支援 6. 更多平台支援 7. 白板支援 8. 題解功能支援 ## 待討論 - 如何讓使用者有意願上來 - 聯合社群(e.g:與 NHDK 合作,將 NHDK 比賽的題解公布在此平台上,增加基礎流量) - 如何維持題解的品質、秩序 - 檢舉系統? - 管理員? - 倒讚? - 如果管理員有權力下架文章,如何確保不會濫權
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up