shari-sushi / V-Kara-Lists

Vカラ(Vtuber歌枠把握アプリ)
MIT License
16 stars 4 forks source link

V-kara開発

はじめまして。

IT業界未経験、プログラミング未経験の状態から独学でwebアプリを作製しました。
きっかけは趣味で使いたいアプリが無かったことです。
自分用に開発し始めてすぐにのめり込み仕事にしたいと思うようになり、一般向けに軌道修正してポートフォリオとしました。


※この内容はQiitaの記事と同じです。(4/25時点)
 また、当面はQiitaのみ更新の予定です。


自己紹介

ポートフォリオ

概要

webアプリ主要ページ紹介

共通仕様

TOPページ

全歌一覧ページ

VTuber個別ページ

データ入力ページ

レスポンシブ対応

通常画面 ハンバーガーメニュー

ステルスリリースページ

アクセス方法は秘密です。

※元々使っていたのですが、ステルスリリースという一般的にある手法ということを昨晩知ったので掲載しました。(4/9追記)

技術

使用技術

言語、サービス フレームワーク/ライブラリ
Next.js v13.5.6 TypeScript v5.1.6
React v18.2.0
react-hook-form v.7.47.0
react-select 5.7.7
react-table 7.8.0
react-youtube 10.1.0
Go v1.18 GORM v1.25.4
GIN v1.9.1
go-sqlmock v1.5.1
godotenv v1.5.1
ozzo-validation v3.6.0 (記載漏れのため追記)
MySQL v8.0.32 -

構成図

初期案

ER図 画面遷移図
main, header/footer
GitHub リンク GitHub リンク
縮小画像掲載
予定
縮小画像掲載
予定

完成物

ER図
ER図.png

画面遷移図
figma, 原寸画像
v-kara

AWS構成図

技術選定理由

プログラミング、IT業界ともに未経験で着手し独学で作りました。

機能

参考にしたもの

※後日掲載予定


備考

最後に

非常に長かったと思いますがここまでお読みいただきありがとうございました。

ここからはただのお気持ち表明になります。

このアプリを開発する上で、自分が大事にしたのは目的を見失わないことです。

そして、全ての機能はこれを達成するための手段でしかありません。 仮に気に入らない状態になっていても、仮にまだ実装したい機能があっても、目的に対して優先度が低ければ後回しにしています。 なので、実務レベルには遠く及ばないでしょうが都合よく言えばMVP開発です。

独学の進め方

以下、自己流ですが同じような境遇の人に何か役立てばと思います。

  1. 上述のMVP開発の意識は勉強・開発における挫折予防として役立ったと思います。 (初心者なので最初はできないタスクも、後回しにしている間に成長していて後で簡単に実装できたことが多々ありました。)
  2. DiscordとGitHubに進捗と備忘録を兼ねてひたすらアウトプット:専用 issue#74
    • 公開できる情報はGitHubの該当のissueへ
    • 公開できない情報が載る可能性があること(AWS周り等)はDiscordのスレッドに
    • 実装したい機能やその良し悪しを思いついたら布団の中からでもやる
GitHub
issue
Discord
thread
threadの中身 初期はDiscordのチャンネルにメモってました
管理しにくかったです
image.png image.png image.png

3 . 必要と思ったことはやる  YouTube iflameのバグにぶつかった話です。  OSS公式ドキュメント通り書いても、期待通り動きませんでした。  バグの映像YouTube

 OSSを類似品に変えてもダメでした。  サンドボックスので何でも試しました。  コード

 react-playerサンドボックスのissue  ↓  解決しませんでしたYouTube

 react-youtubeサンドボックスのissue  ↓  解決しませんでしたYoutube

 自分の問題では無いと確信し、OSS issueへ投稿しました。  結局、同じ境遇の人から裏技的な回答をもらい、一応解決しました。  react-playerissue #1725

 解決実践した自issue

 ただ疑問なのは、こんな大掛かりなバグ、大問題になってもおかしくないです。本当は自分の使い方が間違ってるのかも?

4 . 他人の意見ももらう  デプロイと同時にまずは知人にフィードバックをもらい、機能追加やバグ修正を行いました。未対応のものもGitHubのissueに記録しています。

5 . Xでとりあえず呟く  どうしても分からなければXで呟きます。教えてもらえることもありますし、他人に分かるように情報を精査してまとめることで、問題の切り分けが進んだり問題は解決していなくても1ステップ進んだような気持ちになり、ストレスが軽減されていたように思います。結果、ポスト後に自己解決できたりします。

6 . paiza様コーディングテスト  Bランクに昇格すると紹介できる求人が増えるとのことでポートフォリオ完成前にチャレンジ。  2問目でなんとかクリア。(目標時間を数分オーバーし減点され昇格ならず。)  1問目は全く分からず、ご飯中やお風呂中も考えてなんとか正解には辿り着けました。慣れているうちにと、直ぐに2問目に挑戦しました。  ちなみに、そのエージェント様に再確認したところBランクでも30歳に紹介できるところは無かったと言われ挑戦をやめました。(ポートフォリオ作成に戻りました。)  ただ、1ヶ月後に別の方に変わってからGoの自社開発企業様を紹介していただけました。    

今後も追加したい機能が山のようにあるので、仮にエンジニアになれなかったとしても開発は続けていきたいと思っています。

ちなみに、一番集中できたときで1日で19時間コーディングしてました。 (31時間くらい起きており、そのうち連続した24時間のなかの19時間) 人生でこんなに集中力が続いたのはじめてで、気がついたらそんなに経っていたという感じで楽しかったです。 逆に、この365日で1時間もやらなかった日はありません。 普段は1人暮らしですが、親の体調不良で看病のために帰省した際は、ゲーミングデスクトップからモニター(2枚)から全て持ち帰って意地でもやりました。

30歳を節目に未経験へのハードルがぐっと上がる業界の様ですが、悔いの残らない転職活動になるよう最後まで頑張ります。

もしご質問があればこの記事、Xのポスト、リポジトリのissue等にご連絡ください。 自分の勉強やV-karaの品質向上につながると思いますのでできる限りお答えします。