feature image

2026年4月30日 | ブログ記事

anke-to v3 をリリースしました!!🎉

はじめに

こんにちは、SysAd班の @cp20 です。SysAd班として記事を書くのは久しぶり (もしかしたら初めて?) ですね。今回は皆さんにお知らせしたいことがあってこの記事を書いています。タイトルにあるのでもう分かっているかと思いますが、、、

anke-to v3 をリリースしました🎉

ちなみに今まで動いていたバージョンは実は v1 です。開発されたのは相当前で、何年も前から実質的にメンテされていないような状況でした。え、v2 はないのかって? 開発途中でメンバーが立ち消えてしまったのでリリースされることなく消えました、、、

リリースに至るまでの道のり

リリースまでの経緯をもう少し詳しく見ていきましょう。

anke-to v3 発足

anke-to v3 の話が持ち上がったのは2023年の11月あたりで、12月あたりから仕様決めなどを進めていました。最初の時点では v2 を引き継いで開発を進める予定だったのですが、フロントエンドは完全に v2 のコードは置いておいて v3 の開発を進めて、バックエンドは v1 のコードをベースに v3 の開発を進めることにしました。

初期メンバーはサーバーが @kaitoyama で、クライアントが @cp20 @rei @24take でした。

anke-to v3 はコードを刷新して保守性を向上させるのはもちろんですが、新しい機能としてアンケートの下書き、自動リマインド、匿名回答、複数回答の制限、質問の複製、Markdown 対応、などを盛り込む予定でした。もちろんやや古くて使いづらいUIも刷新する予定でした。

この時点では3か月~半年ぐらいで実装できるかなーとたかをくくっていましたが、、、

裏ハッカソン

2023年の冬ハッカソンで皆が頑張っている中、ボク (たち) は anke-to v3 の開発に勤しんでいました。思ったより実装が大変だったんですが、開発は一定進みました。

この時点ではクライアントの方がかなり進捗が生まれていて、サーバーが完成するのを待っているといった箇所が多くなっていました。なので少し放置気味になっていました。

停滞期

しかしサーバー側が思うように進まず、新しく入ってくれたメンバーにも上手くタスクを振れず、開発が非常に停滞気味になっていました。この状態が続いたら anke-to v3 は v2 と同じ末路を辿っていた可能性があります。

真打登場

しかし2025年前期のプロジェクト所属で @Eraxyso がサーバー側のメンバーとして加入してくれました。そして着実にサーバー側のタスクを進めてくれて、なんとサーバーが一通り完成しました(!!)

そしたらクライアントと繋げてみるわけですよ。動かないわけですよ。困ったね。サーバー側で機能が足りてない部分、実装にバグがある部分もあれば、クライアントでも機能不足やバグが大量に見つかりました。ここからはこれを潰していく作業になります。

リリースするぞ進捗会

2026年1月ごろから対面の進捗会を立てて、その場でリリースするところまで開発するところを目標に作業を進めました。触れば触るほどバグが見つかるので、ひたすらバグ直し作業に追われていました。するとバグがだんだんなくなってきて、そろそろリリースしても良いのでは?という感じになってきました。

クライアントのデザイン面は @uni_kakurenbo にも手伝ってもらいながら実装を進めて、ついに2026年4月13日、遂に anke-to v3 をリリースすることができました!!

フィードバック対応

ちゃんと作り込んでリリースしたので好意的な意見をたくさん頂いて非常に嬉しいんですが、その一方でバグや機能要望が多数舞い込んできました。特にリリース直後は大量のフィードバックが届いて、それらに素早く対応していく作業でした。

クライアント側は負債をすべて捨てて作り直したおかげで素早くフィードバックを取り込む下地をつくることができました。一方でサーバー側はデータベース設計などの変えづらい部分がやや負債として残っており、今後どうやって解消していくかといったところです。

新機能紹介コーナー

anke-to v3 では v1 に比べてたくさんの新機能を実装しています! 6年前(!) に書かれた anke-to v1 の紹介記事と見比べてみると面白いかもしれません。

部内製アンケートサービス anke-to の紹介
こんにちは、@60です。こちらは、traP SysAd班で運用中の 部内アンケートサービス anke-to の紹介記事になります。開発に至るまでの経緯、サービスの概要、開発の流れについてお話ししていきます。traPの部内サービスやSysAd班の開発に興味のある方などに読んでもらえると嬉しいです! (SysAdは “System Administrator” の略語で、この班では部内向けサービスの開発・運用を行っています。詳しくは SysAd班の紹介ページ[/sysad/] をご覧ください!) もくじ 1. 開発までの経緯 2. サービスの概要 3. 作成されたアンケートの例 4. 開発について 5. anke-toのこれから 開発までの経緯背景traPでは、メインのコミュニケーションツールとして、部内製チャットサービスのtraQを使用しています。(traQについての詳細は、ブログ記事 部内製チャットサービス「traQ」UIのこれまで [/post/886/] および 部内製チャットサービス「traQ」UIのこれから [/post/

UI刷新

これが最も大きいポイントかもしれません。anke-to v1 は現代からするとちょっと古さを感じさせるような UI でしたが、それを現代風のモダンな UI に刷新しました。単に見た目を整えるだけではなく、数多くある機能や情報を丁寧に整理して、初めてでも直感的に、いつもの操作が素早くできるように設計しました。

せっかくなので画面をいくつかお見せします。

アンケート一覧画面
フィルタもできます
アンケート作成画面
質問の追加、入れ替えなども簡単にできます
アンケート詳細画面
アンケート結果画面
個別の回答も見れます
アンケート回答画面

自動リマインド

対象者になっているが、アンケートにまだ回答していないユーザーを自動でメンションして、回答を催促します。今まで人力で頑張ってリマインドしていたので、それ自体が大変だったり、リマインドを忘れてしまったりといったことが起きていました。これをシステムで解決するのがこの機能です。ただしシステムによる圧だと回答してくれないことも多いようで、今後どうやったらもっと回答してもらえるようになるかを検討しています。

また、これに合わせて対象者がいるアンケートには回答期限を必ず設定してもらうようにしました。対象者が存在するということはその人 (たち) には必ず回答して欲しいはずで、必ず回答して欲しいなら期限があるはず、という仮説です。

匿名回答

以前は回答の公開範囲を狭める、例えばアンケートの管理者のみ回答を閲覧できるといった設定はできましたが、回答を閲覧できる人は誰がどの回答をしたかは分かってしまう状況でした。しかし匿名でアンケートを立てたいというニーズはあり、それを v3 で実現することにしました。

ただしバックエンドが v1 の設計を引き継いでいる関係で完全に匿名化できていない部分が露呈しており、それを今後改善していく予定です。

アンケートの複製

毎年開催するイベントの参加アンケートやフィードバックアンケートなどは毎回同じような項目でアンケートを立てることが多いです。その際に前回のを参考にぽちぽちと手入力するのはめんどくさいので、既存のアンケートを複製して、一部編集して新しいアンケートとして公開できる機能を実装しました。

アンケート作成画面の改善

アンケート作成画面はかなり使いづらいことで話題(?)でした。管理者や対象者の選択UIが信じられないぐらい重い問題とか、多肢選択の設問で選択肢の入れ替えができないとか、その他いろいろと使いづらい点があったのですが、v3 では UI を全て刷新したのでアンケート作成画面もグッと使いやすくなりました。

感想

現開発メンバーからの感想です。

@cp20

一時期は v3 も v2 と同じ感じで流れてしまうのかと思っていたので、無事リリースまで漕ぎつけることができて良かったです。最後の方の進捗会は、バグを見つけたときにクライアントが悪いのかサーバーが悪いのかでバトルしていたので、それはそれで面白かったです。

@kaitoyama

anke-to v1は今から7年前の2019年にリリースされていました。そのため、schemaからのrouterの自動生成などもなく手作業で揃えられていました。バックエンドにとってv3の一番の挑戦はこの部分にあります。schema駆動となるべく、oapi-codegenでのrouterの自動生成とそれに対応した形へのmiddlewareや呼び出される部分の調整を行いました。

v3開発が始まってからとても長い戦いでした。しかしこうやって無事リリースできたのは本当に良かったと思います。しかし、実は内部にはまだまだ負債があったり、回答者の情報を踏まえたtraQとの連携など今後はバックエンド主導の新機能を実装できればと考えています。

@Eraxyso

今回のanke-to v3の開発は、自分にとってこれほど大きなプロジェクトに深く関わる初めての経験でした。バックエンドのリファクタリングや新機能の開発を担当し、システム全体への影響を意識しながら開発を進める難しさを実感しました。

実装を進める中で、新たな課題や改善できそうな点が次々と見えてきて、なかなか終わりが見えない場面もありましたが、最終的にリリースまで到達できたことを嬉しく思っています。特にバックエンドでは、既存の仕組みとの互換性を保ちながら調整やリファクタリングを進める必要があり、理想通りに設計しきれなかった部分や、やむを得ず妥協した部分もありました (実はリリース前から、次のバージョンやさらなるリファクタリングについても考えていました)

リリース後も改善点や新たに取り組みたいことが見えてきており、今後少しずつ改善していければと考えています。今回の経験を活かし、今後の開発においても、より良い設計と実装を目指していきたいと思います。

おわりに

既存サービスのメジャーバージョンアップ (リニューアル) という意味ではNeoShowcase以来でしょうか? 他のサービスも密かに開発を進めているみたいなので、これからの発表にご期待ください..!

【NeoShowcase】traPには内製の作品公開プラットフォームがあります
はじめに | 『デジタル創作』同好会traPとは 私たち『デジタル創作同好会traP』は、Webアプリやゲームの制作を中心に活動する、デジタル創作・プログラミングの総合サークルです。 traPについて東京工業大学デジタル創作同好会traPは、東京工業大学・大岡山キャンパスを拠点に活動する創作・プログラミングの総合サークルです。アプリ・ゲームの制作を中心に、音楽(DTM)、グラフィック(イラスト、3DCG、ドット絵、動画)などの創作活動に加え、Webインフラや競技プログラミング・サイバーセキュリティ(CTF)、機械学習(Kaggle)などに関する活動も行っています。 こうした創作活動のほかにも、大学サークル間の交流イベントの主催や、中高生向けプログラミング教室などといった社会貢献活動も行っています。 traPの班 * アルゴリズム(競プロ)班 * グラフィック班 * ゲーム班 * サウンド班 * CTF班 * SysAd班 * Kaggle班 traPには大きく分けてこの7つの班が設けられており、自分の興味に合わせて所属することができます。ここでは各班の活動を簡単に紹介します。よ
cp20 icon
この記事を書いた人
cp20

23B / icon: https://twitter.com/sora_douhu

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

グラフィック班、CTF班所属。3DCGで静物のシーンを作ってます。

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

この記事をシェア

このエントリーをはてなブックマークに追加
共有
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記