#はじめに
この記事の目的:
● 自分でサービスを作ってみたい!というプログラミング初心者仲間のご参考に
● 僕のチームメンバーに2週間の振り返りと今後の方針を整理して伝えるために
プログラミング初学者の私ですが、**YouTube万屋エンジニアチャンネル**のコミュニティ内で、学習がてらWebサービスを作ってみようというプロジェクトを立ち上げました。ジャズライブに行った人が感想を書き込んでシェアできる口コミサイトを作っています(このコロナ禍に)。僕がジャズが大好きで、ほんの一時期片足の小指くらい突っ込んで仕事をしたこともあるので、何か作れたらおもしろいなと。
現在、おさないさんという超絶強力なメンターと先にプロジェクトを立ち上げている先人にアドバイスを仰ぎながら、初心者しかいない4人のチームでよちよち歩んでいます。
ある人の「俺、初心者時代に2週間でLaravelでアプリ作ったぜ」という言葉に影響され、僕も2週間で何か動くものを作りたい!と言って始めたのですが、その2週間が経ったので一旦、
(1)その実績を振り返り、この2週間で何ができたのか
(2)今後このプロジェクトをどんな方向に持っていくのか
を整理します。
#プロジェクト開始時の状態
###メンバーのスキルレベル
4人とも多少の差こそあれ、ドットインストール、Progate、YouTubeなどその辺で、HTML/CSS/JavaScript/+サーバーサイド言語を一通り学習したけど、サービスは作ったことはないという、最近この界隈でおそらく量産されているであろうタイプな僕らです。そこから一皮むけるべく集まってくれました(たぶん)。
「Webサービス作るにはフレームワークを使うといいらしい」と聞いて、フレームワークって何?おいしいの?状態だったにも関わらず、厚顔無恥丸出しでLaravel使って作ります!と宣言しました。
Gitとか、環境とか、ちょっと何言ってるのかよくわからない。そういう感じでした。
#2週間でどこまで辿り着いたのか
###スタート時点での目標
当初は「2週間でのサービスリリースを目指す(サービスリリースの定義=ブラウザに表示され投稿ができる状態でデプロイする)」としていました。アカウント登録機能、ログイン機能、投稿機能、カテゴリ別投稿が動くものを作ろう、と思っていました。
ただ、実際動き始めると、コーディング以前の環境の構築でかなり時間を費やしてしまいました。そこで4日めくらいに、下記のように目標を修正しました。
###実績
- アカウント登録ができる→なんとなくOK
- ログインができる→なんとなくOK
- 投稿するとトップページに投稿が新着順で表示される→なんとなくOK
- 上記3ページがPCとスマホでCSS付きで表示されること→なんとなくOK
- HerokuだかFirebaseだかよくわからないけどその辺でデプロイする→17日めになんとなくOK
上記のような感じで審判によってはセーフとも言えるし、アウトとも言えるし...。いや、5が足出てるのでアウトでしょうか(笑)さらには、どれも「なんとなく」付きでHeroku上できちんとサービスの体を成しているか確認できていないですし、この記事内でシェアするのも恥ずかしいので、まだ引き続きブラッシュアップしていきたいところです。
#この2週間で取り組んだこと
- 企画書、要件定義、画面遷移図、ペーパープロトタイプ、作業分担、スケジュール設定など
- HTML/CSSでサイトのフロントデザインの大枠と主要ページの作成
- サイトの配色検討、ロゴ作成
- GitHubとは?の勉強
- GitHubの今回のプロジェクトでの運用方法検討
- JavaScriptの使いどころ検討、長文の全文表示と一部表示の切り替え実装
- Laravelのローカル開発環境の準備
- データベースの設計
- Laravelの勉強、アカウント登録機能、ログイン機能、投稿機能、投稿データの表示機能の実装
- アプリのHerokuへのデプロイ
この2週間はプログラムそのものよりもその前段階のプログラムを書き始める準備に費やす時間の方が多かったです。1人の開発ではなくチームで進める必要があったため、その分時間がかかったなと思います。
#次なる目標
チームメンバーにはここを読んで頂きたいです!
###大きな話
まずスケジュールとか細かいことではなく、大きな話をさせてください。
世の中には僕らのような駆け出しエンジニアが溢れ、彼らが制作したポートフォリオも溢れ始めています。どれも立派なもので尊敬すべきものですが、僕らも同じようなものを作ってはただその中に埋もれるだけになってしまいます。
僕は、このJazz Log(仮)を単なるポートフォリオのための、血の通っていない間に合わせ作品にしたくないです。
イチローが**ある動画**で「今の野球界はテクニックに走っていてつまらない」的なことを言っていました。僕はこんなペーペーですが、その意味がすごくよくわかります。例えば、音楽でもハートのある作品とか演奏って、上手い下手に関係なく心を動かされるという実感があるからです。またこのIT業界っていうのも一見コンピュータと論理だらけで冷たそうな偏見を持ちかねない世界ですが、最近プログラミングにのめり込んでわかってきたのですが、実は結構ハートフルな人やサービスが多いということに気づいて感動しています。僕はそっちを目指したいんです。
また、僕は一時期ジャズに携わる人たちを間近で見ていた期間がありまして、このjazz-reviewサービスを作っているとき、その人たちの顔が浮かんでいます。好きなミュージシャンを追いかけて毎回Twitterに感想を投稿しているおばちゃん、毎日のように大小のライブハウスで演奏するミュージシャン、マーケティングがあまり上手とは言えないライブハウスの経営者....
jazz-reviewがうまくできたら、彼らに実際に使ってもらえないだろうか、ミュージシャンの方にライブのMCで宣伝してもらえないだろうか、ジャズ界がこれで明るくなったりしないだろうか...そんな淡い妄想をしています。皆さんに同じことを求めるのは無茶ですが、「へえ、そんなこと考えてんだ」とだけ思ってくれたら嬉しいです。
###具体的な目標
というわけで、次なる目標ですが、深い意味は特になく、なんとなくまた2週間先(9/21月曜)にチェックポイントを置きたいと思います。
目標は、**9/21Monまでに人にURLをばら撒けるレベルのサイトにしたい!**です。
具体的には、下記8点の要件を満たしたいです。
- Heroku上でアプリが機能する
- ページ内のリンクなど、ページがきちんと遷移する
- シンプルだが見るに耐えうるデザインであり全ページに統一感がある
- 投稿が新着順で表示でき、1ページの投稿は10件まで、それ以上は別ページとする
- 投稿がキーワード検索できる
- アカウント登録した人がログイン、ログアウト、投稿、削除、編集できる
- ゲストでも投稿できる
- Contactページから問い合わせすると運営にメールが届く
以下、ストレッチ目標
- アカウントがアイコン画像を設定できる
- 投稿に画像を1枚添付できる
- ミュージシャンごとの投稿を集約したページが生成できる
- ライブハウスごとの投稿を集約したページが生成できる
- いいね!ができる
- 利用規約のページがある
- 管理人が不適切な投稿を削除できる
いかがでしょうか??
#最後に
また2週間後レポートします!その時はURLを付けられるといいなぁ...