iT邦幫忙

鐵人檔案

第 12 屆 iThome 鐵人賽
回列表
Modern Web

以 Kotlin 為主要語言建構基本的 Online Judge 系統 系列

自高中時期開始,就常以程式解題的方式在撰寫程式,不時也在思考「究竟一個 Online Judge 系統到底是如何建構起來的呢?」藉著這次鐵人賽的機會,希望能夠使用我最近喜歡上的程式語言–Kotlin,來建構出一個簡單的 Online Judge 系統。

雖然我目前有先大概查找一下這中間會需要用到哪些技術,但很多技術也都是趁著這個機會第一次去接觸的,難免會有很多實作上不安全、不實用或是描述不清楚的地方,還請大家多多包涵。如果願意在文章下給予意見的話,我會很開心的,非常感謝!

鐵人鍊成 | 共 30 篇文章 | 39 人訂閱 訂閱系列文 RSS系列文
DAY 1

達標好文 Day 1:前言 - Online Judge 系統介紹、預計架構介紹

自高中時期開始,就常以程式解題的方式在撰寫程式,不時就在思考「究竟一個 Online Judge 系統到底是如何建構起來的呢?」藉著這次鐵人賽的機會,希望能夠...

DAY 2

Day 2:Kotlin 簡介與 IDE 介紹

不知道大家還記不記得我在題目上有寫到「以 Kotlin 為主要語言」這幾個字呢?接下來就讓我來好好介紹一下在這 30 天即將使用到的程式語言-Kotlin,以...

DAY 3

Day 3:資料管理伺服器 (1) – 使用 Ktor 建立 HTTP Server

介紹完了系列題目中所提到的 Online Judge 系統以及 Kotlin 程式語言後,接著就要開始來進行專案的開發了。底下附上了之前有給大家看過的架構構想...

DAY 4

Day 4:資料管理伺服器 (2) - 題目資料定義與 JSON 序列化回傳資料

接續昨天的文章內容,我們接下來要來讓這個伺服器可以開始操作題目的資料,今天就讓我們先來定義題目的資料結構,並能夠以 JSON (JavaScript Obje...

DAY 5

Day 5:資料管理伺服器 (3) - RESTful API 設計

接續前一天的內容,我們定義了題目的資料其結構為何,並且可以透過 ktor-jackson 將其資料以 JSON 格式回傳回去。那接下來如果我們希望能夠透過 H...

DAY 6

Day 6:資料管理伺服器 (4) - RESTful API 測試:使用 Postman

在前一天我們將一個可以管理題目資料的 RESTful API 給設計出來了,但是卻遇到了不知道該如何測試的問題,究竟我們該怎麼對這組 API 去進行測試呢?這...

DAY 7

Day 7:資料管理伺服器 (5) - RESTful API 錯誤處理與 HTTP Status Code

繼昨天成功可以對 RESTful API 進行測試了以後,我列舉了以下兩種不正確的操作行為,但是伺服器卻沒有正確地處理掉: 呼叫增加題目的 API,但參數部...

DAY 8

Day 8:資料管理伺服器 (6) - 使用 PostgreSQL 資料庫儲存資料

繼昨日提到的「需要自動產生編號」以及「無法保存新增資料」這兩個問題,我們希望能夠用一套完善的資料庫管理系統(DBMS,全稱 Database Manageme...

DAY 9

Day 9:資料管理伺服器 (7) - 使用 Exposed 套件與資料庫銜接

昨天我們架設了 PostgreSQL 資料庫系統,今天就讓我們來讓專案可以將資料儲存進這個資料庫內吧! Exposed:Kotlin SQL Framewor...

DAY 10

Day 10:資料管理伺服器 (8) - 驗證機制介紹與會員系統建置

建立了一套與資料庫連接,並且完整的 RESTful API 去與資料庫進行操作後,我們要開始建立一套會員系統,讓部分會更改到資料庫內容的危險操作,需要登入會員...