#アプリ概要
テニスのブログサイト
趣味で行っているテニスについて、日報形式で活動内容を発信するサイトです。
掲示板機能も備えており、ユーザ同士でテニスに関する情報交換、疑問の解決をします。
下記ページで公開中です!
https://tennis-beginners-blog.com/
※現在公開を中止しております。
#このアプリを作った背景
テニスの魅力を伝え、仲間を増やしたいから。
具体的には下記の通りです。
1. 運動が苦手、もしくはテニス未経験な方の力になりたい
2. 趣味としてのテニスを知っていただきたい
##1. 運動が苦手、もしくはテニス未経験な方の力になりたい
私は元々文化系で運動が得意ではありませんでした。かつ未経験からテニスを始めたので、
最初はラリーはおろか打ち返すことすら出来ませんでした。
なので「どうすれば人並みにやれるようになるのだろうか?」と悩み苦しんだ時期もありました。
しかし基礎を1つひとつ地道に習得し、球をうまく打ち返せるようにまで成長しました。
元々運動に自信がなかったり、テニスの経験がない初心者であっても、フットワークやスイングの姿勢など基本的なことを身につければ、間違いなく上達します。
そんな私の体験に基づき、有益な情報をブログ形式でお伝えしようと考えました。
##2. 趣味としてのテニスを知っていただきたい
テニスは老後になっても楽しめるので、これからの人生百年時代にはもってこいだと思います。
全身をフル活用するスポーツなので、健康増進に役立つこと間違いなしです。
今を楽しむだけでなく、生き生きとした老後を作る趣味として、テニスを知って頂けるように情報を発信していきます。
#機能
・ユーザ登録、およびログイン
・ブログ
・掲示板、およびコメント
・用語集
##ユーザ登録、およびログイン
名前、メールアドレス、パスワードで登録します。任意で自己紹介文と画像も掲載できます。
ログインするときはメールアドレス、パスワードを入力します。
なお、ユーザには管理者フラグを設けており、フラグが立っている場合は「管理ユーザ」としています。
この管理ユーザのみ他のユーザを削除できます。
##ブログ
日付単位でテニスに関する記事を登録します。記事の構成は本文と画像(任意)です。
編集、削除は管理ユーザのみ可能としています。
##掲示板、およびコメント
テニスに関する疑問の解決、情報共有をする場としています。
掲示板に質問や役立つ情報を投稿し、その投稿に対し不特定多数のユーザがコメントをします。
掲示板、コメントともに文章は140字以内です。
##用語集
テニスに関する用語の解説記事を登録します。記事の構成は本文と画像(任意)です。
編集、削除は管理ユーザのみ可能としています。
##追加実装予定
GithubのIssuesに、実装内容と目的をまとめています。
https://github.com/tattu501/tennis_app/issues/25
##ポイント
・画像投稿機能
・パンくずリスト
##使用技術等
- 言語:Ruby
- フレームワーク:Ruby on Rails
- テスト:RSpec
- フロント:Bootstrap
- ソースコード管理:GitHub
- インフラ:Amazon EC2
- Webサーバ:Nginx
- ロードバランサ:Amazon ALB
- ストレージ:Amazon S3
- ルーティング:Amazon Route53
- ドメイン:お名前.com
- SSL証明書:Amazon Certificate Management
##環境
- Ruby 2.7.0
- Ruby on Rails 6.0.3
- PostgreSQL 11
- Nginx 1.18.0
##使用した主なGem
- webpacker CSS、JavaScript、画像などの部品を1ファイルにまとめる
- bootstrap-sass CSS用
- gretel パンくずリスト
- rails-i18n 入力チェックメッセージの日本語化
- kaminari ページネーション
- RSpec 単体テスト
- Unicorn プロセス上で動くサーバ
- Capistrano 自動デプロイ
##開発にあたり意識したこと
###業務を想定した開発
・目的ごとにfeatureブランチを作成してコーディング
・プルリクエストを作成してmasterブランチにマージ
・小さな単位でコミットすること
(とはいっても最初はコマンドラインしか使っておらず、一括でコミットしていました。
オンラインサロン内での共同開発プロジェクトでGithub Desktopを知り、
コミットを細切れに打つ習慣が付きました。草を生やすことの気持ちよさも合わせて知りました。)
###短時間で集中して進める
現職で普通に出社しているため、平日は多くても数時間、休日も家事など他にやることが多く、
作業時間を確保することが困難でした。そこで作業中は他のことには目もくれず全力投球しました。
その結果、時間の割には効率よく開発を進めることが出来ました。
##苦労した点
###エラーが発生したときの対処
開発中エラーに出くわすことがよくあり、毎度解決に数十分は掛かりました。
コマンドラインやエラー画面のメッセージが英語でかつ見慣れない単語もあり、解読するのに苦労しました。
ですが実は原因が誤字・脱字、SELECTにおける取得項目の指定間違いなど、見落としによるものが多く、コーディング時に注意すれば簡単に防げるということも学習しました。
###マイグレーションが上手くいかない
不要になったテーブルのカラムを削除しようとすると、該当のカラムがないというエラーが起きました。あるはずなのに、ない!?という不可解な状態にはまって苦労しました。
###画像の大きさに悩んだ
記事やプロフィールページに画像を設置出来るようにしましたが、
デザインに疎かったこともあり、どの程度のサイズにすれば見栄えが良いのか悩みました。
最終的には画像が文章に対して大きくなりすぎない程度にしました。
##感想
・本番環境にデプロイして、無事に動くことを確認できたときは感動しました!
・開発環境でテストデータを打ち込むのが楽しかったです。本番ではないので、笑える文言を入力して面白がっていました。
・自分でもアプリを開発できるんだ!という自信がつきました。
##最後に
アプリ開発は自分の好きなことや趣味をサービス化出来るので、苦労は多いけど楽しいです。
本記事が皆さんのプログラミング学習や開発の参考になれば幸いです。