背景
私は今、学生エンジニアとして、企業でインターンとして学ばせてもらっています。
そこで得た知識のアウトプットの場+自分の実績を積む+少し就活のためなどなどの理由で、一からWebアプリケーションの立ち上げを体験してみたかったと言う思いでチャレンジしてみました。
ついでに、共同開発もやってしまおうということで、友人数人とgitをつかったバージョン管理もとりいれてみました。
作成自体は、執筆時期から1年以上前ですが、せっかく作ったものは記録を残し奇跡的にどなたかの役に立つかもしれないと思い、記事にしています。
使用技術
上述の通りこのアプリケーション自体作成したのが執筆時期より1年以上前なので、バージョン等の情報がかなり曖昧です。ごめんなさい。また、管理がずさんすぎて現在運営されておりません。
Ruby 不明
Ruby on Rails 5.0.1
GitHub
Heroku
AWS S3
システム概要
作成したサイト名は、「Circle-Link」です。
大学生ということもあって、身近なサークルという部分から着想を得ました。
実際に、自分が新入生として大学に入った頃に、大学にはサークルという文化があるのは知っていましたが、どんなのものがあるかまでは隅々まで見きれなかったので、ここ見れば自大学のサークル情報が分かるようなものがあれば便利なのではないかと思いました。
機能概要
作成したサイトは、サークル側とユーザー側に分けて実装してあります。
-
サークル側
- 会員登録機能
- サークル情報登録機能
- コメント登録機能
-
ユーザー側
-サークル情報閲覧機能- サークル検索機能
実際に実装してみて
まず最初にハマったポイントは、サークル側の機能でサークル独自の画像をアップロードしてもうら際に、一定時間後に画像自体がサーバーから消える事件が発生しました。
調べていくうちに、これはHerokuの仕様で、一定時間アクセスがないとサーバーがスリープすし、一旦スリープ状態になるとpublic/配下の画像データが全て消えるという厄介なものが原因だと判明しました。
これに対して、Amazon Web Service(AWS)のS3というクラウドストレージに画像データ自体は登録して、そのリンクを引っ張ってきてサイトに表示する手法で回避しました。
他には、登録管理系です。全く関係ない人からサークル登録された際にどうするかで最適な手法が見つからず結局これは、自分たちでSNSを使いサークルの代表個人に連絡して登録してもらい、パスワードを配布する手法を使っていました。実際にサークルの人に登録してもらう時点では、既に開発で疲弊しきっていて、運用の細部まで頭が回っていなかったのもあって、ここもずさんな感じにまとまってしまいました。何かいい方法はないものか。。
後は、バージョン管理を統括するのが個人的に結構混乱しました。
私個人は、gitの使い方自体はインターンの方であらかた学んでいたので、大丈夫でしたが他のメンバーがgit初心者だったので私が統括し教えながらやっていくことになったのですが、どういうルールでbranchを切ったり、それをマージするタイミングやコンフリクト解決など難しく感じました。
まとめ
実際、困難だらけでしたが、実際に手を動かして作っていくのはやっぱり楽しいですね!
最近はインプットばかりになってしまっている機がするので、こういう記事作成も含めてアウトプットの場を増やしていこうと思います!