Spring Boot의 MVC패턴과 React.js를 기반으로 만든 영양제 복용 기록 및 알림 서비스 입니다. 지속적 복용을 돕기 위해 게이미피케이션 요소를 추가하고 웹 푸시 기능을 구현했습니다.
-
- 회원가입 진행시 이메일, 패스워드, 닉네임, 생년월일 을 입력합니다.
- 패스워드는 패스워드 확인을 이용해 체크하며
BCryptPasswordEncoder를 이용해 암호화 하여 DB에 저장하였습니다. - 로그인시 JWT 토큰을 발행합니다.
- 비밀번호 찾기를 진행할 때 가입한 이메일로 비밀번호 변경 링크를 전송하고 redis를 통해 전송된 링크의 유효성을 검증합니다.
-
- 회원은
Member라는 Role을 소유하고 있습니다. - 회원은 영양제 등록 페이지에서 복용할 영양제의 복용 시간, 영양제 수량, 복용 갯수를 등록합니다.
- 회원은 마이페이지에서 게이미피케이션 요소를 확인할 수 있습니다.
- 회원은 개인정보관리 페이지에서 패스워드 및 회원정보를 수정 할 수 있습니다. 이때 패스워드 변경 시 기존 패스워드를 한번 더 체크합니다.
- 회원은
-
메인페이지에서는 복용할 영양제의 남은 수량과 복용 갯수 및 시간 그리고 복용한 영양제를 체크할 수 있습니다.
-
사용자들의 영양제 복용일수 랭킹을 확인할 수 있습니다.
-
Firebase Cloud messaging을 사용해 사용자가 영양제를 등록할 때 선택한 아침, 점심, 저녁을 구독합니다. -
이후 정해진 시간에
Sprign Schedular를 이용해 웹 푸쉬를 전송합니다. -
- 사용자가 영양제를 등록한 시점부터 연속 복용 일 수가 계산됩니다.
- 만약 하루라도 복용을 하지 않으면 연속일수는 초기화 되며 최고 연속일수와 현재 연속일수를 확인할 수 있습니다.
- 또한 복용한 날과 복용하지 않은 날의 영양제의 이미지를 생성합니다.
- 미리 설정된 정책에 맞춰 회원 별 뱃지를 획득할 수 있습니다.
-
웹 푸시 기능

