【プロジェクト詳細】
①チーム構成・規模 自分一人(フルスタック)
※初期の頃、私の友人をチームメンバーとして加えましたが、友人のプライベートが忙しくなったため、ほとんど自分一人で作業する形となりました。なお、プロジェクトメンバーではありませんが、複数の友人に膨大なアニメサムネイル画像のスクレイピングを一部手伝ってもらいました。
②プロジェクト遂行において注意していること
自分一人での開発では、自身の考えに偏りがあるとその後のユーザーサービスに悪い影響を与える可能性があるため、フロントエンドのデザインやレイアウト、追加する機能等については、複数の友人からフィードバックを受けた上で開発を進めています。
③開発アプリケーションについて
「使いやすい」をコンセプトにしたアニメのレビューサイトを開発しています。
④デザインやレイアウトについて
「使いやすいとは何か?」を突き詰め、様々なサイトのレイアウトを参考にトライアンドエラーを繰り返しました。
主に参考にしているサイトは、コンテンツサイトやレビューサイト、まとめ記事などで、最終的にはtwitterに近い使用感がユーザーの求めるものではないか?という仮説を立てて開発をしています。
(技術詳細)
Python
・フレームワークはDjangoを使用
・uwsgi・nginxを用いたDjango(バックエンド)のデプロイ
・外部API(graphQL)からの情報取得
・アニメのサムネイルなどを一部スクレイピングと手作業で取得
・モデルを利用したデータベース管理
・モデル間の依存関係(onetoone,manytomany)の管理
・RestAPIの構築及びシラアライズ
javascript
・フレームワークのNext.jsでSPAを実装
・nginxを用いたNext.js(フロントエンド)のデプロイ ※フロントエンドはSSRを行っているため、バックエンドのnginxとは分離してデプロイしています。
・getStaticProps, getStaticPathsを用いたSSR・ISRの実装
・コンポーネントを利用したコードの可読性の向上、または再利用性の向上
(AWS)
・fargateを利用したプロジェクトデプロイ
・SSL証明書発行
・Route53を使ったドメイン取得
・VPC・サブネット等の利用
(Docker)
・docker, docker conposeの一連のコマンド利用
・docker-conpose.yml、Dockerfileを用いたコンテナ運用
・コンテナ間依存関係の調整
・バックエンドとフロントエンドのコンテナ間通信
・ECRへのリポジトリプッシュ
(OS)
・Windows(ubuntu)