feature image

2025年11月16日 | ブログ記事

stamPedia 【1-Monthon 参加記 11班】

こんにちは! 25年度1-Monthonの11班です。(メンバー紹介は #メンバー紹介 の項を見てください。)

私たちの班では、traP内で使用されているSNS「traQ」で使えるスタンプを検索するサービスを開発しました!

作ったもの

このようなサービスを作りました!

検索機能も実装してあります!

UIも工夫しています。検索結果に表示されたアイコンをタップすると

stampedia_05

stampedia_06

ちなみに、traPicture は1-Monthonで他の25Bのみの班が開発したサービスです。

1-Monthonとは

夏休み中にtraP内で行われるハッカソンです。準備期間一か月・開発期間一か月をかけて、Webサービス・ゲーム・映像作品など、さまざまな作品が製作されます。詳細は次の運営の方々によるブログを参照してください。

2025年 1-Monthonを開催しました!!!
traPでは今年も夏休み1ヶ月を返上し圧倒的成長を遂げるイベント、1-Monthonを開催しました。 1-Monthonとは? 1-Monthonとは最初の一か月間で準備、残りの一か月で開発をするという長期間の制作イベントです。1-MonthとHackathonを組み合わせた造語というわけですね。今年で二回目の開催となります。 今年は7/12にチーム発表、8/11に製作開始、8/24日に中間発表、9/7に最終発表というスケジュールで行い、合計24チームが最後まで走り切り、最終発表を行いました。前年が11チームなので倍以上!昨年以上に多種多様な作品が集まった素晴らしいイベントとなりました!この記事では受賞した班の作品を紹介します! なお、今回の1-Monthonは”株式会社MIXI”様の協賛を受けております。この場を借りてお礼申し上げます。 https://mixi.co.jp/ 最優秀賞 14班「双星神話」 映像制作チーム「𝑩𝑰𝑮 𝑾𝑨𝑽𝑬」が贈る、儚くも美しい星々の物語。 満天の星の下で交錯するふたりの少女の運命と願い。その一部始終を、鮮烈な

わたしたち25B(一年生)は、運営の方々にチームを組んでいただきました。7/12にチームが発表され、そこから一か月間の準備期間を経て、8/11~9/7の約一か月間で開発しました。開発開始から2週間が経過した8/24には中間発表も行われました。

サービスの概要

11班で開発したサービスについて説明します。traQには、現在(2025/09/28)7464個のスタンプ(絵文字)が登録されています。Unicode絵文字も含めると、合計で9370個になります。この大量にあるスタンプについては、次の @Pugma 先輩の記事が参考になります。(現役traP部員によるtraQのスタンプ紹介!

追記
2025/10/22時点で、9582個に増えていました
一か月で200個以上増えたことになります。

こんなに大量にあるスタンプですが、知らないスタンプを調べる方法は、おそらく次の二通りしかないのです。

  1. スタンプの名前で検索する
  2. 実際にtraQで使われているのを見つける

多くの人が使うスタンプであれば、いつの間にかスタンプの名前を覚えているはずです(traQでの会話に慣れすぎた結果、日常会話でスタンプ名を使ってしまうひともかなりいるようです...)。また、例えば :arigato: のように、日本語がそのままスタンプ名になっているものは、簡単に見つけられます。

しかし、traQには次のようなスタンプもあります。

運よく他の人が使っている場面に遭遇すればよいですが、いかんせんスタンプが多すぎます。日本語で検索したり、スタンプにタグをつけ、同じタグが付いたスタンプで検索したりしたい!!!

無いなら作ろう!ということで開発する内容が決まりました。

そういえば1-Monthonってテーマがあったような...

メンバー紹介

メンバーは全員25Bです。役割分担は次のようになりました

※「LLM」という分担については後述します

開発の様子

開発の様子を振り返ります。2か月も前のことなんて覚えてないよ!!

準備期間

メンバーが発表されたあと、みんなで自己紹介をしました。メンバーそれぞれが何の分野に挑戦したいのかを聞きつつ、開発期間で何をつくるのか相談しました。

初回のアイディア出しは7/13に行ったようです。

Figma

みんなでテーマからアイディアを膨らませようとしたもののうまくいかず...
テーマから考えるのは諦めて、実際に欲しいものを作ることにしました。

作るものが決まったので、実装する内容や仕様を考えていきます。次のメモ書きは、8/6頃のものです。8/11開始なので時間に余裕がありません。

codimd

具体的に開発するスタンプ検索サービスですが、一つ問題がありました。スタンプの画像を、どうやって日本語で検索するのかという点です。今回は、スタンプに対してユーザーが説明文を投稿できるようにし、投稿された説明文を検索できるようにすることを考えました。また、スタンプの画像とスタンプが使われた投稿をデータ化し、LLMに渡して説明文を生成させておくことで、ユーザーに説明文を投稿してもらわなくとも、スタンプを日本語で検索できるようにしようと考えました。traP内のSysAd班 genAI チームに相談し、LLMを使用するAPIキーを作成していただきました。

traQからデータを取得して整理し、そのデータをもとにLLMを呼び出し、LLMが作った説明文をデータベースに保存する、という過程を自動化する必要があります。先ほどの役割分担にあった「LLM」の担当の人にこの機能を実装してもらいました。

開発開始~中間発表

さて、開発期間が始まりました。しかし、開発が始められません。その理由として

ことがあげられます。準備期間の最後の一週間はずっと設計を考えていたはずなのですが、本格的に開発がスタートしたのは開発開始から一週間が経過してからでした。もっと早くから仕様を詰めておいたほうがよかったと思います。

データベースの形式が確定したのが8/18だったはずです。

codimd2

@rurunが、検索にヒットしたスタンプをどんな順番で並べるのかを考えてくれました。

----------2025-10-26-231613

実装の流れとして、issueを起点として開発を行いました。その際に立てた方針として、「開発のためのルールを最小限にする」というものがありました。プログラミング経験は多少あっても、共同開発はみんな初心者でした。余計なルールを作りすぎると、そのルールの理解に時間がかかってしまうので、できるだけ簡略化しました。

  1. やることを細かく分けて、それぞれをissueにする
  2. issue番号を含んだブランチを切る
  3. ブランチで頑張って開発する
  4. 完成したら、自分のPCの開発環境で正しく動作することを確認する
  5. Pull Requestを立てる
  6. 開発用の環境にデプロイして、うまく動くか確認する
  7. 別の誰かが一応コードを眺める
  8. よさそうだったらマージする

ここで、isseuの数がどのように変化したのかについての統計データを見てみます。今回の開発では、GitHub Projects にissueが自動で登録されるようにしていました。緑色はまだ開いているissueで、完了したissueは紫色になっています。

server

client

開発開始は8/11なのですが、サーバーもクライアントも、仕様策定に追われまだスタートできていません。 サーバーでは、 @mamo がサーバーの構成を固めてくれた8/15に、一度にたくさんのissueが登録されています。クライアントはもっと遅く、8/20あたりから実際の開発がスタートしました。

今回のハッカソンのデプロイ先は、部内Paasである NeoShowcase を使用しています。

中間発表後~最終発表

認証機能や検索機能などを実装しました。正直なところ、実装した内容が多すぎて追いきれません。毎日みんなで開発しました。常に開発に追われており、当時のことを全然覚えていません。

分野別振り返り

今回のハッカソンで学んだことについて、メンバーに箇条書きにしてもらいました。

進捗管理, 開発外の部分について

クライアントについて

サーバーについて

データベースについて

クライアントとサーバーの両方に関係する部分について

メンバーより

参加したメンバーに感想を書いてもらいました。

dislke_fruits

春ハッカソンでは先輩に頼りっぱなしでしたが、今回はメンバー全員が25B(1年生)。些細な問題は自力で解決しなければなりません。
Go言語で開発するのは初めてでした。最初に驚いたのは、大量のif err != nilのブロック。普段C++やPythonで競プロのコードを書いていてエラーハンドリングとは無縁だった私にとって、これは冗長にしか思えませんでした。しかし、開発終盤にかけてPythonを書いたときに、この悪い印象は一変します。Goの堅牢さに慣れてしまい、Pythonの例外処理があまりにも心許なく感じられたのです。今では、エラーに向き合うGoの設計思想を心強く感じます(もちろん、今後競プロでGoを使うことはないでしょう)。
恥ずかしながら、初めてGoでfor文を書いたのは締切2日前、Goにwhile文が存在しないことを知ったのは締切当日でした。

hachimitsu

サーバーを担当しました。春ハッカソンと違い、1-manthonはメンバーが1年生で構成されていて、自分たちだけで全部考えるというのがとても新鮮で貴重な体験でした。サーバーは @mamo さんが引っ張ってくれて色々助けられました dekadekaarigatou すこしづつ自立していきたいです…!
一か月を振り返って、夏休み中も対面で協力して作業を進められたのがよかったと思っています。ほかのメンバーの様子も聞きながら開発できました。
とても楽しくて最高のハッカソンでした。みんなありがとー thanks-nya

ikea

クライアントサイドを担当しました。traPに入るのが少し遅くなってしまったこともあって春ハッカソンなどに参加することができず、web開発を含めてプログラミング自体今回が初めての経験でした。右も左もわからない中で、色々調べたりAIに聞いたり:@yasako:君に聞いたりして、何とか形になるものを作ろうと四苦八苦していました。みんなに教えてもらいながら開発を進めることができて、色々な事を知れたし本当に良い経験になりました。1か月ありがとうございました!

rurun

サイトのUIを考えて @yasako @ikea に投げたり、検索の仕様を考えて @mamo @hachimitsu に投げたり、@dislike_fruits が取得してきてくれたデータをLLMに投げたりする仕事をしていました。チームのみんながとても頼もしかったです。自分自身ももっと成長していきたいなと思いました。
私自身、日常でChatGPTなどのLLMを使うことはありますが、OpenAIのAPIを通して大量のリクエストをする経験は初めてだったので面白かったです。的外れな回答をすることも多く、プロンプトを考えるのに苦労しました。
進捗部屋やTakiPlazaに集まってみんなでわいわいしながら開発したのが楽しかったです。ギリギリにはなりましたがなんとか動くものが作れてよかったです。

mamo

サーバーを担当しました。 @yasako がサーバーで何をつくってほしいかなど詳しく指示を出してくれたのでとても助かりました。自分が設計したものをなかなか詳しくチェックできる人がいなかったので、不安になりながらもなんとか形にできてよかったです。エラーが解決できないときよく助けてくれた @yasako には感謝しかないです。難しくて大変なところもありましたが、動いたときはとてもうれしく1-Monthonに参加してよかったと思います。対面で動くメンバーも多くて夏休みに充実した時間を送れました。メンバーの皆さん、メンターの方々、ありがとうございました!

yasako

開発開始前の設計や、クライアントの開発を担当しました。いちおうリーダーでしたが、何人かで一緒に開発するのは春ハッカソンに続いて2回目で、最終的に動くものが作れるのか心配でした。最低限の機能でいいから、とにかく動くものを作るのを目指しました。なんとか完成して本当に良かったです。ぼくはGoが読めないのですが、@mamo @rurun と一緒に考えたAPIの仕様をもとに、mamo がバックエンドを設計してくれました。気づいたらAPIができていたので、クライアント用のモックサーバーを作っていません。 :wa_haya:。@dislike_fruits @hachimitsu (@mamoも)は、@mamo が細分化してくれたバックエンドのIssueを、ひとつづつ実装してくれました。クライアントのデザインを(手書きで)考えてくれたのは @rurun なのですが、当初計画の1/4も実装出来ていません。理想が高すぎました。 LLMを使ってスタンプの説明文を書かせる処理を書いてくれました。リーダーなのに、Pythonのソースコードを一度も見ていません。クライアントの実装は僕と:@ikea:で進めました。最終発表(2025/9/7)の数日前に立ててくれたプルリクがまだ(2025/10/22時点)マージできてなくて本当にごめん!!僕はそこまでプログラミングが強いわけではないのですが、みんなができることを頑張ってくれたおかげで何とか動くものができました!このメンバーでよかった!本当にありがとう!

今後について

2025/10/17に、9/7の最終発表日以来となるミーティングを行いました。放置運用をするためには、すくなくともあと30個くらいのIssueを消化する必要があります。毎週金曜に進捗を報告することにしたので、完成を目指して開発を継続する予定です!

upload_0340f2551318df9cdb9de018b3b16438-1-
何気にPull Requestも13個たまっている... 何とかしなければ...

yasako icon
この記事を書いた人
yasako

Web を勉強中です。競プロ・3DCGにも挑戦したいです

mamo icon
この記事を書いた人
mamo

ikea icon
この記事を書いた人
ikea

rurun icon
この記事を書いた人
rurun

hachimitsu icon
この記事を書いた人
hachimitsu

dislike_fruits icon
この記事を書いた人
dislike_fruits

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2025年4月25日
1週間でゲームを作った #Charon
Komichi icon Komichi
2024年9月20日
2024年 1-Monthonを開催しました!!
Synori icon Synori
2025年9月30日
2025年 1-Monthonを開催しました!!!
YMAC icon YMAC
2025年9月15日
traPでの一年半を振り返る〜全班所属の体験記(?)〜
gurukun41 icon gurukun41
2024年9月17日
1か月でゲームを作った #BlueLINE
Komichi icon Komichi
2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記