私は、学生と教員に、学業日(学期と試験期間の開始と終了、クラスの日時、試験の日時など)の単一のカレンダー(ICSサブスクリプション)を提供するサービスに取り組んでいます。私はRubyandRailsの初心者です。ここでさらに作業を始めているので、これは良い学習の機会になると思いました。アプリの特定の部分を構造化してモデル化する方法(あるとしても)を理解するのに問題があります。
アプリは概念的にかなり基本的です:
ユーザーがログインすると、ユーザーレコードが作成されます。UUIDが生成され、ユーザーのレコードに保存されます。ICS URL(http://myservice.foo/feeds/johndoe_ce4970706f320130588b109add5c7cb0.ics)を生成するために使用されます。
ユーザーが(上記のURLを介して)ICSファイルを要求すると、カレンダーを作成するための情報を取得するために、さまざまなシステムにクエリを実行する必要があります。
- 学生情報システム(SIS)には、ユーザーのスケジュールが含まれています(たとえば、johndoeはMWFでENGL 100を10:30〜11:20に取得しています)。このデータを解析してイベントを作成する必要があります。
- 私たちのオンライン学習管理システムであるCanvasは、その中に含まれるコースの課題のカレンダーを提供します。ICSファイルとしてアクセスできるので、そのファイルをプルダウンして解析し、アプリが生成する「マスター」カレンダーに含める必要があります。
- インストラクターは、コースに追加のICS URLを指定して、上記の2つのソースのいずれからも提供されていない任意のイベントを含めることができます。Canvasカレンダーと同様に、そのICSをダウンロードして解析する必要があります。
私は最初の部分を機能させています。シングルサインオンシステム(CAS)を介してログインでき、生成されたUUIDを使用してユーザーレコードが作成されます。ただし、2番目の部分の処理方法はわかりません。多くの永続的なデータを保存する必要はありません。基本的に、私はユーザーレコード(ユーザー名、生成されたUUID、およびCanvas LMSのいくつかのアクセストークンを含む)を保持するだけで済みます。フィードは、最初に要求されたときに生成され、一定期間キャッシュされます(必要に応じてオンデマンドで再生成されます)。
解析と生成のコードはどこに置くべきですか?他のデータソースが発生するときに追加することを期待しているので、ある程度モジュール化したいと思います。実際にそのデータを永続化していない場合、カレンダーとイベントモデルを作成する必要がありますか?