Peanut_Backend
-
SpringBoot
-
SpringSecurity
-
FCM
-
Redis
-
FastAPI
-
OAuth2.0
-
Docker
-
JPA
-
Yolov5
-
GitHub Action
-
QueryDsl
-
TensorFlow
-
MariaDB
- Backend, AI - 1명 🖐️
- FrontEnd - 1명
- Desinger - 1명
- 2024.03.01~2024.11.5
- 당뇨 환자에게 필수적인 인슐린과 약을 사용자가 직접 추가 및 설정 가능합니다. 설정한 정보에 맞춘 알림이 발신되어 까먹는 일을 방지합니다.
- 혼자서 관리하기 힘든 사용자들을 위하여 보호자 연결 기능을 통해 전체적인 건강 관리를 밀착 케어 받을 수 있도록 하였습니다.
- 환자의 혈당, 인슐린 ,복약 상태를 캘린더 형태로 전달하며, 월 평균 값을 인공지능을 활용하여 피드백을 제공합니다.
- Yolov5를 이용한 음식 인식 기능으로 환자의 식단 관리와 사용자 혈당 지수를 예측합니다.
- 날짜 별 사용자의 상태를 한 눈에 알아보기 쉽게 캘린더 형식으로 제공합니다.
- 회원 가입 및 로그인
- SpringSecurity, JWT, Oauth를 활용한 회원가입 로그인,카카오로그인 개발
- RefreshToken을 이용하여 사용자 인증 세션을 지속적으로 유지하고, 토큰 만료 시 자동 갱신을 통해 보안을 강화
- 로그인 한 사용자는 JWT토큰을 헤더로 전송하여 로그인 유무 반환
- 혈당, 복약, 인슐린, 식사 등록 기능 구현
- JPA를 사용하여 데이터 저장 로직 구현.
- 혈당
- 혈당 측정 후 바로 등록 못하는 사용자들을 위하여 한번 에 등록할 수 있도록 혈당 측정 시간을 문자열 입력(예: ‘오전 7시’)으로 받아 이를 파싱하여 LocalDateTime 형식으로 저장하도록 구현.
- 복약, 인슐린
- 사용자마다 복약과 인슐린 투약은 요일, 시간, 이름이 다르기 때문에, 약은 약 정보와 복약 테이블, 인슐린은 인슐린 정보와 투약 테이블을 따로 두어 데이터베이스 정규화를 통해 중복 데이터를 최소화하고 데이터 일관성을 유지하도록 설계.
- 식단
- AI로 인식한 결과 저장 테이블, 영양 성분 정보 테이블, 그리고 사용자의 식단 테이블을 매핑하여 각 식단에 대한 영양 성분 정보와 인식 결과를 효율적으로 관리하도록 구성
- 환자 - 보호자 연결 기능
- 이메일 인증 코드를 이용한 환자 - 보호자 연결 기능
- 승인 대기 테이블을 두고, 스케쥴러를 이용하여 3일 뒤 승인 대기 목록에서 삭제 되도록 구현
- 연결 후 사용자는 자신의 정보와 환자의 정보를 동시에 관리할 수 있음.
- FCM을 이용한 알림 기능
- 혈당, 복약, 인슐린, 식사알림은 모든 사용자가 입력한 시간에 동시에 알림이 가도록 스케줄러를 이용하여 구현
- 보호자-환자 알림은 푸쉬버튼 눌렀을 때 가도록 구현
- 메인 페이지 - 혈당, 복약, 인슐린, 식사를 한페이지에 볼 수 있도록 조회 기능 구현
- Query DSL을 통한 테이블 조인 쿼리 작성
- 커뮤니티
- 게시물,댓글 CRUD 기능 구현
- 게시물 검색 기능 구현
- 기타 기능
- 월 평균 진료 노트, 마이페이지 구현
- 식품영양 데이터베이스 사이트에서 데이터 수집
- RoboFlow를 이용한 이미지 데이터 라벨링
- Yolov5를 이용하여 음식 데이터 학습
- FastAPI로 서빙하여 스프링부트와 연결
-
프로젝트는 운영 환경 관리에 맞게끔 Docker 컨테이너를 사용하여 설정하였고, GitAction을 활용한 CI/CD 파이프라인을 구축한 상태입니다.
-
음식 인식 API는 아래와 같이 모놀리식으로 구성했습니다.
KakaoTalk_Video_2024-11-07-01-54-48.mp4
- 음식 인식 API는 아래와 같이 모놀리식으로 구성되어있습니다.
