Coder Social home page Coder Social logo

recipebook's Introduction

RecipeBook

프로젝트 개요

  • 매일 똑같은 요리도 지겹다. 배달도 지겹다. 머리속에 떠오르는 똑같은 음식, 다른 사람들은 뭐먹지?
  • 나만의 레시피를 공유하고 나만의 요리책을 만들어 보자!

프로젝트 소개

  • RecipeBook은 레시피 검색 플랫폼 입니다.
  • 여러 사용자가 올린 레시피를 개인에 입맛에 맞게 커스터마이징 할 수 있으며 추천, 팔로우 기능을 통해 관리할 수 있습니다.

주요 기능

  • 회원 가입, 탈퇴
  • 로그인, 로그 아웃
  • 레시피 조회, 등록, 수정, 삭제
  • 레시피를 골라서 나만의 폴더에 저장
  • 조회 필터 처리

프로젝트 목표

  • 오늘의집의 집들이 같은 정보거래 플랫폼 구현
  • 객체지향의 원리를 최대한 적용하여 유지 보수에 용이한 코드 구현
  • 대용량 트래픽을 고려한 확장에 용이한 서버 구조 설계
  • 프로젝트 진행 과정에서 테스트 주도 개발(TDD)를 적용하여 안정적이고 깔끔한 코드 작성
  • 배포 후 버전업을 통한 기능 추가
  • CD/CI 환경 설정
  • Api 문서작성 (swagger)

recipebook's People

Contributors

buchonsi avatar f-lab-bot avatar

Watchers

 avatar

Forkers

buchonsi

recipebook's Issues

[Hotfix] antMatchers에 등록된 url 요청이 AccessToken을 필요로 않도록 로직 수정

관련 이슈

FIx 내용

  • 스프링 시큐리티 인증을 거치지 않도록 antMatchers로 등록된 URL 요청이 JWT AccessToken 을 필요로 하는 문제 발견.

  • Jwt AccessToken은 Jwt 인증 절차를 가진 filter에서 처리 됨.

  • Jwt 인증 절차를 가진 filter 가 security filter 내부에서 security filter chain에 추가 되는 것이 아닌 빈으로 등록되어 application filter chain에 추가 되면서 항상 filter가 호출 되는 것을 확인.

  • AccessToken이 null 일 때 Jwt 인증을 회피하도록 코드 수정

  • Jwt filter 에서 Jwt 인증을 회피 후 antMatchers에 등록된 Url 요청 에 따라 security 권한 여부를 체크하는 것을 확인.

[Feature] 관리자 - 사용자 권한 변경 기능 구현

목표

  • 관리자의 사용자의 권한을 변경 기능 추가
  • 관리자의 사용자 권한 변경 요청 승인 기능 추가
  • 관리자의 사용자 권한 변경 요청 거부 기능 추가

방법

주의사항

추가적으로 알아야할 내용을 작성해주세요.

[Feature] 사용자 - CRUD 구현

목표

  • User 수정 기능 구현
  • User 조회 기능 구현
  • User 삭제 기능 구현

방법

주의사항

추가적으로 알아야할 내용을 작성해주세요.

  • #2
  • #4
  • 기능 통합

[Feature] 사용자 - 회원 가입

목표

  • 사용자의 회원 가입 기능 구현

방법

  • SaveUserDto 생성
  • UserServcie 생성
  • UserController 생성
  • 조회 테스트

주의사항

추가적으로 알아야할 내용을 작성해주세요.

  • 회원 가입 정보로는 아이디, 닉네임, 패스워드, 이메일을 입력할 수 있다.
  • 비밀번호는 8자리, 영문, 숫자, 특수 문자가 들어가야 한다.
  • 가입을 하면 최초 권한은 USER이다.

[Feature] 사용자 - 나만의 레시피 리스트 기능 구현

목표

  • '나의 레시피 리스트' 기능 구현
    • '레시피 리스트'를 저장할 수 있는 폴더를 생성한다.
    • '레시피 리스트'를 저장할 수 있는 폴더를 삭제한다.
    • 홈페이지에 등록된 레시피를 '레시피 리스트'에 저장한다.
    • '레시피 리스트'에 있는 레시피를 제거한다.

방법

주의사항

  • 레시피는 중복해서 등록할 수 없다.
  • 폴더를 삭제하면 폴더 내에 저장된 레시피는 전부 삭제된다.

추가적으로 알아야할 내용을 작성해주세요.

[Feature] User Entity, Repository 생성

목표

  • User Entity 생성
  • User Repository 생성
  • User 테스트 코드 생성

방법

  • 사용자의 entity와 repository를 생성하여 유저 생성과 조회를 테스트 해 본다.

주의사항

추가적으로 알아야할 내용을 작성해주세요.

[Feature] 레시피 - 등록/조회 기능 구현

목표

  • 레시피 등록 기능 구현
    • CHEF 권한을 가진 사용자 레시피를 등록할 수 있도록 검증 기능 구현
    • ADMIN 권한을 가진 사용자 레시피를 등록할 수 있도록 검증 기능 구현
  • 레시피 조회 기능 구현
    • 등록일로 정렬
    • 레시피 아이디로 레시피 조회
    • 제목에 포함된 단어로 레시피 조회
    • 재료 검색 기능
    • 타입으로 필터 처리 기능

방법

주의사항

  • 레시피 등록은 권한인 CHEF인 회원만 등록할 수 있다.
  • 레시피에는 제목, 재료, 내용을 작성할 수 있다.

추가적으로 알아야할 내용을 작성해주세요.

[Feature] 사용자 - 로그인/로그아웃 기능 구현

목표

  • 로그인 기능 구현
  • 로그아웃 기능 구현

방법

주의사항

  • 로그인 정보는 브라우저가 종료되면 로그아웃 처리가 된다.
  • 로그아웃을 하면 페이지는 메인 페이지로 돌아간다.

추가적으로 알아야할 내용을 작성해주세요.

[Feature] 레시피 - 수정/삭제 기능 구현

목표

  • 레시피 수정 기능 구현
    • 레시피를 등록한 사용자가 레시피 수정할 수 있도록 검증
    • 관리자(ADMIN)가 레시피 수정할 수 있도록 검증
    • 레시피를 등록하지 않은 사용자 레시피 수정할 수 없도로 검증
  • 레시피 삭제 기능 구현
    • 레시피를 등록한 사용자만 레시피 삭제할 수 있도록 검증
    • 관리자(ADMIN)가 레시피 삭제할 수 있도록 검증
    • 레시피를 등록하지 않은 사용자 레시피 삭제할 수 없도로 검증

방법

주의사항

추가적으로 알아야할 내용을 작성해주세요.

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.