Giter Site home page Giter Site logo

cockpybara's Introduction


Cockpybara

소개

Cockpybara는 Cocktail과 사람들에게 친근감 있는 동물로 알려진 capybara 를 합쳐 만든 이름입니다. 사용자들에게 친근감 있게 여러 칵테일 레시피 정보를 안내하고, 편리하게 이용할 수 있는 서비스(레시피 즐겨찾기, 주간&월간 레시피 순위, 사용자 레시피 등록 및 조회) 형태를 제공합니다.

개발배경 및 목적

소주와 맥주 중심으로 이뤄지던 대한민국 주류 시장의 판도가 바뀌었습니다. 코로나19로 인한 사회적 거리두기는 획일적인 문화와 고질적인 업무 술자리에서 벗어나 좀 더 개인의 취향에 맞는 주류를 지향하는 문화를 촉발시켰고, 다양한 주류와 재료를 취향에 따라 혼합하여 즐기는 칵테일 분야가 폭발적인 성장세를 보였습니다. 하지만, 시장의 성장세에 비해 관련된 정보를 얻을 수 있는 플랫폼, 커뮤니티는 대단히 한정적이고 많은 사람들이 다양한 레시피와 조합을 알지 못하거나 익숙하지 않아 항상 같은 칵테일을 선택하는 경우가 다반사입니다. 이에 따라 칵테일 레시피 조회/추천 웹서비스를 제안하고자 합니다.

멤버

프론트

전소진 신승혜

백엔드

안민재 김지수



셋업

  • mariaDB에 프로젝트를 생성, 필요한 키값(url, username, password)를 properties에서 추가한다.
  • JPA사용을 위한, JPA관련된 설정 properties에 추가한다.
  • Naver Object Storage 연결을 위한 endpoint, region을 환경변수에 저장하고 properties에서 추가한다.
  • 이미지 업로딩에 필요한 AWS S3 액세스 키와 시크릿 키를 환경변수에 저장하고 properties에서 추가한다.

실행 방법

  • 터미널 창에 npm run build를 입력해 빌드해준뒤, npm run start로 실행한다


📚 기술 📚

  • HTML/CSS/JavaScript
  • React.js
  • Java
  • Spring Web(MVC)
  • Spring data JPA
  • MariaDB

개발툴

  • Git & Github
  • Github Projects & Issues
  • Swagger
  • Notion

스크린샷

  • 메인 화면


  • 칵테일레시피 검색 화면


  • 칵테일 레시피 상세내용 화면


  • 커뮤니티 화면(주간&월간 레시피 순위, 최근 레시피)


cockpybara's People

Contributors

minjae-an avatar jisu-0305 avatar drimh avatar soz1p avatar luizyhub avatar

Watchers

 avatar

Forkers

alcohole-free

cockpybara's Issues

이슈 #11 추가로 재료 단위 테이블 스키마

재료를 어떻게 다룰것인지 (ex, 액체와 고체를 분리 or 재료별로 가능한 단위 만들기)
테이블에 어떻게 반영시킬것인지 (ex 액체 고체로 분리할 경우 물질 성질을 나타내는 테이블을 만들것인지)
참고 자료로 fat secret (식단 앱) 을 참고할 수 있을듯합니다.

리뷰 API

칵테일 상세 정보 뷰에서 리뷰를 제공할 API 개발

재료 카테고리별 단위맵

  • Category별 사용 단위 찾기(추가내용: 몇몇 예외 단위 수정, csv파일 수정)
  • 카테고리단위맵 생성
    첫번째 내용 덧붙이면 ingredients_classfication.csv, refined_drinks.csv파일 수정후 적용

재료 카테고리 필드 추가

  • 재료 카테고리 분류된 Ingredient_classfication.csv 파일 생성
  • IngredientCategory enum class 정의
  • IngredientClass에 카테고리 필드추가

프로젝트 개발 환경 설정

FE

  • node 20
  • react 18.2.0
  • web-vitals 2.1.4

BE

  • Java 11
  • SpringBoot 2.7.13
  • Spring Web(MVC)
  • Spring data JPA
  • MariaDB 10.6
  • Swagger2
  • Spring Security (N/A)

리뷰 추가/삭제 API

  • 리뷰 엔티티가 멤버 id를 가지도록 수정
  • 컨트롤러 계층에서 수행되도록 구현된 연산을 서비스로 위임

기간별 칵테일 레시피 API

  • 주간/월간/전체 기간
    제공한 데이터는 클라이언트에서 즐겨찾기 내림차순으로 정렬하여 사용할 예정
  • CocktailRecipeRepository엔티티에 createdAt 필드 추가
  • timePeriod enum추가
  • repo수정
  • service 수정
  • controller 수정

재료 검색 API

나만의 레시피 뷰에서 재료를 이름 기반으로 검색하여 추가한다.
재료를 이름 기반으로 검색할 수 있는 API 개발 필요

칵테일 검색 기능 구현

To-do

  • 검색 필터 제공 API
  • 단순 이름 기반 검색
  • 이름 + 필터(카테고리, 글라스 등) 기반 검색

회원 가입 & 로그인 기능 구현

회원 가입

  • 회원 엔티티 정의
  • 회원 필드 검증
  • 회원 Repository 계층 구현
  • 회원 Service 계층 구현
  • 회원 Controller 계층 구현

로그인

  • 로그인 DTO 정의
  • 로그인 로직 구성
  • 로그인 Controller 계층 구현
  • 로그인 인터셉터 구현

댓글 단 레시피 리스트 API

사용자 정보 페이지에서 사용자가 댓글을 단 레시피 리스트를 받아오는 API 구현

  • 멤버, 리뷰 연관관계 설정
  • 댓글 단 레시피 리스트 제공 API 정의

나만의 레시피 API

  • AlcoholicType, Glass, Category, RecipeTaste enum 필터 값 제공 API(나만의 레시피 추가 뷰)
  • 나만의 레시피 추가
  • 나만의 레시피 삭제
  • 나만의 레시피 편집

재료 객체 생성

  • CSVtoObjectMapping.java 파일 생성
  • Unit enum 생성
  • Ingredient 클래스 생성
  • recipeIngredient 클래스 생성

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.