6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🔰独孊でサッカヌの詊合通知をするwebアプリ『Kickoff Reminder』を䜜成したした ⚜【Laravel / Vue / AWS】

Last updated at Posted at 2024-03-25

はじめに

この蚘事では、実務未経隓から独孊で䜜成したwebアプリ「Kickoff Reminder」に぀いお玹介しおいたす。
たた、webアプリを䜜成するにあたっお、工倫した点、孊習プロセスなども曞かせおいただいおおりたす。良ければご䞀読ください。:bow:

䜜成者

  • 1999幎生たれ
  • 倧孊たでサッカヌ郚 :soccer:
  • フリヌタヌ䞭にweb゚ンゞニアに興味をも぀
  • 2023幎から独孊でwebアプリ開発を開始
  • 珟圚バック゚ンド゚ンゞニアを目指しお就職掻動䞭 :muscle_tone1:
  • X(Twtter) : https://twitter.com/houdin111

目次

  1. 䜜成したアプリ玹介
  2. このアプリを䜜った理由
  3. 䜿甚技術
  4. 基本蚭蚈
  5. 䜜成から完成たでをふりかえっお
  6. 独孊での孊習プロセス :runner_tone1:
  7. 参考にさせおいただいたサむトや蚘事の玹介 :books:
  8. おわりに :pencil:

1. 䜜成したアプリ玹介

抂芁

名称 : Kickoff Reminder

『Kickoff Reminder』は、サッカヌファンに向けた詊合通知サヌビスです。

ナヌザヌの奜きなチヌムをお気に入りするだけで、詊合通知をLINEやメヌルで受け取るこずができたす。

URL : https://kickoffreminder.com
GitHub : https://github.com/sprout90210/KickoffReminder

䞻な機胜

  • チヌムや倧䌚情報の詳现衚瀺
  • 自動デヌタ曎新
  • 詊合通知
  • チヌムのお気に入り登録・解陀
  • 認蚌機胜登録、ログむン、パスワヌドリセットなど
  • LINEログむンによる倖郚認蚌

画面むメヌゞ

※デザむンが倉曎されおいる堎合がありたす。

チヌム,コンペティション詳现画面

detail screen

お気に入りチヌム管理

favorites screen

通知蚭定,通知予定の詊合

reminders screen

認蚌画面

auth screen

レスポンシブ察応

responsive screen

通知メヌル

※このようなメヌルが届きたす。
email sample

2. このアプリを䜜った理由

なぜこのアプリを䜜成したのか

私は倧孊たでサッカヌをしおいた事もあり、サッカヌの詊合を芋るのが奜きでした。特に海倖サッカヌはレベルが高く、日本人遞手も倚く所属しおいるこずから、自分を含め日本でも倚くの芖聎者がいたす。

しかし海倖サッカヌを芖聎する際に以䞋のような問題がありたした。

  • 時差の関係䞊、深倜〜早朝に詊合が行われるため、忘れおしたうこずが倚い
  • 詊合があるか調べるために、毎回時間がかかる
  • 詊合のたびにリマむンダヌをセットするのが面倒

そこで、自分の奜きなチヌムの詊合があるたびに自動的に通知しおくれるサヌビスが欲しいず考え、このWebアプリを䜜成したした。

3. 䜿甚技術

※バヌゞョンは曎新されおいる堎合がありたす。

  • フロント゚ンド
    • Vue 3.3.4
    • Vuex 4.1.0
    • Vue Router 4.2.4
    • Tailwind CSS
  • バック゚ンド
    • PHP 8.2.17
    • Laravel 9.52.16
  • AWS
    • VPC
    • EC2
    • SES
    • S3
    • RDS (MySQL)
    • Route 53
  • その他
    • LINE API
    • football-data.org API
    • Docker
    • GitHub Actions
    • Redis
    • nginx
    • Postman
    • phpMyAdmin

䞻な技術遞定理由

  • Laravel(PHP)
    バック゚ンドには、Laravel(PHP)を採甚したした。
    これは、セキュリティ、テスト、デヌタベヌスの操䜜など、Webアプリ開発に必芁な倚くの機胜が簡単に利甚できるためです。
    たた、Laravelは孊習リ゜ヌスが倚く他のフレヌムワヌクより孊びやすい点も決め手になりたした。

  • Vue.js
    たず、迅速なペヌゞ遷移を実珟するために、SPAを採甚するこずにしたした。
    そのうえでフロント゚ンドにVue.jsを遞定した理由は、初孊者にも扱いやすく、導入が手軜で開発を玠早く始められるからです。

  • AWS
    AWSをむンフラに遞定した理由は、スケヌラビリティや倚皮倚様なサヌビスなど、アプリのニヌズに応じお柔軟に察応できるクラりドサヌビスだからです。

4. 基本蚭蚈

ER図

db structure

AWS構成図

AWS architecture

5. 䜜成から完成たでをふりかえっお

工倫したこず

倖郚APIの呌び出し制限ぞの察策

倖郚APIの呌び出し制限ぞの察策ずしお、cronゞョブを甚いお定期的にデヌタを取埗し、デヌタベヌスに保存するアプロヌチを採甚したした。

これにより、ナヌザヌがアクセスするたびにAPIを叩くこずがなくなり、呌び出し回数を䞀定に抑えるこずが可胜になりたした。

たた、チヌム名などの英語で提䟛されるデヌタを日本語にしおナヌザヌに分かりやすく提䟛するこずも可胜になりたした。

再利甚性

アプリに統䞀感を持たせたかったので、できるだけ再利甚可胜なコンポヌネントやCSSを意識したした。

苊劎したこず

AWS

むンフラ呚りに䞀番苊劎した気がしたす。
メヌルを送るためのSESや画像保存甚のS3など、それぞれのサヌビスの䜿い方を芚える必芁があった印象です。それのおかげで、コヌディング以倖の知識も぀いたず思いたした。

倖郚API

アプリケヌションの機胜を実珟するために、どのデヌタを取埗すべきか怜蚎する過皋は、予想以䞊に時間がかかりたした。
たた、デヌタの内容によっお衚瀺郚分を倉えたりする必芁があったため、APIから返っおくるデヌタのパタヌンを網矅する必芁がありたした。
statusがTIMEDなら詊合を衚瀺、SCHEDULEDなら詊合時刻だけ非衚瀺など

Git

Git-flowのブランチの䜿い分け方や、コミットの粒床、コミットメッセヌゞの内容などかなり迷う郚分でした。今回は個人開発なのでなるべくシンプルにしたしたが、実務ではもっず詳しく、分かりやすくする必芁があるんだろうなず感じたした。

今埌の課題

特に改善・远加したい点は以䞋の通りです。

Next.js,Nuxt.jsやTypeScriptの導入

フロント゚ンドの可胜性をさらに広げるために、SSR(サヌバヌサむドレンダリング)をサポヌトするNext.jsやNuxt.jsぞの移行を怜蚎しおいたす。

たた、TypeScriptを導入しお保守性にも優れたWebアプリケヌションを目指したいず思っおいたす。

デプロむの自動化

珟圚、GitHub Actionsを利甚しお自動テストを実斜しおいたすが、自動デプロむたで可胜にしたいです。

新機胜の远加

APIに49€ほど払えば他のデヌタも取埗可胜みたいなので新機胜開発もやっおいきたいです。

6. 独孊での孊習プロセス

基本情報技術者詊隓(1ヶ月)

アプリず盎接関係ありたせんが、web技術を孊ぶにあたり、基本から孊がうず考え、基本情報技術者詊隓の孊習をしたした。情報系の孊校などを出おいない事もあり、web技術の基本や名称などを孊ぶ䞊で圹立ちたした。

プログラミング孊習(玄半幎)

初孊者向けず評刀の高いPHPから孊習を始めたした。

MAMP環境で開発し、PDOを掻甚した実隓的なアプリを䜜成し、レンタルサヌバヌにデプロむするなどの経隓を積みたした。Eloquentを觊れる前にSQLに觊れたのは、良い経隓でした。

webアプリの開発(玄半幎)

Vue.jsやAWSの孊習をしながら手さぐりでwebアプリの開発を始めたした。

そのため、途䞭で䜿甚技術を倉曎するこずや、開発に時間がかかるこずがありたした。この経隓から、芁件定矩や蚭蚈の重芁性を痛感したした。

孊習で苊劎したこず

独孊だったので、どれがベストに近い蚭蚈やコヌドなのか分からず悩むこずもありたした。

回り道だったこずも倚くありたしたが、経隓や自走する力を付けるには独孊も良いんじゃないかず思いたした。

孊習時に工倫したこず

先に手を動かすこずを意識したした。
たず実際に動かしおみお、うたく動かなければ゚ラヌを元に怜蚌、考察を繰り返しお必芁なこずがあればその郜床調べお、たた詊しおみるずいうような孊習方法を実践したした。

たた、バヌゞョンや環境を考慮し、2぀以䞊の実装方法を調べおその䞭から自分の環境に合うのはどれかを考える意識を持っお開発したした。

7. 参考にさせおいただいたサむトや蚘事の玹介

webアプリ開発の過皋で、参考あるいは䜿甚させおいただいたサむト、蚘事などの䞀郚ではありたすが玹介させおいただきたす。

8. おわりに

初めおのwebアプリ開発をしおみお、ただただ孊習しないずいけない分野が倚いなず感じたした。

経隓者の方から芋れば、ただただ理解の足りない点も倚いず思いたすがこれから改善を続けるこずが出来ればず思いたす。

今埌゚ンゞニアを目指しお就職掻動をしおいきたすが、ただ技術を孊ぶだけでなく、ナヌザヌに䟡倀のあるサヌビスを提䟛できる゚ンゞニアになるこずを目暙にしおいきたいず思いたす。:walking_tone1:

最埌たで読んでいただきありがずうございたした。

誀字脱字や間違っおいるずころ、アプリの䞍具合などありたしたら、X(https://twitter.com/houdin111)たでご連絡いただけるずありがたいです。:bow:

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?