GithubHelp home page GithubHelp logo

what-cat-eat's Introduction

뭐먹냥(What-cat-eat)

고양이 사료 선호도 기록 서비스입니다. 고양이가 선호하는 사료들을 기록하고 알러지가 있다면 알러지 내용도 기록할 수 있습니다. 또한 커뮤니티 공간을 통해 집사들간 소통도 가능합니다.

목차

프로젝트 실행 방법

  1. homebrew 설치
$ xcode-select --install
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 파이썬 설치하기 (python 3.10.6버전)
$ brew install python3.10.6
$ python3 --version
  1. 가상환경 설치 및 진입
$ python3 -m venv env
$ source env/bin/activate
  1. 필요 라이브러리 설치
  • fastapi
  • uvicorn : ASGI web server
  • SQLAlchemy : Python용 ORM
  • alembic : 데이터베이스 마이그레이션 도구
  • bcrypt : 패스워드 암호화
  • flake8 : 코드 Lint용 도구
  • black : 코드 Lint용 도구
  • pytest : 테스트 코드 작성용
  • httpx : 테스트 코드 작성용
$ pip install -r requrements.txt
  1. DB 초기화 및 alembic 세팅
$ alembic init migrations
$ alembic revision --autogenerate
$ alembic upgrade head
  1. 서버 실행하기(FastAPI)
$ uvicorn main:app --reload

테스트 코드 동작 방법

  1. pytest 설치
$ pip install pytest
  1. 실행
python -m pytest tests

Docker 실행 방법

  1. docker 이미지 만들기
docker build -t myimage .
  1. 컨테이너 만들기
docker run -d --name mycontainer -p 80:80 myimage

사용 기술

  1. FastAPI
  2. Python3.10

what-cat-eat's People

Contributors

heyoni avatar f-lab-bot avatar

Watchers

 avatar

what-cat-eat's Issues

JWT를 이용한 로그인 기능 작성

What To Do

  • Service/Repository 패턴을 적용하여 로그인 기능 작성하기
  • 로그인 방법
    1. 아이디, 비밀번호를 form 형태로 받는다.
    2. 아이디, 비밀번호가 등록이 되어있는지 확인한다.
    3. 되어있다면 토큰을 만든다.
    4. 만든 토큰을 response한다.

클린 아키텍쳐 적용

TODO

HOW

  • 파이썬으로 살펴보는 아키텍쳐 패턴을 읽고 Repository 패턴을 적용합니다.
  • API 👉 Service 👉 Repository 흐름 적용

User CRUD 완성

Definition

  • 프로젝트 구조를 세팅
    • DB 연동 및 초기 설정
    • README, 테스트 코드, 소스 코드 디렉토리 구조
  • 회원 관련 CRUD API 제공
    • API Endpoint, Request-Response 포맷 세팅

Refresh token 적용하기

TODO

  • 재요청 시 토큰이 만료되었다는 에러 발생

HOW

  • refresh token 사용하여 해결합니다.

코드 구조 변경

What To Do

  • 클린아키텍쳐 패턴 적용
    (파이썬으로 살펴보는 아키텍쳐 패턴, 클린아키텍쳐 참고)
  • Repository 패턴 및 AbstractRepository 적용
  • Service 패턴 적용

고양이 정보 CRUD 작성

TODO

  • 고양이 정보 CRUD 기능 작성
  • 테스트 코드 작성

HOW

  • 회원가입한 사용자에 대해 고양이 정보를 등록할 수 있도록 합니다.

Authentication 적용

TODO

  • 로그인 이후 가능한 작업들 Authentication 적용하기
    • 내 프로필 조회하기(user_id가 나와야 함)
    • 내 프로필 수정하기
    • 탈퇴하기

HOW

  • 로그인 이후 발급 받은 토큰이 있을 경우에만 동작하도록 합니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.