[Import/Export] Resolve saved-plan sections for calendar export
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 70/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- data
調査の方向性
まず src/components/saved-plans/SavedPlan.tsx を開き、保存済みプランがどのように読み込まれるかを確認してください。次に src/lib/localStorage/types.ts の SavedPlan のフィールドと、src/lib/domain/section.ts の Section の形を確認します。src/lib/ics/resolvePlan.ts を作成し、その中に resolveCalendarSections を実装してください。この関数は既存の loadSections を呼び出し、プランの CRN で絞り込みます。例(3 つのセクション、2 つの CRN で 2 件一致)と、courseIds が空の場合のケースが src/lib/ics/resolvePlan.test.ts で通れば完了です。
索引モデルが issue の本文から書いたものです。
説明
What to build
Load the class sections belonging to a saved plan before building its calendar. Match the plan’s registration numbers to the loaded sections and fail clearly if the required data is unavailable.
Files
src/lib/ics/resolvePlan.ts(new file)- Starting example: src/components/saved-plans/SavedPlan.tsx
- Course/meeting fields: src/lib/domain/section.ts
- Saved-plan fields: src/lib/localStorage/types.ts
Code to add or extend:resolveCalendarSections(plan:SavedPlan, client): Promise<Section[]>.
Steps
- Call existing loadSections(client,
plan.academicPeriod,{courseIds:plan.courseIds}); filter returned Sections by a Set ofplan.crns. - Do not use getPlanOfferings, which returns display WeekSchedule rather than
Section[]. - Empty courseIds need a readable unresolved-plan result; do not silently invent sections.
Example
Returned3sections, saved2CRNs → 2matched Sections; no new CRN endpoint is needed for saved plans that already store courseIds.
Check it works
In src/lib/ics/resolvePlan.test.ts, check the example above and the failure or limit described in the steps. Run pnpm test -- src/lib/ics/resolvePlan.test.ts, pnpm lint and pnpm typecheck.
Before starting
- #837 — Generate stable calendar event IDs
References
Assign yourself before starting, or comment to claim the issue. Project setup.
- 主要言語
- TypeScript
- スター
- 19
- フォーク
- 94
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DevDogsUGA/DogDays のほかの issue
-
map
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
DevDogsUGA/DogDays#868 ·
-
map
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
DevDogsUGA/DogDays#865 ·
-
sharing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
DevDogsUGA/DogDays#854 ·
-
import-export
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
DevDogsUGA/DogDays#842 ·
-
import-export
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DevDogsUGA/DogDays#841 ·
DevDogsUGA/DogDays の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 83/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ranxianglei/billion-context#3583 ·
メンテナーはふだん 1 日以内に返信
-
bug:new
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
callstackincubator/simlock#673 ·
メンテナーはふだん 1 日以内に返信
-
documentation v3
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
anomalyco/opencode#56380 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信