個人開発で大学の学生向け情報共有サイトを作った話

公開日: 2021-08-09

更新日: 2021-09-01

  • 日記
  • 個人開発
  • React
  • Firebase

2020年12月28日にpiguという僕が所属している琉球大学の学生向け情報共有サイトをリリースしました。大学に関する様々な情報を学生同士で共有し、効率的な情報収集を実現するためのサイトです。

作ったきっかけ

履修登録の時期になると僕のTwitterのタイムラインが「授業の登録ってどうやるの?」「おすすめの授業教えてください!」といったツイートで溢れていたので、これをWebサイトと言う形で一箇所にまとめれば便利そうだなと思ったのがきっかけです。

開発期間

2020年10月頃から開発を始め、約2ヶ月でリリースしました。その後も2021年5月頃までは頻繁に機能追加を行っていました。リリース後に追加した主な機能には画像投稿機能、通知機能、検索機能などがあります。サイトのUIもかなり変化しました。


よかったこと・嬉しかったこと

意外と反応があった

最初はユーザー0人も覚悟していましたが、Twitterでリリースの報告をしたところ、いいね数がそこそこ伸びました。2021年8月現在では200人近くの登録ユーザーがおり、投稿数は150を越えました。piguをリリースする前まではWebサービスの開発など、実績と呼べるものが何も無い状態だったため、多少は自信がつきました。

技術力の向上に繋がった

このサイトはReactとFirebaseを使って構築しました。Vanilla JSからTypeScriptへの移行、Cloud Firestoreのデータ設計、canvasやCloud Functionsを使った動的OGPの生成、Cloud FirestoreとAlgoliaを利用した全文検索機能の実装など、開発を通して様々な知見が得られました。

「プログラミングしてる人」として認知されるようになった

このサイトを作ったことがきっかけで、Twitterでは「プログラミングしてる人」として認知されるようになりました。大学では初対面の人がpiguの存在を知っていた or 使ってくれていたということも何度かありました。一部で色々と勘違いされて歯痒い思いもしましたが、工学部の知能情報コース(情報工学専攻)のLT会に登壇させていただいたり、他の学生からWeb開発の依頼をいただいたりと、結果的には良かったと思っています。

後悔したこと・苦労したこと

技術選定

リリース当時はここまでサービスの運用が続くことを想定していなかったため、今までに使用した経験のあるVanila JSとReactでUIを構築し、Sassでスタイリングを行いました。しかし今ではキャッチアップのための学習でリリース時期が数ヶ月伸びてでもTypeScript, CSS Modules, Tailwind CSS, Next.jsなどの技術を導入するべきだったと後悔しています。Vanilla JSからTypeScriptへの移行はなんとかできましたが、Next.jsやTailwind CSSへの移行は時間的に厳しそうです。今後またWebサービスを作る際は特に気をつけたいところです。

質問への対応

サービスに関する意見や要望を集めたかったので、サイトとは別に質問箱 (Peing) を設置しました。しかし、質問箱に届いたものは本来ならpiguに投稿して欲しかった大学関連の質問がほとんどでした。もちろん、このような質問に回答するとpiguへの投稿はさらに減ってしまうのですが、当時は「質問を無視するとサービスを使ってもらえなくなるかもしれない」とか余計なことを色々と考えてしまい、すぐに対策を講じることができませんでした。最終的にはサービスに関する質問以外には答えないことにしました。

考えるべきことの選択

一時期はTwitterで大学についての質問をする新入生を見るたびに「この人はどうしたらpiguを使ってくれるんだろう…」と考えては結局何も答えが出せず、ひたすら落ち込んでいました。当然そんなことは本人に直接理由を聞くか、自分なりに仮説を立てて色々試してみない限り何もわからないままですが、ただ考え続けたところで答えが出ない問題であるということに気付き、その行為をやめるまでに時間がかかりました。

今後の予定

サービスの運用をいつまで続けるかはまだ未定ですが、当分の間は続けます。そこで問題になるのは公式Twitterアカウントの運用です。公式アカウントでの投稿の共有がないと閲覧数がなかなか伸びないため、piguに投稿するメリットが弱くなってしまいます。そのため、Twitterでの投稿の共有は不可欠です。しかし、現在は全て手動でツイートしいて、投稿のURLを共有するまでにボタンを何回も押さないといけないため、正直かなり面倒です。他にも様々な問題はありますが、まずはこの問題を解決するためのシステムを構築する予定です。

最後に

運用のことで悩んでつらい時期もありましたが、それ以上に良いことがたくさんありました。サイトの発展に貢献し、応援してくれた方々にはとても感謝しています。これを糧にして今後もサービスの開発などに励みたいと思います。この記事が誰かのお役に立てれば幸いです。

yona

yona

琉球大学の理学部に所属している大学3年生です。 趣味と仕事でWebアプリ開発やシステム開発をしています。