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