Spaces:
Sleeping
Sleeping
refactor: データ構造リファクタリング(不要フィールド削除・年間予定構造変更)
Browse files- 公認/準公認区分、カテゴリ、概要テキスト、性別比率等の不要フィールドを削除
- 年間予定の構造を {month, events[]} から {period, event} に変更
- 活動頻度の旧値マッピングを削除
- SNSデータにhandleフィールドを追加
- mainImageフィールドを追加(images配列のorder=0を自動選択)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- app/main.py +5 -8
- data/generated/circles.json +202 -274
- schemas/circles.py +8 -35
- scripts/2_create_circles_data.py +49 -32
app/main.py
CHANGED
|
@@ -123,24 +123,21 @@ def get_summary_data():
|
|
| 123 |
# ここで必要なフィールドのみ抽出して返す
|
| 124 |
summaries_payload: list[dict[str, object]] = []
|
| 125 |
for circle in circles_service.list_circles():
|
| 126 |
-
# 画像は
|
| 127 |
-
image =
|
|
|
|
|
|
|
| 128 |
|
| 129 |
summary = CircleSummary(
|
| 130 |
circleId=circle.circleId,
|
| 131 |
circleName=circle.circleName,
|
| 132 |
circleNameKana=circle.circleNameKana,
|
| 133 |
-
circleType=circle.circleType,
|
| 134 |
projectId=circle.projectId,
|
| 135 |
projectName=circle.projectName,
|
| 136 |
-
mainCategory=circle.mainCategory,
|
| 137 |
-
subCategory=circle.subCategory,
|
| 138 |
-
category=circle.category,
|
| 139 |
genre=circle.genre,
|
| 140 |
areaCode=circle.areaCode,
|
| 141 |
pamphletNumber=circle.pamphletNumber,
|
| 142 |
-
|
| 143 |
-
description=circle.description,
|
| 144 |
mainImage=image,
|
| 145 |
memberCount=circle.memberCount,
|
| 146 |
memberNote=circle.memberNote,
|
|
|
|
| 123 |
# ここで必要なフィールドのみ抽出して返す
|
| 124 |
summaries_payload: list[dict[str, object]] = []
|
| 125 |
for circle in circles_service.list_circles():
|
| 126 |
+
# 画像はcircle.mainImageを使用、なければimagesから選択
|
| 127 |
+
image = circle.mainImage
|
| 128 |
+
if image is None and circle.images:
|
| 129 |
+
image = _select_primary_image(circle.images)
|
| 130 |
|
| 131 |
summary = CircleSummary(
|
| 132 |
circleId=circle.circleId,
|
| 133 |
circleName=circle.circleName,
|
| 134 |
circleNameKana=circle.circleNameKana,
|
|
|
|
| 135 |
projectId=circle.projectId,
|
| 136 |
projectName=circle.projectName,
|
|
|
|
|
|
|
|
|
|
| 137 |
genre=circle.genre,
|
| 138 |
areaCode=circle.areaCode,
|
| 139 |
pamphletNumber=circle.pamphletNumber,
|
| 140 |
+
detailDescription=circle.detailDescription,
|
|
|
|
| 141 |
mainImage=image,
|
| 142 |
memberCount=circle.memberCount,
|
| 143 |
memberNote=circle.memberNote,
|
data/generated/circles.json
CHANGED
|
@@ -3,17 +3,11 @@
|
|
| 3 |
"circleId": "circle-001",
|
| 4 |
"circleName": "千葉大学サッカー部",
|
| 5 |
"circleNameKana": "ちばだいがくさっかーぶ",
|
| 6 |
-
"circleType": "公認",
|
| 7 |
"projectId": null,
|
| 8 |
"projectName": null,
|
| 9 |
-
"mainCategory": "SPORTS",
|
| 10 |
-
"subCategory": "BALL_SPORTS",
|
| 11 |
-
"category": "PERFORMANCE",
|
| 12 |
"genre": "ATHLETIC_CLUB",
|
| 13 |
"areaCode": "T",
|
| 14 |
"pamphletNumber": 1,
|
| 15 |
-
"prSummary": "関東大学サッカーリーグ所属。週5日の練習で全国大会出場を目指しています。",
|
| 16 |
-
"description": "# 千葉大学サッカー部\n\n私たちは関東大学サッカーリーグに所属する体育会サッカー部です。\n\n## 活動について\n\n週5日の練習を通じて、技術と体力の向上に努めています。チームワークを大切にし、全国大会出場を目標に日々精進しています。\n\n## 入部について\n\n- 経験者はもちろん、初心者も歓迎します\n- マネージャーも募集中です\n- まずは練習見学にお越しください",
|
| 17 |
"detailDescription": "# 千葉大学サッカー部について\n\n## 概要\n\n関東大学サッカーリーグ**1部**所属。創部以来、多くの*プロサッカー選手*を輩出してきた伝統あるチームです。\n\n## 活動頻度と内容\n\n週5日の厳しい練習を通じて、以下のスキルを鍛えています:\n\n1. 技術力の向上\n2. 体力・持久力の強化\n3. 精神力・メンタルの鍛錬\n\n> 「サッカーは11人でするスポーツ。チームワークがすべての基盤だ」- 監督談\n\n## 年間スケジュール\n\n| 時期 | イベント |\n|------|----------|\n| 4月 | 新歓・春季リーグ開幕 |\n| 8月 | 夏合宿 |\n| 11月 | 大祭・秋季リーグ |\n| 3月 | 追いコン |\n\n## 入部条件\n\n- サッカー経験者優遇\n- 初心者も相談可\n- **マネージャー募集中**\n\n詳細は[公式サイト](https://example.com/chiba-soccer)をご覧ください。\n\n```\n練習日程:月・火・水・木・土\n場所:総合グラウンド\n```",
|
| 18 |
"memberCount": 50,
|
| 19 |
"memberNote": null,
|
|
@@ -24,42 +18,36 @@
|
|
| 24 |
"otherCosts": null,
|
| 25 |
"annualSchedule": [
|
| 26 |
{
|
| 27 |
-
"
|
| 28 |
-
"
|
| 29 |
-
"新歓",
|
| 30 |
-
"春季リーグ開幕"
|
| 31 |
-
]
|
| 32 |
},
|
| 33 |
{
|
| 34 |
-
"
|
| 35 |
-
"
|
| 36 |
-
"リーグ戦"
|
| 37 |
-
]
|
| 38 |
},
|
| 39 |
{
|
| 40 |
-
"
|
| 41 |
-
"
|
| 42 |
-
"夏合宿"
|
| 43 |
-
]
|
| 44 |
},
|
| 45 |
{
|
| 46 |
-
"
|
| 47 |
-
"
|
| 48 |
-
"大祭",
|
| 49 |
-
"秋季リーグ"
|
| 50 |
-
]
|
| 51 |
},
|
| 52 |
{
|
| 53 |
-
"
|
| 54 |
-
"
|
| 55 |
-
"冬合宿"
|
| 56 |
-
]
|
| 57 |
},
|
| 58 |
{
|
| 59 |
-
"
|
| 60 |
-
"
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
}
|
| 64 |
],
|
| 65 |
"contactInfo": "soccer@example.chiba-u.jp",
|
|
@@ -82,14 +70,21 @@
|
|
| 82 |
"order": 2
|
| 83 |
}
|
| 84 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
"sns": [
|
| 86 |
{
|
| 87 |
"type": "TWITTER",
|
| 88 |
-
"url": "https://twitter.com/chiba_soccer"
|
|
|
|
| 89 |
},
|
| 90 |
{
|
| 91 |
"type": "INSTAGRAM",
|
| 92 |
-
"url": "https://instagram.com/chiba_soccer"
|
|
|
|
| 93 |
}
|
| 94 |
]
|
| 95 |
},
|
|
@@ -97,17 +92,11 @@
|
|
| 97 |
"circleId": "circle-002",
|
| 98 |
"circleName": "千葉大学吹奏楽団",
|
| 99 |
"circleNameKana": "ちばだいがくすいそうがくだん",
|
| 100 |
-
"circleType": "公認",
|
| 101 |
"projectId": null,
|
| 102 |
"projectName": null,
|
| 103 |
-
"mainCategory": "CULTURE",
|
| 104 |
-
"subCategory": "MUSIC_PERFORM",
|
| 105 |
-
"category": "MUSIC",
|
| 106 |
"genre": "MUSIC",
|
| 107 |
"areaCode": "L",
|
| 108 |
"pamphletNumber": 2,
|
| 109 |
-
"prSummary": "定期演奏会や学祭での演奏を行っています。初心者から経験者まで幅広く活動中。",
|
| 110 |
-
"description": "# 千葉大学吹奏楽団\n\n創部70年以上の歴史を持つ、千葉大学を代表する音楽団体です。\n\n## 活動内容\n\n- **定期演奏会**: 年2回、大ホールでの本格的な演奏会\n- **学園祭演奏**: 大祭でのステージ演奏\n- **地域イベント**: 地域の催しへの出演\n\n## 楽器について\n\n管楽器・打楽器の経験者はもちろん、大学から始める初心者も大歓迎です。貸出楽器もあります。",
|
| 111 |
"detailDescription": "# 千葉大学吹奏楽団 詳細案内\n\n## 歴史と伝統\n\n千葉大学吹奏楽団は**1950年代**に創設された伝統ある音楽団体です。\n\n> 70年以上の歴史の中で、数々の名演奏を生み出してきました\n\n## 演奏会情報\n\n年間を通じて精力的に活動し、定期演奏会では毎回*1000人以上*の観客を動員しています。\n\n### 主な演奏会\n\n1. 春の定期演奏会(6月)\n2. 学園祭ステージ(10月)\n3. クリスマスコンサート(12月)\n4. 卒業演奏会(3月)\n\n## コンクール実績\n\n| 年度 | 大会名 | 結果 |\n|------|--------|------|\n| 2024 | 関東大会 | 金賞 |\n| 2023 | 全国大会 | 銀賞 |\n| 2022 | 関東大会 | 金賞 |\n\n## 楽器パート紹介\n\n- **木管楽器**: フルート、クラリネット、オーボエ等\n- **金管楽器**: トランペット、トロンボーン、ホルン等\n- **打楽器**: ティンパニ、パーカッション等\n\n```\n入部問い合わせ先:brass@example.chiba-u.jp\n見学随時受付中!\n```\n\n詳細は[公式サイト](https://example.com/chiba-brass)へ",
|
| 112 |
"memberCount": 60,
|
| 113 |
"memberNote": null,
|
|
@@ -118,43 +107,40 @@
|
|
| 118 |
"otherCosts": null,
|
| 119 |
"annualSchedule": [
|
| 120 |
{
|
| 121 |
-
"
|
| 122 |
-
"
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 126 |
},
|
| 127 |
{
|
| 128 |
-
"
|
| 129 |
-
"
|
| 130 |
-
"定期演奏会"
|
| 131 |
-
]
|
| 132 |
},
|
| 133 |
{
|
| 134 |
-
"
|
| 135 |
-
"
|
| 136 |
-
"夏合宿",
|
| 137 |
-
"コンクール"
|
| 138 |
-
]
|
| 139 |
},
|
| 140 |
{
|
| 141 |
-
"
|
| 142 |
-
"
|
| 143 |
-
"学園祭演奏"
|
| 144 |
-
]
|
| 145 |
},
|
| 146 |
{
|
| 147 |
-
"
|
| 148 |
-
"
|
| 149 |
-
"クリスマスコンサート"
|
| 150 |
-
]
|
| 151 |
},
|
| 152 |
{
|
| 153 |
-
"
|
| 154 |
-
"
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
|
|
|
| 158 |
}
|
| 159 |
],
|
| 160 |
"contactInfo": "brass@example.chiba-u.jp",
|
|
@@ -177,14 +163,21 @@
|
|
| 177 |
"order": 2
|
| 178 |
}
|
| 179 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
"sns": [
|
| 181 |
{
|
| 182 |
"type": "TWITTER",
|
| 183 |
-
"url": "https://twitter.com/chiba_brass"
|
|
|
|
| 184 |
},
|
| 185 |
{
|
| 186 |
"type": "LINE",
|
| 187 |
-
"url": "https://line.me/chiba_brass"
|
|
|
|
| 188 |
}
|
| 189 |
]
|
| 190 |
},
|
|
@@ -192,17 +185,11 @@
|
|
| 192 |
"circleId": "circle-003",
|
| 193 |
"circleName": "軽音楽サークル SOUNDWAVE",
|
| 194 |
"circleNameKana": "けいおんがくさーくる さうんどうぇーぶ",
|
| 195 |
-
"circleType": "準公認",
|
| 196 |
"projectId": null,
|
| 197 |
"projectName": null,
|
| 198 |
-
"mainCategory": "CULTURE",
|
| 199 |
-
"subCategory": "MUSIC_PERFORM",
|
| 200 |
-
"category": "MUSIC",
|
| 201 |
"genre": "MUSIC",
|
| 202 |
"areaCode": "K",
|
| 203 |
"pamphletNumber": 3,
|
| 204 |
-
"prSummary": "バンド活動を通じて音楽を楽しむサークルです。初心者大歓迎!",
|
| 205 |
-
"description": "# 軽音楽サークル SOUNDWAVE\n\nロック、ポップス、ジャズなど様々なジャンルの音楽を楽しむサークルです。\n\n## 活動スタイル\n\nバンドを組んで、定期的にライブハウスでの演奏や学内イベントに参加しています。\n\n### 主な活動\n\n- 月1回の部内ライブ\n- 学園祭でのステージ演奏\n- 外部ライブハウスでの演奏\n\n## 初心者へ\n\n楽器を触ったことがなくても大丈夫! 先輩が丁寧に教えます。貸出機材もあります。",
|
| 206 |
"detailDescription": "# 軽音楽サークル SOUNDWAVE\n\n## コンセプト\n\n> 「音楽を愛するすべての人に、表現の場を」\n\n軽音楽サークルSOUNDWAVEは、音楽を愛するメンバーが集まり、*自由に*音楽活動を楽しむサークルです。\n\n## ジャンルの多様性\n\nジャンルの垣根なく、やりたい音楽を追求できる環境があります:\n\n- **ロック**: J-ROCKから洋楽まで\n- **ポップス**: 最新ヒット曲のコピーバンド\n- **ジャズ**: スタンダードナンバーのセッション\n- **アニソン**: アニメソングカバー\n\n## バンド結成の流れ\n\n1. 新歓期にメンバー募集\n2. ジャンル・趣味の合う人と出会う\n3. バンドを結成\n4. 練習を重ねる\n5. ライブで発表!\n\n## 初心者向けサポート\n\n| サポート内容 | 詳細 |\n|--------------|------|\n| 楽器レンタル | ギター、ベース、キーボード |\n| レッスン | 先輩による個別指導 |\n| 教材 | 初心者向け楽譜・動画 |\n\n```\n練習スタジオ:音楽棟地下1階\n利用時間:9:00〜21:00\n予約方法:LINE公式アカウントから\n```\n\n### 入部費用\n\n年会費**6,000円**(スタジオ利用料込み)\n\n[Twitter](https://twitter.com/chiba_keion)で活動情報を発信中!",
|
| 207 |
"memberCount": 30,
|
| 208 |
"memberNote": null,
|
|
@@ -213,46 +200,32 @@
|
|
| 213 |
"otherCosts": null,
|
| 214 |
"annualSchedule": [
|
| 215 |
{
|
| 216 |
-
"
|
| 217 |
-
"
|
| 218 |
-
"新歓ライブ"
|
| 219 |
-
]
|
| 220 |
},
|
| 221 |
{
|
| 222 |
-
"
|
| 223 |
-
"
|
| 224 |
-
"春の定期ライブ"
|
| 225 |
-
]
|
| 226 |
},
|
| 227 |
{
|
| 228 |
-
"
|
| 229 |
-
"
|
| 230 |
-
"七夕ライブ"
|
| 231 |
-
]
|
| 232 |
},
|
| 233 |
{
|
| 234 |
-
"
|
| 235 |
-
"
|
| 236 |
-
"夏合宿"
|
| 237 |
-
]
|
| 238 |
},
|
| 239 |
{
|
| 240 |
-
"
|
| 241 |
-
"
|
| 242 |
-
"大祭ステージ"
|
| 243 |
-
]
|
| 244 |
},
|
| 245 |
{
|
| 246 |
-
"
|
| 247 |
-
"
|
| 248 |
-
"クリスマスライブ"
|
| 249 |
-
]
|
| 250 |
},
|
| 251 |
{
|
| 252 |
-
"
|
| 253 |
-
"
|
| 254 |
-
"追いコン"
|
| 255 |
-
]
|
| 256 |
}
|
| 257 |
],
|
| 258 |
"contactInfo": "keion@example.chiba-u.jp",
|
|
@@ -270,14 +243,21 @@
|
|
| 270 |
"order": 1
|
| 271 |
}
|
| 272 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 273 |
"sns": [
|
| 274 |
{
|
| 275 |
"type": "TWITTER",
|
| 276 |
-
"url": "https://twitter.com/chiba_keion"
|
|
|
|
| 277 |
},
|
| 278 |
{
|
| 279 |
"type": "INSTAGRAM",
|
| 280 |
-
"url": "https://instagram.com/chiba_keion"
|
|
|
|
| 281 |
}
|
| 282 |
]
|
| 283 |
},
|
|
@@ -285,17 +265,11 @@
|
|
| 285 |
"circleId": "circle-004",
|
| 286 |
"circleName": "アニメーション研究会",
|
| 287 |
"circleNameKana": "あにめーしょんけんきゅうかい",
|
| 288 |
-
"circleType": "準公認",
|
| 289 |
"projectId": null,
|
| 290 |
"projectName": null,
|
| 291 |
-
"mainCategory": "CULTURE",
|
| 292 |
-
"subCategory": "VISUAL_ARTS",
|
| 293 |
-
"category": "EXHIBITION",
|
| 294 |
"genre": "CULTURE",
|
| 295 |
"areaCode": "S",
|
| 296 |
"pamphletNumber": 4,
|
| 297 |
-
"prSummary": "アニメーション制作や鑑賞会を行っています。創作活動が好きな人集まれ!",
|
| 298 |
-
"description": "# アニメーション研究会\n\nアニメーションの制作・鑑賞を中心に活動するサークルです。\n\n## 活動内容\n\n### 制作活動\n- 自主制作アニメーションの企画・制作\n- イラスト・漫画制作\n- 動画編集技術の習得\n\n### 鑑賞活動\n- 定期的なアニメ鑑賞会\n- 話題作の上映会\n- 制作者トークイベント\n\n## 展示活動\n\n学園祭やコミックマーケットでの作品発表を行っています。",
|
| 299 |
"detailDescription": "# アニメーション研究会 詳細ガイド\n\n## 私たちについて\n\nアニメーション研究会は、アニメ好きが集まり、**観る**だけでなく**作る**ことにも挑戦するサークルです。\n\n> 「見る側から、作る側へ」\n\n## 活動内容詳細\n\n### 制作部門\n\nデジタルツールを使った本格的なアニメーション制作:\n\n1. 企画・シナリオ作成\n2. キャラクターデザイン\n3. 作画・動画制作\n4. 編集・仕上げ\n\n### イラスト・漫画部門\n\n- *同人誌*制作\n- イラスト集発行\n- Web漫画連載\n\n## 使用ソフトウェア\n\n| ソフト | 用途 |\n|--------|------|\n| CLIP STUDIO | イラスト・漫画 |\n| After Effects | 動画編集 |\n| Blender | 3DCG |\n\n## イベント参加実績\n\n- **コミックマーケット**: 毎年夏・冬参加\n- **大学祭**: 上映会・展示\n- **学内イベント**: 定期上映会\n\n```\nサークル室:学生会館3階302号室\n開放時間:平日16:00〜20:00\n```\n\n### 入会について\n\n技術的なスキルがなくても、*やる気があれば大歓迎*です!\n\n詳細は[公式サイト](https://example.com/chiba-anime)をご覧ください。",
|
| 300 |
"memberCount": 25,
|
| 301 |
"memberNote": null,
|
|
@@ -306,41 +280,32 @@
|
|
| 306 |
"otherCosts": null,
|
| 307 |
"annualSchedule": [
|
| 308 |
{
|
| 309 |
-
"
|
| 310 |
-
"
|
| 311 |
-
|
| 312 |
-
|
|
|
|
|
|
|
| 313 |
},
|
| 314 |
{
|
| 315 |
-
"
|
| 316 |
-
"
|
| 317 |
-
"春の上映会"
|
| 318 |
-
]
|
| 319 |
},
|
| 320 |
{
|
| 321 |
-
"
|
| 322 |
-
"
|
| 323 |
-
"コミケ参加",
|
| 324 |
-
"夏合宿"
|
| 325 |
-
]
|
| 326 |
},
|
| 327 |
{
|
| 328 |
-
"
|
| 329 |
-
"
|
| 330 |
-
"大祭展示・上映"
|
| 331 |
-
]
|
| 332 |
},
|
| 333 |
{
|
| 334 |
-
"
|
| 335 |
-
"
|
| 336 |
-
"冬の上映会"
|
| 337 |
-
]
|
| 338 |
},
|
| 339 |
{
|
| 340 |
-
"
|
| 341 |
-
"
|
| 342 |
-
"追いコン"
|
| 343 |
-
]
|
| 344 |
}
|
| 345 |
],
|
| 346 |
"contactInfo": "anime@example.chiba-u.jp",
|
|
@@ -358,10 +323,16 @@
|
|
| 358 |
"order": 1
|
| 359 |
}
|
| 360 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 361 |
"sns": [
|
| 362 |
{
|
| 363 |
"type": "TWITTER",
|
| 364 |
-
"url": "https://twitter.com/chiba_anime"
|
|
|
|
| 365 |
}
|
| 366 |
]
|
| 367 |
},
|
|
@@ -369,17 +340,11 @@
|
|
| 369 |
"circleId": "circle-005",
|
| 370 |
"circleName": "バドミントンサークル B.A.S.S.",
|
| 371 |
"circleNameKana": "ばどみんとんさーくる ばす",
|
| 372 |
-
"circleType": "準公認",
|
| 373 |
"projectId": null,
|
| 374 |
"projectName": null,
|
| 375 |
-
"mainCategory": "SPORTS",
|
| 376 |
-
"subCategory": "RACKET_SPORTS",
|
| 377 |
-
"category": "PERFORMANCE",
|
| 378 |
"genre": "SPORTS",
|
| 379 |
"areaCode": "G",
|
| 380 |
"pamphletNumber": 5,
|
| 381 |
-
"prSummary": "初心者から経験者まで楽しくバドミントン! 週2回の練習で無理なく続けられます。",
|
| 382 |
-
"description": "# バドミントンサークル B.A.S.S.\n\nB.A.S.S.(Badminton Association of Sports & Smash)は、楽しくバドミントンをすることをモットーに活動しています。\n\n## 特徴\n\n- **初心者歓迎**: 大学からバドミントンを始める人が半数以上\n- **自由な雰囲気**: 練習参加は自由、自分のペースで活動可能\n- **インカレ交流**: 他大学との合同練習・試合もあり\n\n## 活動日\n\n毎週水曜・土曜の18:00〜21:00に体育館で練習しています。",
|
| 383 |
"detailDescription": "# バドミントンサークル B.A.S.S. 詳細情報\n\n## サークル理念\n\n> 「楽しく、健康的に、仲間と一緒に」\n\nバドミントンサークルB.A.S.S.は、このモットーを掲げて活動するスポーツサークルです。\n\n## 活動スタイル\n\n体育会のような厳しい練習はなく、**各自のレベルに合わせて**楽しめます。\n\n### 練習内容\n\n1. ウォーミングアップ\n2. 基礎練習(初心者向け)\n3. ゲーム形式の練習\n4. 自由対戦\n\n## メンバー構成\n\n| レベル | 割合 |\n|--------|------|\n| 初心者 | 50% |\n| 経験者 | 40% |\n| 上級者 | 10% |\n\n## イベント\n\n- **学内大会**: 年2回開催\n- **他大学交流戦**: 近隣大学との親善試合\n- **合宿**: 夏季合宿(任意参加)\n\n```\n練習日程:毎週水曜・土曜\n時間:18:00〜21:00\n場所:総合体育館\n```\n\n### 費用\n\n- 年会費:**5,000円**\n- シャトル代:実費\n\n*ラケットのレンタルあり(初心者向け)*\n\n[Instagram](https://instagram.com/chiba_bass)で練習風景を公開中!",
|
| 384 |
"memberCount": 40,
|
| 385 |
"memberNote": null,
|
|
@@ -390,46 +355,32 @@
|
|
| 390 |
"otherCosts": null,
|
| 391 |
"annualSchedule": [
|
| 392 |
{
|
| 393 |
-
"
|
| 394 |
-
"
|
| 395 |
-
"新歓"
|
| 396 |
-
]
|
| 397 |
},
|
| 398 |
{
|
| 399 |
-
"
|
| 400 |
-
"
|
| 401 |
-
"学内大会"
|
| 402 |
-
]
|
| 403 |
},
|
| 404 |
{
|
| 405 |
-
"
|
| 406 |
-
"
|
| 407 |
-
"夏合宿"
|
| 408 |
-
]
|
| 409 |
},
|
| 410 |
{
|
| 411 |
-
"
|
| 412 |
-
"
|
| 413 |
-
"他大学交流戦"
|
| 414 |
-
]
|
| 415 |
},
|
| 416 |
{
|
| 417 |
-
"
|
| 418 |
-
"
|
| 419 |
-
"大祭"
|
| 420 |
-
]
|
| 421 |
},
|
| 422 |
{
|
| 423 |
-
"
|
| 424 |
-
"
|
| 425 |
-
"忘年会"
|
| 426 |
-
]
|
| 427 |
},
|
| 428 |
{
|
| 429 |
-
"
|
| 430 |
-
"
|
| 431 |
-
"追いコン"
|
| 432 |
-
]
|
| 433 |
}
|
| 434 |
],
|
| 435 |
"contactInfo": "bass-badminton@example.chiba-u.jp",
|
|
@@ -447,14 +398,21 @@
|
|
| 447 |
"order": 1
|
| 448 |
}
|
| 449 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 450 |
"sns": [
|
| 451 |
{
|
| 452 |
"type": "INSTAGRAM",
|
| 453 |
-
"url": "https://instagram.com/chiba_bass"
|
|
|
|
| 454 |
},
|
| 455 |
{
|
| 456 |
"type": "LINE",
|
| 457 |
-
"url": "https://line.me/chiba_bass"
|
|
|
|
| 458 |
}
|
| 459 |
]
|
| 460 |
},
|
|
@@ -462,17 +420,11 @@
|
|
| 462 |
"circleId": "circle-006",
|
| 463 |
"circleName": "プログラミングサークル CODE",
|
| 464 |
"circleNameKana": "ぷろぐらみんぐさーくる こーど",
|
| 465 |
-
"circleType": "準公認",
|
| 466 |
"projectId": null,
|
| 467 |
"projectName": null,
|
| 468 |
-
"mainCategory": "CULTURE",
|
| 469 |
-
"subCategory": "IT_TECH",
|
| 470 |
-
"category": "EXHIBITION",
|
| 471 |
"genre": "ACADEMIC",
|
| 472 |
"areaCode": "M",
|
| 473 |
"pamphletNumber": 6,
|
| 474 |
-
"prSummary": "Webアプリからゲーム開発まで、プログラミングを楽しむサークルです。",
|
| 475 |
-
"description": "# プログラミングサークル CODE\n\n技術を学び、創造力を発揮するサークルです。\n\n## 活動内容\n\n- Webアプリケーション開発\n- ゲーム開発\n- AI・機械学習の研究\n- ハッカソン参加\n\n## 初心者対応\n\nプログラミング未経験でも大丈夫!基礎から丁寧に教えます。",
|
| 476 |
"detailDescription": "# プログラミングサークル CODE\n\n## ミッション\n\n> 「技術で世界を変える」\n\n私たちCODEは、プログラミングを通じて*創造力*を発揮し、実際に動くプロダクトを作ることを目指しています。\n\n## 活動分野\n\n### Web開発チーム\n\n1. フロントエンド(React, Vue.js)\n2. バックエンド(Python, Node.js)\n3. インフラ(AWS, Docker)\n\n### ゲーム開発チーム\n\n- **Unity**: 3Dゲーム制作\n- **Godot**: 2Dゲーム制作\n- **Unreal Engine**: ハイエンドゲーム\n\n### AI・機械学習チーム\n\n- 画像認識\n- 自然言語処理\n- データ分析\n\n## 技術スタック\n\n| 分野 | 使用技術 |\n|------|----------|\n| 言語 | Python, JavaScript, TypeScript |\n| フレームワーク | React, Django, Flask |\n| データベース | PostgreSQL, MongoDB |\n| インフラ | AWS, GCP, Docker |\n\n## 勉強会・イベント\n\n- 週1回の**もくもく会**\n- 月1回の技術LT大会\n- 外部ハッカソンへの参加\n\n```python\n# CODEへようこそ!\ndef welcome(name):\n print(f'ようこそ、{name}さん!')\n print('一緒にプログラミングを楽しみましょう!')\n\nwelcome('新入生')\n```\n\n### 入会について\n\nプログラミング未経験でも**大歓迎**!基礎から丁寧に教えます。\n\n詳細は[公式サイト](https://example.com/chiba-code)をご覧ください。",
|
| 477 |
"memberCount": 35,
|
| 478 |
"memberNote": null,
|
|
@@ -483,42 +435,36 @@
|
|
| 483 |
"otherCosts": null,
|
| 484 |
"annualSchedule": [
|
| 485 |
{
|
| 486 |
-
"
|
| 487 |
-
"
|
| 488 |
-
|
| 489 |
-
|
| 490 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 491 |
},
|
| 492 |
{
|
| 493 |
-
"
|
| 494 |
-
"
|
| 495 |
-
"春季ハッカソン"
|
| 496 |
-
]
|
| 497 |
},
|
| 498 |
{
|
| 499 |
-
"
|
| 500 |
-
"
|
| 501 |
-
"夏合宿",
|
| 502 |
-
"開発合宿"
|
| 503 |
-
]
|
| 504 |
},
|
| 505 |
{
|
| 506 |
-
"
|
| 507 |
-
"
|
| 508 |
-
"技術カンファレンス参加"
|
| 509 |
-
]
|
| 510 |
},
|
| 511 |
{
|
| 512 |
-
"
|
| 513 |
-
"
|
| 514 |
-
"大祭展示"
|
| 515 |
-
]
|
| 516 |
},
|
| 517 |
{
|
| 518 |
-
"
|
| 519 |
-
"
|
| 520 |
-
"成果発表会"
|
| 521 |
-
]
|
| 522 |
}
|
| 523 |
],
|
| 524 |
"contactInfo": "code@example.chiba-u.jp",
|
|
@@ -536,14 +482,21 @@
|
|
| 536 |
"order": 1
|
| 537 |
}
|
| 538 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 539 |
"sns": [
|
| 540 |
{
|
| 541 |
"type": "TWITTER",
|
| 542 |
-
"url": "https://twitter.com/chiba_code"
|
|
|
|
| 543 |
},
|
| 544 |
{
|
| 545 |
"type": "GITHUB",
|
| 546 |
-
"url": "https://github.com/chiba-code"
|
|
|
|
| 547 |
}
|
| 548 |
]
|
| 549 |
},
|
|
@@ -551,17 +504,11 @@
|
|
| 551 |
"circleId": "circle-007",
|
| 552 |
"circleName": "茶道部",
|
| 553 |
"circleNameKana": "さどうぶ",
|
| 554 |
-
"circleType": "公認",
|
| 555 |
"projectId": null,
|
| 556 |
"projectName": null,
|
| 557 |
-
"mainCategory": "CULTURE",
|
| 558 |
-
"subCategory": "TRADITIONAL",
|
| 559 |
-
"category": "EXHIBITION",
|
| 560 |
"genre": "CULTURE",
|
| 561 |
"areaCode": "N",
|
| 562 |
"pamphletNumber": 7,
|
| 563 |
-
"prSummary": "日本の伝統文化「茶道」を学び、心を磨くサークルです。",
|
| 564 |
-
"description": "# 茶道部\n\n日本の伝統文化である茶道を学ぶ部活動です。\n\n## 流派\n\n表千家の作法を学びます。\n\n## 活動内容\n\n- 週2回のお稽古\n- 学園祭でのお茶会\n- 外部茶会への参加\n\n初心者の方も歓迎します。",
|
| 565 |
"detailDescription": "# 茶道部 詳細案内\n\n## 茶道とは\n\n> 「一期一会」\n\n茶道は、単なるお茶を点てる技術ではなく、**おもてなしの心**と**日本の美意識**を学ぶ総合芸術です。\n\n## 活動について\n\n### 流派\n\n*表千家*の作法を、プロの先生から直接学びます。\n\n### 稽古内容\n\n1. 基本の作法(座り方、お辞儀)\n2. お点前の練習\n3. お菓子の知識\n4. 季節の設え\n\n## お稽古スケジュール\n\n| 曜日 | 時間 | 内容 |\n|------|------|------|\n| 火曜 | 16:00-18:00 | 基礎稽古 |\n| 金曜 | 16:00-18:00 | 応用稽古 |\n\n## 年間行事\n\n- **学園祭茶会**: 大祭でのお茶席\n- **初釜**: 新年のお祝い茶会\n- **卒業茶会**: 卒業生を送る会\n\n```\n活動場所:学生会館2階 和室\n持ち物:白い靴下(初回のみ)\nお稽古代:月1,500円(お菓子・お抹茶代含む)\n```\n\n### 入部について\n\n**着物や道具は不要**です。すべてサークルで用意しています。\n\n- 経験不問\n- 男女問わず歓迎\n- 留学生も多数在籍\n\n茶道を通じて、*日本の心*を学んでみませんか?",
|
| 566 |
"memberCount": 20,
|
| 567 |
"memberNote": null,
|
|
@@ -572,40 +519,28 @@
|
|
| 572 |
"otherCosts": null,
|
| 573 |
"annualSchedule": [
|
| 574 |
{
|
| 575 |
-
"
|
| 576 |
-
"
|
| 577 |
-
"新歓"
|
| 578 |
-
]
|
| 579 |
},
|
| 580 |
{
|
| 581 |
-
"
|
| 582 |
-
"
|
| 583 |
-
"新入部員お稽古開始"
|
| 584 |
-
]
|
| 585 |
},
|
| 586 |
{
|
| 587 |
-
"
|
| 588 |
-
"
|
| 589 |
-
"七夕茶会"
|
| 590 |
-
]
|
| 591 |
},
|
| 592 |
{
|
| 593 |
-
"
|
| 594 |
-
"
|
| 595 |
-
"大祭茶会"
|
| 596 |
-
]
|
| 597 |
},
|
| 598 |
{
|
| 599 |
-
"
|
| 600 |
-
"
|
| 601 |
-
"初釜"
|
| 602 |
-
]
|
| 603 |
},
|
| 604 |
{
|
| 605 |
-
"
|
| 606 |
-
"
|
| 607 |
-
"卒業茶会"
|
| 608 |
-
]
|
| 609 |
}
|
| 610 |
],
|
| 611 |
"contactInfo": "sado@example.chiba-u.jp",
|
|
@@ -623,10 +558,16 @@
|
|
| 623 |
"order": 1
|
| 624 |
}
|
| 625 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 626 |
"sns": [
|
| 627 |
{
|
| 628 |
"type": "INSTAGRAM",
|
| 629 |
-
"url": "https://instagram.com/chiba_sado"
|
|
|
|
| 630 |
}
|
| 631 |
]
|
| 632 |
},
|
|
@@ -634,17 +575,11 @@
|
|
| 634 |
"circleId": "circle-008",
|
| 635 |
"circleName": "国際交流サークル GLOBAL",
|
| 636 |
"circleNameKana": "こくさいこうりゅうさーくる ぐろーばる",
|
| 637 |
-
"circleType": "準公認",
|
| 638 |
"projectId": null,
|
| 639 |
"projectName": null,
|
| 640 |
-
"mainCategory": "CULTURE",
|
| 641 |
-
"subCategory": "SOCIAL",
|
| 642 |
-
"category": "EXHIBITION",
|
| 643 |
"genre": "CULTURE",
|
| 644 |
"areaCode": "W",
|
| 645 |
"pamphletNumber": 8,
|
| 646 |
-
"prSummary": "留学生と日本人学生が交流するサークル。英語力向上にも!",
|
| 647 |
-
"description": "# 国際交流サークル GLOBAL\n\n留学生と日本人学生が一緒に活動するサークルです。\n\n## 活動内容\n\n- 言語交換(Language Exchange)\n- 文化交流イベント\n- 留学生サポート\n- 旅行・アウトドア活動\n\n英語が苦手でも大丈夫!",
|
| 648 |
"detailDescription": "# 国際交流サークル GLOBAL\n\n## 私たちの目標\n\n> 「国境を越えて、友情を育む」\n\n国際交流サークルGLOBALは、*留学生と日本人学生*が共に学び、交流するサークルです。\n\n## 主な活動\n\n### Language Exchange\n\n1. 週1回の言語交換セッション\n2. 少人数グループでの会話練習\n3. 文法・発音のサポート\n\n### 文化交流イベント\n\n- **料理会**: 各国の料理を作って食べる\n- **文化紹介**: 各国の文化・習慣を紹介\n- **映画上映会**: 外国語映画の鑑賞\n\n## メンバー構成\n\n| 国籍 | 人数 |\n|------|------|\n| 日本 | 25名 |\n| 中国 | 8名 |\n| 韓国 | 5名 |\n| 欧米 | 7名 |\n| その他 | 5名 |\n\n## 年間イベント\n\n- 4月:新歓ウェルカムパーティー\n- 7月:**国際BBQ大会**\n- 10月:大祭ブース出展\n- 12月:クリスマスパーティー\n- 2月:留学生送別会\n\n```\n活動場所:国際交流会館\n活動日:毎週木曜 18:00-20:00\n言語:日本語・英語(その他も歓迎)\n```\n\n### 入会のメリット\n\n- **語学力向上**: ネイティブスピーカーとの会話\n- **異文化理解**: 多様な価値観に触れる\n- **友人作り**: 世界中に友達ができる\n\n*英語が苦手でも大丈夫!* みんなで助け合いながら成長しましょう。\n\n詳細は[Instagram](https://instagram.com/chiba_global)をチェック!",
|
| 649 |
"memberCount": 50,
|
| 650 |
"memberNote": null,
|
|
@@ -655,46 +590,32 @@
|
|
| 655 |
"otherCosts": null,
|
| 656 |
"annualSchedule": [
|
| 657 |
{
|
| 658 |
-
"
|
| 659 |
-
"
|
| 660 |
-
"新歓パーティー"
|
| 661 |
-
]
|
| 662 |
},
|
| 663 |
{
|
| 664 |
-
"
|
| 665 |
-
"
|
| 666 |
-
"料理会"
|
| 667 |
-
]
|
| 668 |
},
|
| 669 |
{
|
| 670 |
-
"
|
| 671 |
-
"
|
| 672 |
-
"国際BBQ"
|
| 673 |
-
]
|
| 674 |
},
|
| 675 |
{
|
| 676 |
-
"
|
| 677 |
-
"
|
| 678 |
-
"夏旅行"
|
| 679 |
-
]
|
| 680 |
},
|
| 681 |
{
|
| 682 |
-
"
|
| 683 |
-
"
|
| 684 |
-
"大祭出展"
|
| 685 |
-
]
|
| 686 |
},
|
| 687 |
{
|
| 688 |
-
"
|
| 689 |
-
"
|
| 690 |
-
"クリスマスパーティー"
|
| 691 |
-
]
|
| 692 |
},
|
| 693 |
{
|
| 694 |
-
"
|
| 695 |
-
"
|
| 696 |
-
"送別会"
|
| 697 |
-
]
|
| 698 |
}
|
| 699 |
],
|
| 700 |
"contactInfo": "global@example.chiba-u.jp",
|
|
@@ -712,14 +633,21 @@
|
|
| 712 |
"order": 1
|
| 713 |
}
|
| 714 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 715 |
"sns": [
|
| 716 |
{
|
| 717 |
"type": "INSTAGRAM",
|
| 718 |
-
"url": "https://instagram.com/chiba_global"
|
|
|
|
| 719 |
},
|
| 720 |
{
|
| 721 |
"type": "LINE",
|
| 722 |
-
"url": "https://line.me/chiba_global"
|
|
|
|
| 723 |
}
|
| 724 |
]
|
| 725 |
}
|
|
|
|
| 3 |
"circleId": "circle-001",
|
| 4 |
"circleName": "千葉大学サッカー部",
|
| 5 |
"circleNameKana": "ちばだいがくさっかーぶ",
|
|
|
|
| 6 |
"projectId": null,
|
| 7 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 8 |
"genre": "ATHLETIC_CLUB",
|
| 9 |
"areaCode": "T",
|
| 10 |
"pamphletNumber": 1,
|
|
|
|
|
|
|
| 11 |
"detailDescription": "# 千葉大学サッカー部について\n\n## 概要\n\n関東大学サッカーリーグ**1部**所属。創部以来、多くの*プロサッカー選手*を輩出してきた伝統あるチームです。\n\n## 活動頻度と内容\n\n週5日の厳しい練習を通じて、以下のスキルを鍛えています:\n\n1. 技術力の向上\n2. 体力・持久力の強化\n3. 精神力・メンタルの鍛錬\n\n> 「サッカーは11人でするスポーツ。チームワークがすべての基盤だ」- 監督談\n\n## 年間スケジュール\n\n| 時期 | イベント |\n|------|----------|\n| 4月 | 新歓・春季リーグ開幕 |\n| 8月 | 夏合宿 |\n| 11月 | 大祭・秋季リーグ |\n| 3月 | 追いコン |\n\n## 入部条件\n\n- サッカー経験者優遇\n- 初心者も相談可\n- **マネージャー募集中**\n\n詳細は[公式サイト](https://example.com/chiba-soccer)をご覧ください。\n\n```\n練習日程:月・火・水・木・土\n場所:総合グラウンド\n```",
|
| 12 |
"memberCount": 50,
|
| 13 |
"memberNote": null,
|
|
|
|
| 18 |
"otherCosts": null,
|
| 19 |
"annualSchedule": [
|
| 20 |
{
|
| 21 |
+
"period": "4月",
|
| 22 |
+
"event": "新歓"
|
|
|
|
|
|
|
|
|
|
| 23 |
},
|
| 24 |
{
|
| 25 |
+
"period": "4月",
|
| 26 |
+
"event": "春季リーグ開幕"
|
|
|
|
|
|
|
| 27 |
},
|
| 28 |
{
|
| 29 |
+
"period": "5月",
|
| 30 |
+
"event": "リーグ戦"
|
|
|
|
|
|
|
| 31 |
},
|
| 32 |
{
|
| 33 |
+
"period": "8月",
|
| 34 |
+
"event": "夏合宿"
|
|
|
|
|
|
|
|
|
|
| 35 |
},
|
| 36 |
{
|
| 37 |
+
"period": "11月",
|
| 38 |
+
"event": "大祭"
|
|
|
|
|
|
|
| 39 |
},
|
| 40 |
{
|
| 41 |
+
"period": "11月",
|
| 42 |
+
"event": "秋季リーグ"
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"period": "12月",
|
| 46 |
+
"event": "冬合宿"
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"period": "3月",
|
| 50 |
+
"event": "追いコン"
|
| 51 |
}
|
| 52 |
],
|
| 53 |
"contactInfo": "soccer@example.chiba-u.jp",
|
|
|
|
| 70 |
"order": 2
|
| 71 |
}
|
| 72 |
],
|
| 73 |
+
"mainImage": {
|
| 74 |
+
"url": "https://placehold.co/800x600?text=Soccer1",
|
| 75 |
+
"alt": "サッカー部練習風景",
|
| 76 |
+
"order": 0
|
| 77 |
+
},
|
| 78 |
"sns": [
|
| 79 |
{
|
| 80 |
"type": "TWITTER",
|
| 81 |
+
"url": "https://twitter.com/chiba_soccer",
|
| 82 |
+
"handle": null
|
| 83 |
},
|
| 84 |
{
|
| 85 |
"type": "INSTAGRAM",
|
| 86 |
+
"url": "https://instagram.com/chiba_soccer",
|
| 87 |
+
"handle": null
|
| 88 |
}
|
| 89 |
]
|
| 90 |
},
|
|
|
|
| 92 |
"circleId": "circle-002",
|
| 93 |
"circleName": "千葉大学吹奏楽団",
|
| 94 |
"circleNameKana": "ちばだいがくすいそうがくだん",
|
|
|
|
| 95 |
"projectId": null,
|
| 96 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 97 |
"genre": "MUSIC",
|
| 98 |
"areaCode": "L",
|
| 99 |
"pamphletNumber": 2,
|
|
|
|
|
|
|
| 100 |
"detailDescription": "# 千葉大学吹奏楽団 詳細案内\n\n## 歴史と伝統\n\n千葉大学吹奏楽団は**1950年代**に創設された伝統ある音楽団体です。\n\n> 70年以上の歴史の中で、数々の名演奏を生み出してきました\n\n## 演奏会情報\n\n年間を通じて精力的に活動し、定期演奏会では毎回*1000人以上*の観客を動員しています。\n\n### 主な演奏会\n\n1. 春の定期演奏会(6月)\n2. 学園祭ステージ(10月)\n3. クリスマスコンサート(12月)\n4. 卒業演奏会(3月)\n\n## コンクール実績\n\n| 年度 | 大会名 | 結果 |\n|------|--------|------|\n| 2024 | 関東大会 | 金賞 |\n| 2023 | 全国大会 | 銀賞 |\n| 2022 | 関東大会 | 金賞 |\n\n## 楽器パート紹介\n\n- **木管楽器**: フルート、クラリネット、オーボエ等\n- **金管楽器**: トランペット、トロンボーン、ホルン等\n- **打楽器**: ティンパニ、パーカッション等\n\n```\n入部問い合わせ先:brass@example.chiba-u.jp\n見学随時受付中!\n```\n\n詳細は[公式サイト](https://example.com/chiba-brass)へ",
|
| 101 |
"memberCount": 60,
|
| 102 |
"memberNote": null,
|
|
|
|
| 107 |
"otherCosts": null,
|
| 108 |
"annualSchedule": [
|
| 109 |
{
|
| 110 |
+
"period": "4月",
|
| 111 |
+
"event": "新歓"
|
| 112 |
+
},
|
| 113 |
+
{
|
| 114 |
+
"period": "4月",
|
| 115 |
+
"event": "新入生歓迎演奏会"
|
| 116 |
+
},
|
| 117 |
+
{
|
| 118 |
+
"period": "6月",
|
| 119 |
+
"event": "定期演奏会"
|
| 120 |
},
|
| 121 |
{
|
| 122 |
+
"period": "8月",
|
| 123 |
+
"event": "夏合宿"
|
|
|
|
|
|
|
| 124 |
},
|
| 125 |
{
|
| 126 |
+
"period": "8月",
|
| 127 |
+
"event": "コンクール"
|
|
|
|
|
|
|
|
|
|
| 128 |
},
|
| 129 |
{
|
| 130 |
+
"period": "10月",
|
| 131 |
+
"event": "学園祭演奏"
|
|
|
|
|
|
|
| 132 |
},
|
| 133 |
{
|
| 134 |
+
"period": "12月",
|
| 135 |
+
"event": "クリスマスコンサート"
|
|
|
|
|
|
|
| 136 |
},
|
| 137 |
{
|
| 138 |
+
"period": "3月",
|
| 139 |
+
"event": "追いコン"
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"period": "3月",
|
| 143 |
+
"event": "卒業演奏会"
|
| 144 |
}
|
| 145 |
],
|
| 146 |
"contactInfo": "brass@example.chiba-u.jp",
|
|
|
|
| 163 |
"order": 2
|
| 164 |
}
|
| 165 |
],
|
| 166 |
+
"mainImage": {
|
| 167 |
+
"url": "https://placehold.co/800x600?text=Brass1",
|
| 168 |
+
"alt": "演奏会の様子",
|
| 169 |
+
"order": 0
|
| 170 |
+
},
|
| 171 |
"sns": [
|
| 172 |
{
|
| 173 |
"type": "TWITTER",
|
| 174 |
+
"url": "https://twitter.com/chiba_brass",
|
| 175 |
+
"handle": null
|
| 176 |
},
|
| 177 |
{
|
| 178 |
"type": "LINE",
|
| 179 |
+
"url": "https://line.me/chiba_brass",
|
| 180 |
+
"handle": null
|
| 181 |
}
|
| 182 |
]
|
| 183 |
},
|
|
|
|
| 185 |
"circleId": "circle-003",
|
| 186 |
"circleName": "軽音楽サークル SOUNDWAVE",
|
| 187 |
"circleNameKana": "けいおんがくさーくる さうんどうぇーぶ",
|
|
|
|
| 188 |
"projectId": null,
|
| 189 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 190 |
"genre": "MUSIC",
|
| 191 |
"areaCode": "K",
|
| 192 |
"pamphletNumber": 3,
|
|
|
|
|
|
|
| 193 |
"detailDescription": "# 軽音楽サークル SOUNDWAVE\n\n## コンセプト\n\n> 「音楽を愛するすべての人に、表現の場を」\n\n軽音楽サークルSOUNDWAVEは、音楽を愛するメンバーが集まり、*自由に*音楽活動を楽しむサークルです。\n\n## ジャンルの多様性\n\nジャンルの垣根なく、やりたい音楽を追求できる環境があります:\n\n- **ロック**: J-ROCKから洋楽まで\n- **ポップス**: 最新ヒット曲のコピーバンド\n- **ジャズ**: スタンダードナンバーのセッション\n- **アニソン**: アニメソングカバー\n\n## バンド結成の流れ\n\n1. 新歓期にメンバー募集\n2. ジャンル・趣味の合う人と出会う\n3. バンドを結成\n4. 練習を重ねる\n5. ライブで発表!\n\n## 初心者向けサポート\n\n| サポート内容 | 詳細 |\n|--------------|------|\n| 楽器レンタル | ギター、ベース、キーボード |\n| レッスン | 先輩による個別指導 |\n| 教材 | 初心者向け楽譜・動画 |\n\n```\n練習スタジオ:音楽棟地下1階\n利用時間:9:00〜21:00\n予約方法:LINE公式アカウントから\n```\n\n### 入部費用\n\n年会費**6,000円**(スタジオ利用料込み)\n\n[Twitter](https://twitter.com/chiba_keion)で活動情報を発信中!",
|
| 194 |
"memberCount": 30,
|
| 195 |
"memberNote": null,
|
|
|
|
| 200 |
"otherCosts": null,
|
| 201 |
"annualSchedule": [
|
| 202 |
{
|
| 203 |
+
"period": "4月",
|
| 204 |
+
"event": "新歓ライブ"
|
|
|
|
|
|
|
| 205 |
},
|
| 206 |
{
|
| 207 |
+
"period": "5月",
|
| 208 |
+
"event": "春の定期ライブ"
|
|
|
|
|
|
|
| 209 |
},
|
| 210 |
{
|
| 211 |
+
"period": "7月",
|
| 212 |
+
"event": "七夕ライブ"
|
|
|
|
|
|
|
| 213 |
},
|
| 214 |
{
|
| 215 |
+
"period": "8月",
|
| 216 |
+
"event": "夏合宿"
|
|
|
|
|
|
|
| 217 |
},
|
| 218 |
{
|
| 219 |
+
"period": "11月",
|
| 220 |
+
"event": "大祭ステージ"
|
|
|
|
|
|
|
| 221 |
},
|
| 222 |
{
|
| 223 |
+
"period": "12月",
|
| 224 |
+
"event": "クリスマスライブ"
|
|
|
|
|
|
|
| 225 |
},
|
| 226 |
{
|
| 227 |
+
"period": "3月",
|
| 228 |
+
"event": "追いコン"
|
|
|
|
|
|
|
| 229 |
}
|
| 230 |
],
|
| 231 |
"contactInfo": "keion@example.chiba-u.jp",
|
|
|
|
| 243 |
"order": 1
|
| 244 |
}
|
| 245 |
],
|
| 246 |
+
"mainImage": {
|
| 247 |
+
"url": "https://placehold.co/800x600?text=Keion1",
|
| 248 |
+
"alt": "ライブ演奏",
|
| 249 |
+
"order": 0
|
| 250 |
+
},
|
| 251 |
"sns": [
|
| 252 |
{
|
| 253 |
"type": "TWITTER",
|
| 254 |
+
"url": "https://twitter.com/chiba_keion",
|
| 255 |
+
"handle": null
|
| 256 |
},
|
| 257 |
{
|
| 258 |
"type": "INSTAGRAM",
|
| 259 |
+
"url": "https://instagram.com/chiba_keion",
|
| 260 |
+
"handle": null
|
| 261 |
}
|
| 262 |
]
|
| 263 |
},
|
|
|
|
| 265 |
"circleId": "circle-004",
|
| 266 |
"circleName": "アニメーション研究会",
|
| 267 |
"circleNameKana": "あにめーしょんけんきゅうかい",
|
|
|
|
| 268 |
"projectId": null,
|
| 269 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 270 |
"genre": "CULTURE",
|
| 271 |
"areaCode": "S",
|
| 272 |
"pamphletNumber": 4,
|
|
|
|
|
|
|
| 273 |
"detailDescription": "# アニメーション研究会 詳細ガイド\n\n## 私たちについて\n\nアニメーション研究会は、アニメ好きが集まり、**観る**だけでなく**作る**ことにも挑戦するサークルです。\n\n> 「見る側から、作る側へ」\n\n## 活動内容詳細\n\n### 制作部門\n\nデジタルツールを使った本格的なアニメーション制作:\n\n1. 企画・シナリオ作成\n2. キャラクターデザイン\n3. 作画・動画制作\n4. 編集・仕上げ\n\n### イラスト・漫画部門\n\n- *同人誌*制作\n- イラスト集発行\n- Web漫画連載\n\n## 使用ソフトウェア\n\n| ソフト | 用途 |\n|--------|------|\n| CLIP STUDIO | イラスト・漫画 |\n| After Effects | 動画編集 |\n| Blender | 3DCG |\n\n## イベント参加実績\n\n- **コミックマーケット**: 毎年夏・冬参加\n- **大学祭**: 上映会・展示\n- **学内イベント**: 定期上映会\n\n```\nサークル室:学生会館3階302号室\n開放時間:平日16:00〜20:00\n```\n\n### 入会について\n\n技術的なスキルがなくても、*やる気があれば大歓迎*です!\n\n詳細は[公式サイト](https://example.com/chiba-anime)をご覧ください。",
|
| 274 |
"memberCount": 25,
|
| 275 |
"memberNote": null,
|
|
|
|
| 280 |
"otherCosts": null,
|
| 281 |
"annualSchedule": [
|
| 282 |
{
|
| 283 |
+
"period": "4月",
|
| 284 |
+
"event": "新歓"
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"period": "5月",
|
| 288 |
+
"event": "春の上映会"
|
| 289 |
},
|
| 290 |
{
|
| 291 |
+
"period": "8月",
|
| 292 |
+
"event": "コミケ参加"
|
|
|
|
|
|
|
| 293 |
},
|
| 294 |
{
|
| 295 |
+
"period": "8月",
|
| 296 |
+
"event": "夏合宿"
|
|
|
|
|
|
|
|
|
|
| 297 |
},
|
| 298 |
{
|
| 299 |
+
"period": "11月",
|
| 300 |
+
"event": "大祭展示・上映"
|
|
|
|
|
|
|
| 301 |
},
|
| 302 |
{
|
| 303 |
+
"period": "2月",
|
| 304 |
+
"event": "冬の上映会"
|
|
|
|
|
|
|
| 305 |
},
|
| 306 |
{
|
| 307 |
+
"period": "3月",
|
| 308 |
+
"event": "追いコン"
|
|
|
|
|
|
|
| 309 |
}
|
| 310 |
],
|
| 311 |
"contactInfo": "anime@example.chiba-u.jp",
|
|
|
|
| 323 |
"order": 1
|
| 324 |
}
|
| 325 |
],
|
| 326 |
+
"mainImage": {
|
| 327 |
+
"url": "https://placehold.co/800x600?text=Anime1",
|
| 328 |
+
"alt": "制作風景",
|
| 329 |
+
"order": 0
|
| 330 |
+
},
|
| 331 |
"sns": [
|
| 332 |
{
|
| 333 |
"type": "TWITTER",
|
| 334 |
+
"url": "https://twitter.com/chiba_anime",
|
| 335 |
+
"handle": null
|
| 336 |
}
|
| 337 |
]
|
| 338 |
},
|
|
|
|
| 340 |
"circleId": "circle-005",
|
| 341 |
"circleName": "バドミントンサークル B.A.S.S.",
|
| 342 |
"circleNameKana": "ばどみんとんさーくる ばす",
|
|
|
|
| 343 |
"projectId": null,
|
| 344 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 345 |
"genre": "SPORTS",
|
| 346 |
"areaCode": "G",
|
| 347 |
"pamphletNumber": 5,
|
|
|
|
|
|
|
| 348 |
"detailDescription": "# バドミントンサークル B.A.S.S. 詳細情報\n\n## サークル理念\n\n> 「楽しく、健康的に、仲間と一緒に」\n\nバドミントンサークルB.A.S.S.は、このモットーを掲げて活動するスポーツサークルです。\n\n## 活動スタイル\n\n体育会のような厳しい練習はなく、**各自のレベルに合わせて**楽しめます。\n\n### 練習内容\n\n1. ウォーミングアップ\n2. 基礎練習(初心者向け)\n3. ゲーム形式の練習\n4. 自由対戦\n\n## メンバー構成\n\n| レベル | 割合 |\n|--------|------|\n| 初心者 | 50% |\n| 経験者 | 40% |\n| 上級者 | 10% |\n\n## イベント\n\n- **学内大会**: 年2回開催\n- **他大学交流戦**: 近隣大学との親善試合\n- **合宿**: 夏季合宿(任意参加)\n\n```\n練習日程:毎週水曜・土曜\n時間:18:00〜21:00\n場所:総合体育館\n```\n\n### 費用\n\n- 年会費:**5,000円**\n- シャトル代:実費\n\n*ラケットのレンタルあり(初心者向け)*\n\n[Instagram](https://instagram.com/chiba_bass)で練習風景を公開中!",
|
| 349 |
"memberCount": 40,
|
| 350 |
"memberNote": null,
|
|
|
|
| 355 |
"otherCosts": null,
|
| 356 |
"annualSchedule": [
|
| 357 |
{
|
| 358 |
+
"period": "4月",
|
| 359 |
+
"event": "新歓"
|
|
|
|
|
|
|
| 360 |
},
|
| 361 |
{
|
| 362 |
+
"period": "6月",
|
| 363 |
+
"event": "学内大会"
|
|
|
|
|
|
|
| 364 |
},
|
| 365 |
{
|
| 366 |
+
"period": "8月",
|
| 367 |
+
"event": "夏合宿"
|
|
|
|
|
|
|
| 368 |
},
|
| 369 |
{
|
| 370 |
+
"period": "9月",
|
| 371 |
+
"event": "他大学交流戦"
|
|
|
|
|
|
|
| 372 |
},
|
| 373 |
{
|
| 374 |
+
"period": "11月",
|
| 375 |
+
"event": "大祭"
|
|
|
|
|
|
|
| 376 |
},
|
| 377 |
{
|
| 378 |
+
"period": "12月",
|
| 379 |
+
"event": "忘年会"
|
|
|
|
|
|
|
| 380 |
},
|
| 381 |
{
|
| 382 |
+
"period": "3月",
|
| 383 |
+
"event": "追いコン"
|
|
|
|
|
|
|
| 384 |
}
|
| 385 |
],
|
| 386 |
"contactInfo": "bass-badminton@example.chiba-u.jp",
|
|
|
|
| 398 |
"order": 1
|
| 399 |
}
|
| 400 |
],
|
| 401 |
+
"mainImage": {
|
| 402 |
+
"url": "https://placehold.co/800x600?text=Badminton1",
|
| 403 |
+
"alt": "練習風景",
|
| 404 |
+
"order": 0
|
| 405 |
+
},
|
| 406 |
"sns": [
|
| 407 |
{
|
| 408 |
"type": "INSTAGRAM",
|
| 409 |
+
"url": "https://instagram.com/chiba_bass",
|
| 410 |
+
"handle": null
|
| 411 |
},
|
| 412 |
{
|
| 413 |
"type": "LINE",
|
| 414 |
+
"url": "https://line.me/chiba_bass",
|
| 415 |
+
"handle": null
|
| 416 |
}
|
| 417 |
]
|
| 418 |
},
|
|
|
|
| 420 |
"circleId": "circle-006",
|
| 421 |
"circleName": "プログラミングサークル CODE",
|
| 422 |
"circleNameKana": "ぷろぐらみんぐさーくる こーど",
|
|
|
|
| 423 |
"projectId": null,
|
| 424 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 425 |
"genre": "ACADEMIC",
|
| 426 |
"areaCode": "M",
|
| 427 |
"pamphletNumber": 6,
|
|
|
|
|
|
|
| 428 |
"detailDescription": "# プログラミングサークル CODE\n\n## ミッション\n\n> 「技術で世界を変える」\n\n私たちCODEは、プログラミングを通じて*創造力*を発揮し、実際に動くプロダクトを作ることを目指しています。\n\n## 活動分野\n\n### Web開発チーム\n\n1. フロントエンド(React, Vue.js)\n2. バックエンド(Python, Node.js)\n3. インフラ(AWS, Docker)\n\n### ゲーム開発チーム\n\n- **Unity**: 3Dゲーム制作\n- **Godot**: 2Dゲーム制作\n- **Unreal Engine**: ハイエンドゲーム\n\n### AI・機械学習チーム\n\n- 画像認識\n- 自然言語処理\n- データ分析\n\n## 技術スタック\n\n| 分野 | 使用技術 |\n|------|----------|\n| 言語 | Python, JavaScript, TypeScript |\n| フレームワーク | React, Django, Flask |\n| データベース | PostgreSQL, MongoDB |\n| インフラ | AWS, GCP, Docker |\n\n## 勉強会・イベント\n\n- 週1回の**もくもく会**\n- 月1回の技術LT大会\n- 外部ハッカソンへの参加\n\n```python\n# CODEへようこそ!\ndef welcome(name):\n print(f'ようこそ、{name}さん!')\n print('一緒にプログラミングを楽しみましょう!')\n\nwelcome('新入生')\n```\n\n### 入会について\n\nプログラミング未経験でも**大歓迎**!基礎から丁寧に教えます。\n\n詳細は[公式サイト](https://example.com/chiba-code)をご覧ください。",
|
| 429 |
"memberCount": 35,
|
| 430 |
"memberNote": null,
|
|
|
|
| 435 |
"otherCosts": null,
|
| 436 |
"annualSchedule": [
|
| 437 |
{
|
| 438 |
+
"period": "4月",
|
| 439 |
+
"event": "新歓"
|
| 440 |
+
},
|
| 441 |
+
{
|
| 442 |
+
"period": "4月",
|
| 443 |
+
"event": "基礎講座開始"
|
| 444 |
+
},
|
| 445 |
+
{
|
| 446 |
+
"period": "5月",
|
| 447 |
+
"event": "春季ハッカソン"
|
| 448 |
},
|
| 449 |
{
|
| 450 |
+
"period": "8月",
|
| 451 |
+
"event": "夏合宿"
|
|
|
|
|
|
|
| 452 |
},
|
| 453 |
{
|
| 454 |
+
"period": "8月",
|
| 455 |
+
"event": "開発合宿"
|
|
|
|
|
|
|
|
|
|
| 456 |
},
|
| 457 |
{
|
| 458 |
+
"period": "10月",
|
| 459 |
+
"event": "技術カンファレンス参加"
|
|
|
|
|
|
|
| 460 |
},
|
| 461 |
{
|
| 462 |
+
"period": "11月",
|
| 463 |
+
"event": "大祭展示"
|
|
|
|
|
|
|
| 464 |
},
|
| 465 |
{
|
| 466 |
+
"period": "3月",
|
| 467 |
+
"event": "成果発表会"
|
|
|
|
|
|
|
| 468 |
}
|
| 469 |
],
|
| 470 |
"contactInfo": "code@example.chiba-u.jp",
|
|
|
|
| 482 |
"order": 1
|
| 483 |
}
|
| 484 |
],
|
| 485 |
+
"mainImage": {
|
| 486 |
+
"url": "https://placehold.co/800x600?text=Code1",
|
| 487 |
+
"alt": "ハッカソンの様子",
|
| 488 |
+
"order": 0
|
| 489 |
+
},
|
| 490 |
"sns": [
|
| 491 |
{
|
| 492 |
"type": "TWITTER",
|
| 493 |
+
"url": "https://twitter.com/chiba_code",
|
| 494 |
+
"handle": null
|
| 495 |
},
|
| 496 |
{
|
| 497 |
"type": "GITHUB",
|
| 498 |
+
"url": "https://github.com/chiba-code",
|
| 499 |
+
"handle": null
|
| 500 |
}
|
| 501 |
]
|
| 502 |
},
|
|
|
|
| 504 |
"circleId": "circle-007",
|
| 505 |
"circleName": "茶道部",
|
| 506 |
"circleNameKana": "さどうぶ",
|
|
|
|
| 507 |
"projectId": null,
|
| 508 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 509 |
"genre": "CULTURE",
|
| 510 |
"areaCode": "N",
|
| 511 |
"pamphletNumber": 7,
|
|
|
|
|
|
|
| 512 |
"detailDescription": "# 茶道部 詳細案内\n\n## 茶道とは\n\n> 「一期一会」\n\n茶道は、単なるお茶を点てる技術ではなく、**おもてなしの心**と**日本の美意識**を学ぶ総合芸術です。\n\n## 活動について\n\n### 流派\n\n*表千家*の作法を、プロの先生から直接学びます。\n\n### 稽古内容\n\n1. 基本の作法(座り方、お辞儀)\n2. お点前の練習\n3. お菓子の知識\n4. 季節の設え\n\n## お稽古スケジュール\n\n| 曜日 | 時間 | 内容 |\n|------|------|------|\n| 火曜 | 16:00-18:00 | 基礎稽古 |\n| 金曜 | 16:00-18:00 | 応用稽古 |\n\n## 年間行事\n\n- **学園祭茶会**: 大祭でのお茶席\n- **初釜**: 新年のお祝い茶会\n- **卒業茶会**: 卒業生を送る会\n\n```\n活動場所:学生会館2階 和室\n持ち物:白い靴下(初回のみ)\nお稽古代:月1,500円(お菓子・お抹茶代含む)\n```\n\n### 入部について\n\n**着物や道具は不要**です。すべてサークルで用意しています。\n\n- 経験不問\n- 男女問わず歓迎\n- 留学生も多数在籍\n\n茶道を通じて、*日本の心*を学んでみませんか?",
|
| 513 |
"memberCount": 20,
|
| 514 |
"memberNote": null,
|
|
|
|
| 519 |
"otherCosts": null,
|
| 520 |
"annualSchedule": [
|
| 521 |
{
|
| 522 |
+
"period": "4月",
|
| 523 |
+
"event": "新歓"
|
|
|
|
|
|
|
| 524 |
},
|
| 525 |
{
|
| 526 |
+
"period": "5月",
|
| 527 |
+
"event": "新入部員お稽古開始"
|
|
|
|
|
|
|
| 528 |
},
|
| 529 |
{
|
| 530 |
+
"period": "7月",
|
| 531 |
+
"event": "七夕茶会"
|
|
|
|
|
|
|
| 532 |
},
|
| 533 |
{
|
| 534 |
+
"period": "11月",
|
| 535 |
+
"event": "大祭茶会"
|
|
|
|
|
|
|
| 536 |
},
|
| 537 |
{
|
| 538 |
+
"period": "1月",
|
| 539 |
+
"event": "初釜"
|
|
|
|
|
|
|
| 540 |
},
|
| 541 |
{
|
| 542 |
+
"period": "3月",
|
| 543 |
+
"event": "卒業茶会"
|
|
|
|
|
|
|
| 544 |
}
|
| 545 |
],
|
| 546 |
"contactInfo": "sado@example.chiba-u.jp",
|
|
|
|
| 558 |
"order": 1
|
| 559 |
}
|
| 560 |
],
|
| 561 |
+
"mainImage": {
|
| 562 |
+
"url": "https://placehold.co/800x600?text=Sado1",
|
| 563 |
+
"alt": "お稽古風景",
|
| 564 |
+
"order": 0
|
| 565 |
+
},
|
| 566 |
"sns": [
|
| 567 |
{
|
| 568 |
"type": "INSTAGRAM",
|
| 569 |
+
"url": "https://instagram.com/chiba_sado",
|
| 570 |
+
"handle": null
|
| 571 |
}
|
| 572 |
]
|
| 573 |
},
|
|
|
|
| 575 |
"circleId": "circle-008",
|
| 576 |
"circleName": "国際交流サークル GLOBAL",
|
| 577 |
"circleNameKana": "こくさいこうりゅうさーくる ぐろーばる",
|
|
|
|
| 578 |
"projectId": null,
|
| 579 |
"projectName": null,
|
|
|
|
|
|
|
|
|
|
| 580 |
"genre": "CULTURE",
|
| 581 |
"areaCode": "W",
|
| 582 |
"pamphletNumber": 8,
|
|
|
|
|
|
|
| 583 |
"detailDescription": "# 国際交流サークル GLOBAL\n\n## 私たちの目標\n\n> 「国境を越えて、友情を育む」\n\n国際交流サークルGLOBALは、*留学生と日本人学生*が共に学び、交流するサークルです。\n\n## 主な活動\n\n### Language Exchange\n\n1. 週1回の言語交換セッション\n2. 少人数グループでの会話練習\n3. 文法・発音のサポート\n\n### 文化交流イベント\n\n- **料理会**: 各国の料理を作って食べる\n- **文化紹介**: 各国の文化・習慣を紹介\n- **映画上映会**: 外国語映画の鑑賞\n\n## メンバー構成\n\n| 国籍 | 人数 |\n|------|------|\n| 日本 | 25名 |\n| 中国 | 8名 |\n| 韓国 | 5名 |\n| 欧米 | 7名 |\n| その他 | 5名 |\n\n## 年間イベント\n\n- 4月:新歓ウェルカムパーティー\n- 7月:**国際BBQ大会**\n- 10月:大祭ブース出展\n- 12月:クリスマスパーティー\n- 2月:留学生送別会\n\n```\n活動場所:国際交流会館\n活動日:毎週木曜 18:00-20:00\n言語:日本語・英語(その他も歓迎)\n```\n\n### 入会のメリット\n\n- **語学力向上**: ネイティブスピーカーとの会話\n- **異文化理解**: 多様な価値観に触れる\n- **友人作り**: 世界中に友達ができる\n\n*英語が苦手でも大丈夫!* みんなで助け合いながら成長しましょう。\n\n詳細は[Instagram](https://instagram.com/chiba_global)をチェック!",
|
| 584 |
"memberCount": 50,
|
| 585 |
"memberNote": null,
|
|
|
|
| 590 |
"otherCosts": null,
|
| 591 |
"annualSchedule": [
|
| 592 |
{
|
| 593 |
+
"period": "4月",
|
| 594 |
+
"event": "新歓パーティー"
|
|
|
|
|
|
|
| 595 |
},
|
| 596 |
{
|
| 597 |
+
"period": "5月",
|
| 598 |
+
"event": "料理会"
|
|
|
|
|
|
|
| 599 |
},
|
| 600 |
{
|
| 601 |
+
"period": "7月",
|
| 602 |
+
"event": "国際BBQ"
|
|
|
|
|
|
|
| 603 |
},
|
| 604 |
{
|
| 605 |
+
"period": "8月",
|
| 606 |
+
"event": "夏旅行"
|
|
|
|
|
|
|
| 607 |
},
|
| 608 |
{
|
| 609 |
+
"period": "11月",
|
| 610 |
+
"event": "大祭出展"
|
|
|
|
|
|
|
| 611 |
},
|
| 612 |
{
|
| 613 |
+
"period": "12月",
|
| 614 |
+
"event": "クリスマスパーティー"
|
|
|
|
|
|
|
| 615 |
},
|
| 616 |
{
|
| 617 |
+
"period": "2月",
|
| 618 |
+
"event": "送別会"
|
|
|
|
|
|
|
| 619 |
}
|
| 620 |
],
|
| 621 |
"contactInfo": "global@example.chiba-u.jp",
|
|
|
|
| 633 |
"order": 1
|
| 634 |
}
|
| 635 |
],
|
| 636 |
+
"mainImage": {
|
| 637 |
+
"url": "https://placehold.co/800x600?text=Global1",
|
| 638 |
+
"alt": "交流イベント",
|
| 639 |
+
"order": 0
|
| 640 |
+
},
|
| 641 |
"sns": [
|
| 642 |
{
|
| 643 |
"type": "INSTAGRAM",
|
| 644 |
+
"url": "https://instagram.com/chiba_global",
|
| 645 |
+
"handle": null
|
| 646 |
},
|
| 647 |
{
|
| 648 |
"type": "LINE",
|
| 649 |
+
"url": "https://line.me/chiba_global",
|
| 650 |
+
"handle": null
|
| 651 |
}
|
| 652 |
]
|
| 653 |
}
|
schemas/circles.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
| 1 |
from enum import Enum
|
| 2 |
-
from typing import Literal
|
| 3 |
from pydantic import BaseModel
|
| 4 |
|
| 5 |
|
|
@@ -23,12 +22,13 @@ class Sns(BaseModel):
|
|
| 23 |
"""SNS情報"""
|
| 24 |
type: str
|
| 25 |
url: str
|
|
|
|
| 26 |
|
| 27 |
|
| 28 |
class AnnualScheduleItem(BaseModel):
|
| 29 |
"""年間予定の項目"""
|
| 30 |
-
|
| 31 |
-
|
| 32 |
|
| 33 |
|
| 34 |
class Circle(BaseModel):
|
|
@@ -36,41 +36,29 @@ class Circle(BaseModel):
|
|
| 36 |
circleId: str
|
| 37 |
circleName: str
|
| 38 |
circleNameKana: str
|
| 39 |
-
circleType: Literal["公認", "準公認"]
|
| 40 |
|
| 41 |
# 企画関連(大祭企画との紐付け用、オプション)
|
| 42 |
projectId: str | None = None
|
| 43 |
projectName: str | None = None
|
| 44 |
|
| 45 |
-
#
|
| 46 |
-
mainCategory: str
|
| 47 |
-
subCategory: str | None = None
|
| 48 |
-
category: str | None = None # 大祭用カテゴリ
|
| 49 |
genre: str | None = None # ジャンル: ATHLETIC_CLUB, SPORTS, CULTURE, MUSIC, OTHER
|
| 50 |
|
| 51 |
# 場所情報
|
| 52 |
areaCode: str | None = None
|
| 53 |
-
areaNumber: str | None = None
|
| 54 |
pamphletNumber: int | None = None
|
| 55 |
|
| 56 |
-
#
|
| 57 |
-
prSummary: str | None = None
|
| 58 |
-
description: str | None = None
|
| 59 |
detailDescription: str | None = None
|
| 60 |
-
message: str | None = None
|
| 61 |
|
| 62 |
# 画像・SNS
|
| 63 |
images: list[Image] = []
|
|
|
|
| 64 |
sns: list[Sns] = []
|
| 65 |
|
| 66 |
# メンバー情報
|
| 67 |
memberCount: int | None = None
|
| 68 |
memberNote: str | None = None # メンバー数に関する備考
|
| 69 |
-
genderRatioMale: float | None = None
|
| 70 |
-
genderRatioFemale: float | None = None
|
| 71 |
-
|
| 72 |
-
# 設立情報
|
| 73 |
-
establishedYear: int | None = None
|
| 74 |
|
| 75 |
# 金銭情報
|
| 76 |
annualFee: int | None = None
|
|
@@ -79,7 +67,6 @@ class Circle(BaseModel):
|
|
| 79 |
# 活動情報
|
| 80 |
activityFrequency: str | None = None
|
| 81 |
activityFrequencyNote: str | None = None # 活動頻度に関する自由記述
|
| 82 |
-
activityTimeSlot: str | None = None
|
| 83 |
activityLocation: str | None = None # 活動場所
|
| 84 |
annualSchedule: list[AnnualScheduleItem] | None = None # 年間予定
|
| 85 |
|
|
@@ -87,9 +74,6 @@ class Circle(BaseModel):
|
|
| 87 |
contactInfo: str | None = None # 連絡先(メールアドレス等)
|
| 88 |
websiteUrl: str | None = None # 公式サイトURL
|
| 89 |
|
| 90 |
-
# 新歓情報
|
| 91 |
-
hasTrialEvent: bool = False
|
| 92 |
-
|
| 93 |
# アーカイブ
|
| 94 |
isArchived: bool = False
|
| 95 |
|
|
@@ -99,17 +83,12 @@ class CircleSummary(BaseModel):
|
|
| 99 |
circleId: str
|
| 100 |
circleName: str
|
| 101 |
circleNameKana: str
|
| 102 |
-
circleType: Literal["公認", "準公認"]
|
| 103 |
projectId: str | None = None
|
| 104 |
projectName: str | None = None
|
| 105 |
-
mainCategory: str
|
| 106 |
-
subCategory: str | None = None
|
| 107 |
-
category: str | None = None
|
| 108 |
genre: str | None = None # ジャンル
|
| 109 |
areaCode: str | None = None
|
| 110 |
pamphletNumber: int | None = None
|
| 111 |
-
|
| 112 |
-
description: str | None = None
|
| 113 |
mainImage: Image | None = None
|
| 114 |
memberCount: int | None = None
|
| 115 |
memberNote: str | None = None # メンバー数に関する備考
|
|
@@ -126,18 +105,12 @@ class CircleDetail(BaseModel):
|
|
| 126 |
circleId: str
|
| 127 |
circleName: str
|
| 128 |
circleNameKana: str
|
| 129 |
-
circleType: Literal["公認", "準公認"]
|
| 130 |
projectId: str | None = None
|
| 131 |
projectName: str | None = None
|
| 132 |
-
mainCategory: str
|
| 133 |
-
subCategory: str | None = None
|
| 134 |
-
category: str | None = None
|
| 135 |
genre: str | None = None # ジャンル
|
| 136 |
-
prSummary: str | None = None
|
| 137 |
-
description: str | None = None
|
| 138 |
detailDescription: str | None = None
|
| 139 |
-
message: str | None = None
|
| 140 |
images: list[Image] = []
|
|
|
|
| 141 |
sns: list[Sns] = []
|
| 142 |
memberCount: int | None = None
|
| 143 |
memberNote: str | None = None # メンバー数に関する備考
|
|
|
|
| 1 |
from enum import Enum
|
|
|
|
| 2 |
from pydantic import BaseModel
|
| 3 |
|
| 4 |
|
|
|
|
| 22 |
"""SNS情報"""
|
| 23 |
type: str
|
| 24 |
url: str
|
| 25 |
+
handle: str | None = None
|
| 26 |
|
| 27 |
|
| 28 |
class AnnualScheduleItem(BaseModel):
|
| 29 |
"""年間予定の項目"""
|
| 30 |
+
period: str # 時期(自由記述: 「4月」「春」「4月・5月」等)
|
| 31 |
+
event: str # 行事名
|
| 32 |
|
| 33 |
|
| 34 |
class Circle(BaseModel):
|
|
|
|
| 36 |
circleId: str
|
| 37 |
circleName: str
|
| 38 |
circleNameKana: str
|
|
|
|
| 39 |
|
| 40 |
# 企画関連(大祭企画との紐付け用、オプション)
|
| 41 |
projectId: str | None = None
|
| 42 |
projectName: str | None = None
|
| 43 |
|
| 44 |
+
# ジャンル
|
|
|
|
|
|
|
|
|
|
| 45 |
genre: str | None = None # ジャンル: ATHLETIC_CLUB, SPORTS, CULTURE, MUSIC, OTHER
|
| 46 |
|
| 47 |
# 場所情報
|
| 48 |
areaCode: str | None = None
|
|
|
|
| 49 |
pamphletNumber: int | None = None
|
| 50 |
|
| 51 |
+
# 詳細説明
|
|
|
|
|
|
|
| 52 |
detailDescription: str | None = None
|
|
|
|
| 53 |
|
| 54 |
# 画像・SNS
|
| 55 |
images: list[Image] = []
|
| 56 |
+
mainImage: Image | None = None
|
| 57 |
sns: list[Sns] = []
|
| 58 |
|
| 59 |
# メンバー情報
|
| 60 |
memberCount: int | None = None
|
| 61 |
memberNote: str | None = None # メンバー数に関する備考
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
# 金銭情報
|
| 64 |
annualFee: int | None = None
|
|
|
|
| 67 |
# 活動情報
|
| 68 |
activityFrequency: str | None = None
|
| 69 |
activityFrequencyNote: str | None = None # 活動頻度に関する自由記述
|
|
|
|
| 70 |
activityLocation: str | None = None # 活動場所
|
| 71 |
annualSchedule: list[AnnualScheduleItem] | None = None # 年間予定
|
| 72 |
|
|
|
|
| 74 |
contactInfo: str | None = None # 連絡先(メールアドレス等)
|
| 75 |
websiteUrl: str | None = None # 公式サイトURL
|
| 76 |
|
|
|
|
|
|
|
|
|
|
| 77 |
# アーカイブ
|
| 78 |
isArchived: bool = False
|
| 79 |
|
|
|
|
| 83 |
circleId: str
|
| 84 |
circleName: str
|
| 85 |
circleNameKana: str
|
|
|
|
| 86 |
projectId: str | None = None
|
| 87 |
projectName: str | None = None
|
|
|
|
|
|
|
|
|
|
| 88 |
genre: str | None = None # ジャンル
|
| 89 |
areaCode: str | None = None
|
| 90 |
pamphletNumber: int | None = None
|
| 91 |
+
detailDescription: str | None = None
|
|
|
|
| 92 |
mainImage: Image | None = None
|
| 93 |
memberCount: int | None = None
|
| 94 |
memberNote: str | None = None # メンバー数に関する備考
|
|
|
|
| 105 |
circleId: str
|
| 106 |
circleName: str
|
| 107 |
circleNameKana: str
|
|
|
|
| 108 |
projectId: str | None = None
|
| 109 |
projectName: str | None = None
|
|
|
|
|
|
|
|
|
|
| 110 |
genre: str | None = None # ジャンル
|
|
|
|
|
|
|
| 111 |
detailDescription: str | None = None
|
|
|
|
| 112 |
images: list[Image] = []
|
| 113 |
+
mainImage: Image | None = None
|
| 114 |
sns: list[Sns] = []
|
| 115 |
memberCount: int | None = None
|
| 116 |
memberNote: str | None = None # メンバー数に関する備考
|
scripts/2_create_circles_data.py
CHANGED
|
@@ -50,23 +50,30 @@ def parse_json(value: str) -> list | dict | None:
|
|
| 50 |
return []
|
| 51 |
|
| 52 |
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
"
|
| 58 |
-
"
|
| 59 |
-
"
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
def convert_activity_frequency(value: str | None) -> str | None:
|
| 64 |
-
"""旧activityFrequency値を新値に変換"""
|
| 65 |
-
if not value or value.strip() == "":
|
| 66 |
return None
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
|
| 72 |
def main():
|
|
@@ -94,37 +101,46 @@ def main():
|
|
| 94 |
images_data = parse_json(row.get("images", ""))
|
| 95 |
images = images_data if images_data else []
|
| 96 |
|
| 97 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
sns_data = parse_json(row.get("sns", ""))
|
| 99 |
-
sns =
|
| 100 |
-
|
| 101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
annual_schedule_data = parse_json(row.get("annualSchedule", ""))
|
| 103 |
-
annual_schedule = annual_schedule_data
|
| 104 |
-
|
| 105 |
-
# isOfficialからcircleTypeへの変換(公認/準公認のみ)
|
| 106 |
-
is_official = parse_bool(row.get("isOfficial", "true"))
|
| 107 |
-
circle_type = "公認" if is_official else "準公認"
|
| 108 |
|
| 109 |
circle = {
|
| 110 |
"circleId": row.get("circleId", ""),
|
| 111 |
"circleName": row.get("circleName", ""),
|
| 112 |
"circleNameKana": row.get("circleNameKana", ""),
|
| 113 |
-
"circleType": circle_type,
|
| 114 |
"projectId": row.get("projectId") or None,
|
| 115 |
"projectName": row.get("projectName") or None,
|
| 116 |
-
"mainCategory": row.get("mainCategory", ""),
|
| 117 |
-
"subCategory": row.get("subCategory") or None,
|
| 118 |
-
"category": row.get("category") or None,
|
| 119 |
"genre": row.get("genre") or None,
|
| 120 |
"areaCode": row.get("areaCode") or None,
|
| 121 |
"pamphletNumber": parse_int(row.get("pamphletNumber", "")),
|
| 122 |
-
"prSummary": row.get("prSummary") or None,
|
| 123 |
-
"description": row.get("description") or None,
|
| 124 |
"detailDescription": row.get("detailDescription") or None,
|
| 125 |
"memberCount": parse_int(row.get("memberCount", "")),
|
| 126 |
"memberNote": row.get("memberNote") or None,
|
| 127 |
-
"activityFrequency":
|
| 128 |
"activityFrequencyNote": row.get("activityFrequencyNote") or None,
|
| 129 |
"activityLocation": row.get("activityLocation") or None,
|
| 130 |
"annualFee": parse_int(row.get("annualFee", "")),
|
|
@@ -134,6 +150,7 @@ def main():
|
|
| 134 |
"websiteUrl": row.get("websiteUrl") or None,
|
| 135 |
"isArchived": parse_bool(row.get("isArchived", "false")),
|
| 136 |
"images": images,
|
|
|
|
| 137 |
"sns": sns,
|
| 138 |
}
|
| 139 |
circles.append(circle)
|
|
|
|
| 50 |
return []
|
| 51 |
|
| 52 |
|
| 53 |
+
def convert_annual_schedule(old_schedule: list | None) -> list | None:
|
| 54 |
+
"""
|
| 55 |
+
旧形式の年間予定を新形式に変換する。
|
| 56 |
+
|
| 57 |
+
旧形式: [{"month": 4, "events": ["新歓", "春季リーグ開幕"]}, ...]
|
| 58 |
+
新形式: [{"period": "4月", "event": "新歓"}, {"period": "4月", "event": "春季リーグ開幕"}, ...]
|
| 59 |
+
"""
|
| 60 |
+
if not old_schedule:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
return None
|
| 62 |
+
|
| 63 |
+
new_schedule = []
|
| 64 |
+
for item in old_schedule:
|
| 65 |
+
# 旧形式(month + events)の場合
|
| 66 |
+
if "month" in item and "events" in item:
|
| 67 |
+
month = item["month"]
|
| 68 |
+
events = item["events"]
|
| 69 |
+
period = f"{month}月"
|
| 70 |
+
for event in events:
|
| 71 |
+
new_schedule.append({"period": period, "event": event})
|
| 72 |
+
# 新形式(period + event)の場合はそのまま
|
| 73 |
+
elif "period" in item and "event" in item:
|
| 74 |
+
new_schedule.append(item)
|
| 75 |
+
|
| 76 |
+
return new_schedule if new_schedule else None
|
| 77 |
|
| 78 |
|
| 79 |
def main():
|
|
|
|
| 101 |
images_data = parse_json(row.get("images", ""))
|
| 102 |
images = images_data if images_data else []
|
| 103 |
|
| 104 |
+
# mainImage の決定: images配列の最初の画像(order=0)を使用
|
| 105 |
+
main_image = None
|
| 106 |
+
if images:
|
| 107 |
+
# order=0 の画像を探す
|
| 108 |
+
for img in images:
|
| 109 |
+
if img.get("order", 0) == 0:
|
| 110 |
+
main_image = img
|
| 111 |
+
break
|
| 112 |
+
# order=0 がなければ最初の画像を使用
|
| 113 |
+
if main_image is None:
|
| 114 |
+
main_image = images[0]
|
| 115 |
+
|
| 116 |
+
# SNSデータのパース(handleフィールドを含む)
|
| 117 |
sns_data = parse_json(row.get("sns", ""))
|
| 118 |
+
sns = []
|
| 119 |
+
if sns_data:
|
| 120 |
+
for sns_item in sns_data:
|
| 121 |
+
sns.append({
|
| 122 |
+
"type": sns_item.get("type", ""),
|
| 123 |
+
"url": sns_item.get("url", ""),
|
| 124 |
+
"handle": sns_item.get("handle")
|
| 125 |
+
})
|
| 126 |
+
|
| 127 |
+
# 年間予定のパース(新形式に変換)
|
| 128 |
annual_schedule_data = parse_json(row.get("annualSchedule", ""))
|
| 129 |
+
annual_schedule = convert_annual_schedule(annual_schedule_data)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
|
| 131 |
circle = {
|
| 132 |
"circleId": row.get("circleId", ""),
|
| 133 |
"circleName": row.get("circleName", ""),
|
| 134 |
"circleNameKana": row.get("circleNameKana", ""),
|
|
|
|
| 135 |
"projectId": row.get("projectId") or None,
|
| 136 |
"projectName": row.get("projectName") or None,
|
|
|
|
|
|
|
|
|
|
| 137 |
"genre": row.get("genre") or None,
|
| 138 |
"areaCode": row.get("areaCode") or None,
|
| 139 |
"pamphletNumber": parse_int(row.get("pamphletNumber", "")),
|
|
|
|
|
|
|
| 140 |
"detailDescription": row.get("detailDescription") or None,
|
| 141 |
"memberCount": parse_int(row.get("memberCount", "")),
|
| 142 |
"memberNote": row.get("memberNote") or None,
|
| 143 |
+
"activityFrequency": row.get("activityFrequency") or None,
|
| 144 |
"activityFrequencyNote": row.get("activityFrequencyNote") or None,
|
| 145 |
"activityLocation": row.get("activityLocation") or None,
|
| 146 |
"annualFee": parse_int(row.get("annualFee", "")),
|
|
|
|
| 150 |
"websiteUrl": row.get("websiteUrl") or None,
|
| 151 |
"isArchived": parse_bool(row.get("isArchived", "false")),
|
| 152 |
"images": images,
|
| 153 |
+
"mainImage": main_image,
|
| 154 |
"sns": sns,
|
| 155 |
}
|
| 156 |
circles.append(circle)
|