Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Node-Hackathon/Node_Frontend

Repository files navigation

[멋쟁이 사자처럼 12기 해커톤] 치매 관리 및 예방 교육 서비스

2024 교내 소프트웨어 학술제 우수상(2위)

image
우리 서비스는 치매 예방을 목표로 하는 인지 강화 및 교육 활동을 제공합니다. 자체적으로 개발한 게임과 AI 기술을 통해 사용자의 인지 기능을 자극하고 기억력 및 문제 해결 능력을 향상시키는 것을 목표로 합니다.

프로젝트 설명

  • 사용자의 인지 기능을 자극하는 두 가지 유형의 게임을 제공합니다. 이 게임들은 기억력과 집중력을 향상시키기 위해 설계되었습니다.
  • AI 기술을 활용한 교육 서비스를 통해 사용자가 다양한 방식으로 학습하고 문제를 해결할 수 있도록 돕습니다.
  • 체크리스트 기능을 통하여 사용자의 치매 증상을 진단받을 수 있습니다.
  • 지역별 센터 정보를 한 눈에 알아볼 수 있게 리스트 형태로 제공되고, 해당 사이트로 접속할 수 있습니다.
  • 하루 일기 기능을 통해 매일의 기억을 되돌아볼 수 있습니다.
  • 사용자가 진행했던 게임과 AI 교육 결과의 그래프를 제공하여 날짜 별로 결과를 비교할 수 있습니다.

개발 환경

Front :

  • Tool : Visual Studio Code
  • Library : React ^18.3.1
  • Package Manager : NPM
  • CLI : Create React App

Back-End :

  • IDE : IntelliJ
  • DataBase : MariaDB
  • FrameWork : SpringBoot
  • Build : Maven

AI :

  • IDE : VScode
  • FrameWork : Pytorch(Yolov5)
  • Data Analysis and Visualization: Pandas, NumPy, Matplotlib
  • Computer Vision: OpenCV, YOLOv5
  • Environment Management: Anaconda

협업 툴 :

  • Git
  • GitHub
  • Notion

인프라 :

  • Server : AWS EC2(Ubuntu)
  • Storage : AWS S3
  • DataBase : AWS RDS (MariaDB)
  • Container : Docker

기술 스택

Front :

  • Language : TypeScript
  • CSS : Styled-components
  • State Management : rtk-query
  • Routing : React Router v6
  • Linter : esLint
  • Code Formatter : Prettier

Back-End :

  • Java 11
  • SpringBoot 2.5.6
  • Spring Data JPA
  • Spring Security
  • Restful API
  • QueryDsl
  • JWT
  • Swagger
  • JUnit

AI :

  • Pytorch
  • FastAPI
  • Pandas
  • Matplotlib
  • Yolov8

DataBase

  • MariaDB
  • Redis

팀원 구성

김유성 - 팀장 이민욱 황형진 최지은 김영훈

@kimys5278

@leeminuk

@HwangHyeongjin

@Cjieun

@eth220421
백엔드
AI
프론트
백엔드
백엔드 프론트 프론트

기능 정리

  • 일반 로그인
  • 치매 진단 체크리스트
  • 상담 센터 리스트 조회 및 센터 접속 리스트
  • 오늘 일기 기능 - 매일의 일기를 작성하여 그날의 기억을 간직할 수 있습니다.
  • AI 구성놀이 - 4D블럭을 이용한 구성놀이 후 이미지처리
  • AI 블록쌓기 - 4D블럭을 이용한 블로쌓기 후 블록 조합 인식 및 정확도 도출
  • 숫자 맞추기 게임 - 단계 별 시간 제한을 둔 기억력 강화 게임
  • 카드 맞추기 게임 - 동일한 카드를 맞추는 기억력 강화 게임
  • 게임 결과 리스트 반환
image image image

팀원 역할 분담

김유성 - 백엔드 / AI

  • 회원가입/로그인 : CoolSms와 Redis를 이용한 문자인증 + SpringSecurity 와 Jwt를 이용한 일반 로그인
  • 블록 쌓기 AI : Yolov8 모델을 이용하여 데이터 학습 후 FastApi 제작
  • 구성 놀이 이미지처리 : OpenCV를 이용하여 구성 놀이 교육 이미지 처리 및 FastApi 제작
  • WebClient를 이용하여 스프링부트와 FastApi 연결 image
  • 센터 리스트 크롤링 후 디비에 저장
  • AI 서버 배포
  • 백 배포
  • 프론트 배포

이민욱 - 백엔드 / 프론트

  • 치매 센터 정보 조회
    • 공공데이터를 기반으로 전국의 치매 관리 센터 정보 제공
    • 도시별 필터를 통해 사용자가 원하는 지역의 정보를 쉽게 찾을 수 있음
  • 치매 증상 진단
    • 자가 체크리스트를 통해 사용자가 스스로 치매 증상 진단 가능
    • 일별 결과를 누적하여 그래프로 시각화 하여 확인 가능
  • 일기 작성
    • 하루 일과를 간단하게 기록할 수 있는 질문을 제공
    • 작성된 일기는 DB에 저장되어 날짜별로 확인 가능
  • 뇌 건강 게임
    • 숫자 맞추기와 그림 맞추기 게임을 구현

황형진 - 백엔드

  • 마이페이지
    • mybatis를 통한 마이페이지 정보 조회 & 수정 구현
    • mybatis를 통한 보호자 정보 조회 & 수정 구현
  • 게임 결과 페이지(숫자 맞추기, 그림 맞추기)
    • 프론트에서 넘어온 게임 결과 데이터 DB에 저장
    • DB에서 전체 게임 결과 불러오기 구현
    • 최근 5개 게임 결과 불러오기 및 그래프를 통한 시각화 구현

최지은 - 프론트

  • 프로젝트 구조 설계 및 협업 준비
    • styled-components를 통해 글로벌 스타일 적용 및 자주 사용하는 스타일 코드 분리
    • PrettieresLint 설정 및 적용, 코드 품질 관리
    • rtk-query의 base 코드 작성 및 Navigation 기능 구현
  • UI/UX 디자인 및 애니메이션
    • 전반적인 디자인 작업과 애니메이션 적용을 통해 사용자 경험을 개선
    • Onboarding 화면, Progressbar, Loading, Graph 컴포넌트에 애니메이션 적용
  • API 및 상태 관리
    • rtk-query를 사용하여 API 요청 및 응답 관리
    • Redux를 이용한 accessToken 관리 및 자동 로그아웃 기능 구현
    • 공통 컴포넌트를 개발하여 코드의 유지보수성을 높임
    • ReactModalRedux를 사용하여 모달창을 관리하여 여러 페이지에서 쉽게 재사용 가능하도록 컴포넌트화
  • 로그인/회원가입
    • 로그인/회원가입 UI/UX와 API 연동
    • React-hook-form을 사용하여 유효성 검사 처리, 실시간 오류 메시지를 통해 사용자 경험 개선
    • 인증번호 발송 및 재전송, 인증 로직 구현
  • 블록 쌓기 및 구성 놀이 페이지 개발
    • 블록 쌓기와 구성 놀이의 UI/UX 구현 및 API 연동
    • 이미지 전송 후 rtk-query를 통해 API 연동하는 동안 Loading페이지를 표시하고, 성공 시 결과를 이미지와 그래프로 출력
  • 치매 진단 및 일기 기록 페이지 개발
    • 여러 개의 질문을 넘기면 답변하는 치매 진단 페이지와 일기 기록 페이지 개발
    • Progressbar로 상태를 표시하고, ReduxlocalStorage를 통해 중단 후 재접속 시 답변 정보를 복구할 수 있도록 구현
  • 그 외 게임 개발
    • 자바스크립트로 숫자를 순서대로 맞추는 게임 구현
    • 게임 결과를 이전 결과와 비교하여 그래프로 시각화
    • 각 게임에 대한 설명서 페이지 UI/UX 구현
  • 상담 센터 리스트 페이지 개발
    • 배열 데이터를 map으로 렌더링하여 보여주는 기능 개발

김영훈 - 프론트

  • 공통 컴포넌트 개발
    • 모든 페이지에서 사용되는 Header, Footer, Side Navigation 컴포넌트 개발
    • styled-components를 활용하여 코드 효율성 향상
    • "position: sticky" 속성과 @keyframe & animation을 적용해 사용자 경험 개선
  • 랜딩 페이지 개발
    • 여러 페이지의 기능을 한눈에 파악할 수 있는 메인 페이지 개발
    • 주요 기능 설명 및 이동 버튼을 통해 사용자 CTA(Call-To-Action) 유도
  • 마이 페이지 개발
    • 사용자 개인화된 경험 제공 (이름이 포함된 상단 웰컴 메시지)
    • 제공 기능: 내 정보, 보호자 정보, 진단 결과, 게임 누적 결과, 로그아웃, 탈퇴 등
  • 내 정보 페이지 개발
    • 사용자 정보를 확인 및 수정할 수 있는 페이지
    • 읽기 모드 ↔ 수정 모드 토글 방식 적용으로 코드 효율성 및 페이지 중복 방지
    • Daum 우편번호 API를 활용해 유효하지 않은 주소 입력 방지
  • 보호자 페이지 개발
    • 긴급 상황에 대비한 보호자 정보 제공
    • 읽기 모드 ↔ 수정 모드 토글 방식으로 효율적 페이지 개발
    • Daum 우편번호 API를 통한 정보 정확성 향상
  • 진단 결과 페이지 개발
    • 날짜별 치매 진단 결과 제공
    • map() 함수로 데이터 바인딩 처리
    • isFirst, isLast 상태를 통해 Summary의 최상단, 최하단 borderRadius 조건부 적용
  • 게임 누적 결과 페이지 개발
    • 게임 종류별 누적 결과를 시각적으로 제공
    • map() 함수로 데이터 바인딩
    • 특정 결과 클릭 시 Modal 창을 통해 상세 결과(이미지) 제공
  • 일기장 페이지 개발
    • 날짜별 사용자의 일기 확인 가능
  • NoResult 컴포넌트 개발
    • 보호자, 진단 결과, 게임 누적 결과, 일기 등의 데이터가 없을 경우 출력
    • 사용자 혼란을 방지하는 메시지 및 시각적 요소 제공
  • 프론트엔드 배포 및 도메인 설정
    • Docker와 Nginx를 활용한 이미지 생성 및 컨테이너 실행
    • 도메인 구매 및 IP 주소 연결을 통한 배포 환경 구성
KakaoTalk_Video_2024年12月20日-02-24-54.mp4

About

치매 예방 및 관리 웹서비스, Node

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

AltStyle によって変換されたページ (->オリジナル) /