スバラシの試作版と正式版の違い
試作版
フロントエンド
バックエンド
設計: FastifyおよびMongooseに依存したアーキテクチャ
構成: アプリケーションサーバ1台以上と管理用サーバ1台で稼働する。管理用サーバは定期的にシラバスの情報を取得し、アプリケーションサーバが参照するデータベースを更新する。
正式版
フロントエンド
バックエンド
RepositoryおよびEntityのインターフェースを用意し、依存するライブラリごとにそれらのインターフェースを実装したクラスを用意する。
ビジネスロジックはRepositoryから取り出したEntity同士の操作によって表現する(Interactor)。
HTTP APIなどの外部からの入力は、フレームワークによって規定されたライフサイクルを経過した後、コントローラによってInteractorに入力・結果を受け取り、再びフレームワークによって規定されたライフサイクルを経て出力される。
構成: アプリケーションサーバのみ。スバラシが参照するデータベースの更新は、アプリケーションサーバのHTTP APIを通して行う。シラバスの情報を取得するためのプログラムは運用者が用意し、アプリケーションサーバにアクセスできる場所で実行する必要がある。
12月にはフロントエンド、バックエンドともにある程度完成していたため、公開可能な状態ではあった。
本番環境で動かしている時期もあった。
しかし運用に影響を及ぼす可能性のある技術的な課題があったため、公開を見送った。
管理用サーバとアプリケーションサーバが密結合であり、運用に支障が生じる可能性があった。
2023年3月から設計を改善した正式版の開発を開始した。
ソースコードを公開することを前提に設計している。
大学特有の制度をハードコードしないことで、他大学でも利用できるようにすることを目指す。