はじめに
今回、初めて個人でWebサービスの開発を行ってみました。
数あるWebフレームワークの中からDjangoを選び、手探り状態でなんとか動くようにしてみました。
サービス概要
サービス名teamup
プロジェクトの立案者(以下オーナー)と、そのプロジェクトへの参加を希望する人(以下ワーカー)を繋げるという設定のWebサービス。
オーナーは、Teamupにてプロジェクトを投稿、ワーカーは参加したいプロジェクトを選び、オーナーに対して参加申請を行い、オーナーが参加希望者の中からワーカーを選びプロジェクトへ参加してもらうサービスです。
環境
開発環境
・Windows 10 64bit
・python 3.10.6
・Django 4.2
・MySQL
・Bootstrap5
構成
Django
今回は、タイトルに書いてあるとおり、PythonのWebフレームワークであるDjangoを使用。
templatesフォルダとstaticフォルダを、アクセス。管理しやすいようにBASE_DIRに設置しました。
フォルダ構成
root/
  ├ config/     #setting.py等
  ├ teamup/     #teamupのメインアプリ
  ├ templates/     #テンプレート用フォルダ
  │     ├ accounts/     #main/users/用のテンプレートフォルダ
  │     └ common/     #main/teamup/用のテンプレートフォルダ
  ├ static/     static用フォルダ
  │     ├ css/     css用フォルダ
  │     ├ js/     javascript用フォルダ
  │     └ medias/     画像用フォルダ
  │           ├ bio/     プロフィール画像
  │           ├ project/     プロジェクト内の画像
  │           └ other/     その他の画像
  └ manage.py
インフラ関係
今回はAWSのEC2へデプロイを行い公開します。
※現在記事作成中
実装した内容
ユーザー登録
Djangoにデフォルトで組まれているUserモデルに対して、AbstractUserを用いて情報を追加。
Djangoに内包されているユーザーモデルを元に、CustomUserを実装。
フィールドを追加するのみであり、早く実装したかったのでAbstractUserを用いました。
詳細は以下のリンクを参照してください。
プロジェクトの投稿
プロジェクトをオーナーが投稿する機能です。
タイトル、コンテキスト、画像、タグ等を入力して投稿します。
詳細は以下のリンクを参照してください。
プロジェクトへの参加申請
現段階では未実装(2023-05-30)
投稿されたプロジェクトに対して、ワーカーが参加申請を送ります。
参加申請後は、オーナーに通知が送られ、オーナーはユーザープロフイールからワーカーを選任します。
さいごに
未経験のことで回り道や失敗を多くしましたが一応動くものができましたが、知識や経験不足による開発速度の遅さを強く感じております。
今後はこのサービスを発展させる他、Django以外のwebフレームワークの挑戦も行ってまいります。
今回開発を進めていく上で学んだ事や経験したことを糧に、今後も様々なモノを作っていきます。