Skip to content

Ptt-official-app/go-pttbbsweb

Repository files navigation

go-openbbsmiddleware

Go GoDoc codecov

README Translation

概觀

這裡是使用 golang 來達成 中介應用層.

Ptt-official-app pttbbs 一起成為 web-based BBS.

Demo Site

Getting Started

您可以試著使用 @tingyuchang 所開發的 1-script setup

您可以到 swagger api 並且試著使用 api.

如果您在 swagger 網頁裡遇到 CORS 的問題. 你可以在網頁裡 copy curl 指令測試.

您可以到 https://term.devptt.dev 確認 api 如何影響在 www.devptt.dev 裡既有的 pttbbs.

使用的測試資料 (/home/bbs, 從 OCF PttID Data 更改而來) 在這裡. 當使用測試資料時, 請在 pttbbs.conf 做以下的設定:

MAX_USERS = 200000 /* 最高註冊人數 */
MAX_BOARD = 8192 /* 最大開板個數 */

Coding Convention

我們使用以下 library 幫助 coding convention:

docker-compose

您可以使用以下方式來使用 docker-compose:

  • docs/etc/ copy 到你自訂的 etc directory (ex: /etc/go-openbbsmiddleware).
  • docs/config/01-config.docker.ini copy 到你自訂的 etc directory 為 production.ini (ex: cp 01-config.docker.ini /etc/go-openbbsmiddleware/production.ini).
  • docker/docker/docker_compose.env.template copy 到 docker/docker_compose.env 並且更改相對應的設定.
  • ./scripts/docker_initbbs.sh [BBSHOME] pttofficialapps/go-pttbbs:latest
  • docker-compose --env-file docker/docker_compose.env -f docker/docker-compose.yaml up -d
  • http://localhost:3457/account/register 做 register
  • http://localhost:3457/account/login 做 login
  • telnet localhost 8888 並且使用您剛剛登錄的帳號使用.
  • 第一次使用時. 須先將 SYSOP 和 guest 建立起來.

Discussing / Reviewing / Questioning the code

除了開 issues 以外, 您還可以做以下的事情來對於 code 做討論 / review / 提出問題.

  • git clone 這個 repo.
  • 開一個 review-[topic] 的 branch.
  • 對於想要討論的部分在 code 裡寫 comments.
  • pull-request
  • 對於 PR 進行討論.
  • 當 PR 關掉時, comments 會留下關於這個 pr 討論的 link.

Develop

您可以使用 fork 來一起開發.

Unit-Test

你可以做以下的事情來進行 unit-test:

  • ./scripts/test.sh

您可以做以下的事情來進行 coverage-check:

  • ./scripts/coverage.sh

Swagger

You can run swagger with:

  • 設定 python virtualenv.
  • cd apidoc; pip install . && pip uninstall apidoc -y && python setup.py develop; cd ..
  • ./scripts/swagger.sh [host]
  • go to http://localhost:5000

Schema definition

  • https://github.com/Ptt-official-app/go-openbbsmiddleware/tree/main/schema

Repository Naming

這個 repo 之所以會被稱為 go-openbbsmiddleware, 是因為古早的 .NET ASP 的開發者希望 中介應用層 可以擴及其他版本的 bbs (Maple/中山之島). 這個 repo 就 follow 當時的 naming convention 命名為 go-openbbsmiddleware.