2023年春に開催されたハッカソンで「traQ gazer」を開発しました。
traQ gazer
traPでは部内SNSとして、内製の「traQ」が利用されています。このtraQは500人を超える部員に利用されており、日々多くの投稿がされます。
traQ gazerは、そんなtraQを円滑に利用するためのツールとして開発しました。
traQ gazerはサイト上で単語を登録すると、その単語を含む投稿がされた際にbotがDMで通知をしてくれるサービスです。
登録単語を含む投稿者がbot、または登録したユーザー自身だった場合には通知をしないという設定も行うことができます。
2023年7月2日現在、61人325単語が登録されています。
チームメンバー
バックエンド担当
フロントエンド担当
開発について
フロントエンド(Pugma)
- ページ設計について
- ページの構成要素は以下の流れで決めました
- gazerを構成するために必要な機能を書き出す
- 機能をジャンル分けし、またジャンル内の機能の個数がなるべく均等になるように分ける
- ページUI
- Figmaを用いてデザインを作成しました。具体的には以下の2点に着目して行いました
- それはどのような機能であるか
- それはどのような入力を受け付けるのか
- Figmaを用いてデザインを作成しました。具体的には以下の2点に着目して行いました
- ページの構成要素は以下の流れで決めました
- バックエンドとの連携について
- バックエンドを担当しているメンバーが作ったAPIを用いて、フロントエンド側にどのように情報を表示するかも考えました。
以上のような点で、oribeさんをはじめとするほかのメンバーの方々にレビューをしていただきながら実装までを行いました。うまく実装できなかったところはoribeさんに助けていただきながら、試行錯誤を行い、なんとか完成まで漕ぎ着けました。
バックエンド(Luftalian)
- API設計について
- 根幹となるAPIをまず決め、それ以外のAPIはどのような機能があれば使いやすく、また多くの人に使われるようになるか考えて選択しました。また、似たような実装のAPIやアルゴリズムが必要なAPIを作ることで、チームのメンバー全員が実装できるように心がけました。
- データベース設計について
- 外部APIをたたく際に必要なものと実装に必要なものを考えて設計しました。
- アーキテクチャ設計について
- 誰でも理解しやすい、実装しやすいものにしようと思い設計しました。しかし、初めはアーキテクチャの種類についてを多くは知らず、どのような場面でどういうものを選択すればいいのかわかっていませんでした。そこで、oribeさんからのアドバイスを受けながら、traPのサービスを参考に作成しました。
感想
oribe
チームリーダーとして参加し、開発時間のほとんどを環境整備とコードレビューに使っていました。
開発の中でチームメンバーがどんどん成長していくのが感じられてとても楽しかったです。
限られた時間内でしっかりとコア機能を実装しきることができた上に、ハッカソン終了後も多くの人に使い続けられるサービスとなったことを嬉しく思います。
Luftalian
バックエンドのAPI定義とテーブル設計とアーキテクチャ設計を担当しました。
昨年度は二回ハッカソンに参加しましたが、他のバックエンド担当の人がメインで作ってくれたものに少し機能を追加する程度のことしかできていませんでした。今回は今までとは違い、バックエンド担当としてより大きく関わることができました。今までの過去の経験が役に立ってよかったです。
また、自分自身だけでなく、他の2人にも仕事を分担することができ、全員が1つ以上の機能を実装することができたことはとても良かったです。Sotatsuくんは、APIの実装だけでなく、アルゴリズム的な側面の実装もしてくれてとても助かりました。Wertくんは実装経験がほとんどなく、ハッカソンも初参加だったにもかかわらず、機能を実装してくれて素晴らしかったです。
また、oribeさんには設計や実装のレビューなど多くの場面で助けていただきました。ありがとうございました。
Pugmaくんは一年生ながらフロントエンドの実装をバリバリやっていて凄かったです。
Sotatsu
去年の春のハッカソンに出て、2回目のハッカソン参戦でした。なろう講習会は過去に受けてたけど、実際に開発したことはなかったので不安でしたが、何とかなって(?)よかったです。かなりたくさんの人が利用してくれるサービスの開発に携われて嬉しいです。
Pugma
入学からそれほど時間が経たないうちでのhackathonということで「足引っ張っちゃわないかな」など、かなり不安に思っていましたが、心強い先輩方のおかげでなんとか開発期間内に完成品をリリースすることができました。
これまで部内で行われてきたいくつかの講習会に参加してきましたが、その内容を実践で使えたのはかなり貴重な経験となりました。
今回開発したものは、これからもtraPメンバーに使われるものです。自分が頑張って作ったものが目に見える形で残り、かつ色々な人に使ってもらえていてモチベーションがかなり湧きました。
Wert
本当にパソコン初心者だったので、開発中は先輩方に何度も質問して迷惑をかけてしまったと思います。
二日間作業して実際に実装された機能は一つだけでしたが、ほんの少しでもこの開発に参加できたことが貴重な経験になりました。