[PROD JECT]WETCHAPEDIA後期


プロジェクトの概要


テーマ

  • 映画推薦と評価、評論サービスウォチャピディアをテーマとしたチームプロジェクト
  • 期間

  • 22021年11月01日~2021年11月12日(12日)
  • 開発者


  • Front-end:4人
    崔炳賢、安在宇、チョン・チャンミン、チョン・ジファン.

  • Back-end:3人
    張載沅朴大賢朴敏静
  • デモビデオ



    🔥 動画リスト 🔥

    テクノロジーの使用


    コラボレーションツール

  • Slack
  • Trello
  • Notion
  • Github
  • Postman
  • Front-end

  • HTML/CSS
  • React
  • JavaScript(ES6)
  • Back-end

  • Python
  • Django
  • MySQL
  • JWT
  • bcrypt
  • AWS(EC2, RDS)
  • 分担機能実施


  • 朴大賢.
  • 映画詳細ページ情報API
  • を提供する
  • 採点登録、照会、修正、削除機能API

  • 朴敏静
  • SignUpView:会員入力機能を実現し、bcrypt暗号化パスワード
  • を使用する
  • SignInView,login decorater:ログイン機能、JWTトークン発行による認証と認証機能を実現する
  • .
  • CommentView:Comment CRUD API論理実装

  • 張載沅
  • カテゴリ別に採点映画リストAPIを提供し、採点映画リスト別にAPI
  • を提供する.
  • 登録、照会、削除機能API
  • を見たいです.

    記憶に残るコード


    login token認証decorter

    import re, jwt
    
    from django.http   import JsonResponse
    from django.conf   import settings
    
    from users.models  import User
    
    def login_decorater(func):
        def wrapper(self, request, *args, **kwargs):
            try:
                access_token = request.headers.get("Authorization", None)
                payload      = jwt.decode(access_token, settings.SECRET_KEY, settings.ALGORITHM)
                user         = User.objects.get(id = payload["user_id"])
                request.user = user
                
            except jwt.exceptions.DecodeError:
                return JsonResponse({"message" : "INVALID_TOKEN"}, status = 400)
                
            except User.DoesNotExist:
                return JsonResponse({"message" : "INVALID_USER"}, status = 400)
                
            return func(self, request, *args, **kwargs)
            
        return wrapper

  • settings.SECRET_KEY, settings.ALGORITHM
    ALGORITHM、SECRET KEYなどの環境変数をmy settingsに設定します.pyファイルで管理していますviewspyまたはmodel.pyから直接インポートするにはmy settingsを使用します.pyファイルに依存します.他の方法で管理すると、すべてのコードを変更する必要があるという問題が発生します.
    したがって、django confからsettingsをロードするには、「from django.conf import settings」を作成する必要があります.

  • access_token
    HTTPリクエストヘッダで許可されている値を取得し、ない場合はNoneに移動します.

  • request.user
  • ポスト


    最初のチームプロジェクトから、私の実力不足がチームに損失をもたらすのではないかと心配しています.しかし、良いチームメンバーに出会って、自信を持って、最も重要なのは楽しくプロジェクトを行う雰囲気で、自分をもっと努力させます.
    良い雰囲気の中で、スムーズにコミュニケーションが取れます.そのため、みんなが頑張って楽しくプロジェクトができるように、お互いに相手の意見を聞いて、明るく表現しようと努力しています.私だけでなく、すべての人がそうしたので、スムーズなコミュニケーションができます.
    全体的にコミュニケーションがスムーズな自信がありますが、その中でも私の自信不足でコミュニケーションの問題が発生したことがあります.自分が担当しているAPIをクリアしたとしても、残りのAPI領域を分担したいという言葉を目にすることができませんでした.みんな自分がうまくやっていると思っているので、分担のスピードが足りなくて、仕事が遅くなったらどうするか心配です.しかし、自分に余裕がある様子を見て、指導者のアドバイスを通じて、チームメンバーとコミュニケーションし、お互いの進捗状況を確認し、残りの機能を分担して実現することができます.この過程で、指導者がコミュニケーションが悪いと言っているのを聞いたが、みんなが楽しくないと思って、お互いに理解して、残りを分かち合って、一緒に何をしたらいいか考えて、もう少しで泣きそうになった.2回目は、自分に自信を持って、もっと多様な機能を実現してみたいと思います.
    前述したように,他の人に比べて斬新で多様な機能は実現されていない.その部分はちょっと残念ですが、まあまあだと思います.復習してもいいです.私が書いたコードですが、理解できないところもあります.この点をもっと理解して、コードを書いてみました.他の人が書いたコードから新しい機能を知り、この部分を単独で学びたいと思っています.
    良い人と会って行うプロジェクトなので幸せで複雑で微妙な感じです.本当に良かったですし、2回目の時もたくさんのことを学び、幸せにプロジェクトを進めたいと思います.