アプリの概要
自分から大会を作成したり、気楽に釣り大会へ参加ができるアプリを作ってみました。
時間と場所に縛られない自由な大会がコンセプトです。
制作した背景
1. 時間が限られた人でも気軽に参加できる大会で釣果を共有したい
2. 自分発信で大会を開催できるサイトが無い
1. 時間が限られた人でも気軽に参加できる大会で釣果を共有したい
友人との会話の中で、釣り大会に出たいけど「今の時期、大勢の人が集まる場所はちょっと..」「大会って敷居が高そう」 「タイミングが合わない」「育児や仕事の都合で日中に釣りができない」と話していました。
釣りする時間帯に制限のある方にもマッチしやすい大会が作れたら楽しそうだな!!と考えました。
2. 自分発信で大会を開催できるサイトが無い
自分の生活リズムでも参加できそうな大会を探してみた時に、開催地が遠い、時間が合わない、釣りたい魚とは違うなどの理由から探すのに苦労しました。
「参加型の大会サイトはあっても自分で開催までできれば便利なのでは?」と考え、WEB上で”開催〜ルールに基づいた順位発表”まで完結できるサイトを作ってみよう!と思い制作に至りました。
機能説明
機能 | 使用技術 | |
---|---|---|
1 | ログイン機能 | devise |
2 | ゲストログイン機能 | |
3 | ユーザー登録 | |
4 | 大会の投稿機能(CRUD) | |
5 | 管理者機能 | Active Admin |
6 | 画像アップロード機能 | CarrierWave |
7 | 画像のメタデータを取得 | EXIFR |
8 | コメント投稿・削除(Ajax) | |
9 | いいね機能(Ajax) | |
10 | ページネーション機能 | kaminari |
11 | 地図表示機能(google map API) | geocoder |
12 | ランキング機能(ルールによって表示の変化・同率順位で処理) | |
13 | 大会一覧のタブ切り替え | JQuery |
14 | 釣果の投稿機能(CRUD) | |
15 | マイページ機能 | |
16 | 大会エントリー機能(多対多のアソシエーション) | |
17 | 魚種検索機能 | |
18 | PV数の計測 | impressionist |
直感的な操作ができるように意識
大会作成においては必要情報が多くなりがちだったので、文字入力ではなく可能な限りボタンでの選択とすることで、サクサク大会作成ができる様に意識しました。
ランキング表示を変える
ランキングの順位表示はルールによって処理内容が変わります。
どのデータが必要でどのように集計するかを分け、ランキング順位の処理**をするようにしました。
画像のGPSチェック機能
「自分の画像に位置情報が有るのか無いのか分からない..」というテストユーザー(友人)の指摘から、 投稿画面とは別で、画像のGPSチェックができるように機能を追加しました。
GoogleMap内で円表示
知られたくない釣り場の”ピンポイント”が分からないようにGoogleMap内のピン(📍)表示をCSSで円を作成して表示
させるように変更しました。
ER図
課題・今後実装したい機能
・個人釣果データを集計&分析できるようにグラフ化
・釣果投稿にAPIを使用して天候を付け加える
・ルール違反発見時の報告機能と対策機能
・AWSへデプロイ
使用技術・環境
言語:Ruby 2.6.6
フレームワーク:Rails 6.0.3.2
フロント:HTML, Sass, javascript, jQuery
インフラ:Heroku
データベース:PostgreSQL 13.0
AWS S3を使用