Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

666 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2025 Techeer Summer BootCamp - Neurocare

Early Dementia Diagnosis Service


대표 이미지

Neuro+CARE= Neurocare




📖 Table of contents


📣 Introduction

URL

💻 Neurocare - Web 버전

📱 Neurocare - Mobile 버전

Medium

🔎 Neurocare Medium  


  • AI를 활용한 초기 치매 진단 서비스
  • Neuro+CARE= Neurocare
  • 사용자가 3개의 검사를 통해서 AI가 치매 점수를 판별
  • AD8검사를 통해 빠르고 간단하게 검사 가능
  • AI와의 대화를 통해서 사용자와의 대화 내용분석
  • 슐만 채점법을 통해 사용자가 그린 그림을 판별
  • 세 가지 테스트를 거쳐, 최종 분석 결과
  • 지난 리포트 기록 열람 가능

🕺🏻 Demo

Innit Animation

Neurocare 접속하면 가장 먼저 보이는 화면입니다.


Onboarding

Login/Register

간편 로그인으로 나만의 인지 건강 여정을 시작할 수 있습니다.


Login & Sign up

Main

다양한 검사와 리포트, 자기 관리 기능에 한 번에 접근할 수 있는 Neurocare의 허브입니다.


Login & Sign up

AD8

사용자가 AD8검사를 할수있는 페이지입니다.
8개의 간단한 문항을 통해서 빠르고 간단하게 검사를 할 수 있습니다.


Login & Sign up

AI 대화 검사

사용자가 AI와의 대화를 할 수 있는페이지입니다.
사용자는 음성 기반 대화와 텍스트 기반 대화를 선택해서 할 수 있습니다.






그림 검사

사용자가 조건에 맞게 시계 그림을 그릴 수 있는 페이지입니다.
널리 알려진 슐만 채점법을 통해서 사용자의 그림을 특정 점수로 AI가 판별합니다


Login & Sign up

Loading

사용자 검사를 기반으로 AI 최종 리포트 생성을 기다리는 페이지입니다.




Report

세 가지 테스트를 거쳐 나온, 최종 분석 결과를 볼 수 있는 페이지입니다. 각 항목별로 ‘양호 / 경계 / 위험’ 세 가지 등급으로 분류되며,시각화해서 한눈에 확인할 수 있습니다




Mypage

과거 검사 이력과 자기 관리 기록을 확인하고, 꾸준한 건강 관리를 이어가는 공간입니다..




Neurocare App-Version

Neurocare는 사용자의 편의성과 접근성을 위해서 앱 버전 또한 제공합니다 -.





📗 API

API 이미지



🛠 ️System Architecture



🔑 ERD



💻 Tech Stack

Field Technology of Use
Frontend
Backend
Database
AI
DevOps
Monitoring
ETC


📊 Monitoring

Prometheus & Grafana & NewRelic

cAdvisor NewRelic
cAdvisor
Node_Exporter
Node Exporter2
Nginx_Exporter Redis


Sentry

Frontend
Sentry

📂 Directory Structure

Neurocare

🗂️Project
┣ ��backend
┃ ┣ ��app
┃ ┃ ┣ 📂ad8
┃ ┃ ┃ ┣ ��__init__.py
┃ ┃ ┃ ┣ ��api.py
┃ ┃ ┃ ┣ 📃crud.py
┃ ┃ ┃ ┣ 📃models.py
┃ ┃ ┃ ┣ 📃schemas.py
┃ ┃ ┃ ┗ ��service.py
┃ ┃ ┣ 📂auth
┃ ┃ ┃ ┣ ��api.py
┃ ┃ ┃ ┣ 📃crud.py
┃ ┃ ┃ ┣ 📃models.py
┃ ┃ ┃ ┣ 📃schemas.py
┃ ┃ ┃ ┣ 📃service.py
┃ ┃ ┃ ┗ 📃utils.py
┃ ┃ ┣ 📂chat
┃ ┃ ┃ ┣ ��api.py
┃ ┃ ┃ ┣ 📃crud.py
┃ ┃ ┃ ┣ ��memory_store.py
┃ ┃ ┃ ┣ 📃models.py
┃ ┃ ┃ ┣ 📃schemas.py
┃ ┃ ┃ ┣ 📃service.py
┃ ┃ ┃ ┗ ��stream_handler.py
┃ ┃ ┣ 📂drawing
┃ ┃ ┃ ┣ ��api.py
┃ ┃ ┃ ┣ 📃crud.py
┃ ┃ ┃ ┣ 📃models.py
┃ ┃ ┃ ┣ 📃schemas.py
┃ ┃ ┃ ┣ 📃service.py
┃ ┃ ┃ ┗ 📃utils.py
┃ ┃ ┣ 📂mypage
┃ ┃ ┃ ┣ 📃api.py
┃ ┃ ┃ ┗ ��schemas.py
┃ ┃ ┣ 📂rag
┃ ┃ ┃ ┣ ��__init__.py
┃ ┃ ┃ ┣ 📃api.py
┃ ┃ ┃ ┣ ��pipeline.py
┃ ┃ ┃ ┗ ��service.py
┃ ┃ ┣ ��report
┃ ┃ ┃ ┣ ��__init__.py
┃ ┃ ┃ ┣ ��api.py
┃ ┃ ┃ ┣ 📃crud.py
┃ ┃ ┃ ┣ 📃models.py
┃ ┃ ┃ ┣ 📃schemas.py
┃ ┃ ┃ ┗ ��service.py
┃ ┃ ┣ ��report_view
┃ ┃ ┃ ┗ 📃report_view.py
┃ ┃ ┣ ��trans
┃ ┃ ┃ ┣ ��stt.py
┃ ┃ ┃ ┗ 📃tts.py
┃ ┃ ┣ 📃__init__.py
┃ ┃ ┣ 📃celery.py
┃ ┃ ┣ 📃database.py
┃ ┃ ┗ 📃worker.py
┃ ┣ 📂scripts
┃ ┃ ┣ 📃check_chroma_docs.py
┃ ┃ ┣ 📃count_chunks_by_title.py
┃ ┃ ┗ 📃delete_chroma_collection.py
┃ ┣ 📂static
┃ ┃ ┗ 📂uploads
┃ ┃   ┗ ��drawings
┃ ┣ ��temp
┃ ┣ 📂venv
┃ ┣ ��__init__.py
┃ ┣ 📃Dockerfile
┃ ┣ 📃main.py
┃ ┗ 📃requirements.txt
┣ ��frontend
┃ ┣ ��app
┃ ┃ ┣ ��src
┃ ┃ ┃ ┣ 📂api
┃ ┃ ┃ ┃ ┗ ��index.ts
┃ ┃ ┃ ┣ ��assets
┃ ┃ ┃ ┃ ┗ 📂imgs
┃ ┃ ┃ ┣ 📂components
┃ ┃ ┃ ┃ ┣ ��AppHeader.tsx
┃ ┃ ┃ ┃ ┣ 📃AppinitBackground.tsx
┃ ┃ ┃ ┃ ┣ 📃AppinitBackgrounds.tsx
┃ ┃ ┃ ┃ ┣ 📃AppLoginBackground.tsx
┃ ┃ ┃ ┃ ┗ ��BottomBar.tsx
┃ ┃ ┃ ┣ 📂pages
┃ ┃ ┃ ┃ ┣ ��AD8Page.tsx
┃ ┃ ┃ ┣ 📃ChattingSelectPage.tsx
┃ ┃ ┃ ┣ ��DrawingPage.tsx
┃ ┃ ┃ ┣ 📃InitPage.tsx
┃ ┃ ┃ ┣ ��LoadingPage.tsx
┃ ┃ ┃ ┣ ��LoginPage.tsx
┃ ┃ ┃ ┣ 📃MainPage.tsx
┃ ┃ ┃ ┣ 📃MyPage.tsx
┃ ┃ ┃ ┣ 📃RegisterPage.tsx
┃ ┃ ┃ ┣ 📃ReportPage.tsx
┃ ┃ ┃ ┣ ��TextChattingPage.tsx
┃ ┃ ┃ ┗ 📃VoiceChattingPage.tsx
┃ ┃ ┃ ┣ 📂store
┃ ┃ ┃ ┃ ┣ 📃chatStore.ts
┃ ┃ ┃ ┃ ┣ 📃reportHistoryStore.ts
┃ ┃ ┃ ┃ ┣ 📃reportIdStore.ts
┃ ┃ ┃ ┃ ┣ 📃reportStore.ts
┃ ┃ ┃ ┃ ┣ 📃testStore.ts
┃ ┃ ┃ ┃ ┗ ��voiceChatStore.ts
┃ ┃ ┃ ┣ 📂types
┃ ┃ ┃ ┃ ┣ ��api.ts
┃ ┃ ┃ ┃ ┣ 📃image.d.ts
┃ ┃ ┃ ┃ ┗ 📃react-native-html-to-pdf.d.ts
┃ ┃ ┃ ┣ 📃App.css
┃ ┃ ┃ ┣ 📃App.tsx
┃ ┃ ┃ ┣ ��AppStyle.ts
┃ ┃ ┃ ┣ 📃index.css
┃ ┃ ┃ ┣ ��main.tsx
┃ ┃ ┃ ┗ ��vite-env.d.ts
┃ ┃ ┣ 📃app.json
┃ ┃ ┣ ��babel.config.js
┃ ┃ ┣ ��metro.config.js
┃ ┃ ┣ ��package-lock.json
┃ ┃ ┣ 📃package.json
┃ ┃ ┗ 📃tsconfig.json
┃ ┣ ��shared
┃ ┃ ┣ ��api
┃ ┃ ┃ ┗ 📃index.ts
┃ ┃ ┣ ��assets
┃ ┃ ┃ ┗ 📂imgs
┃ ┃ ┣ 📂components
┃ ┃ ┃ ┣ 📃Background.tsx
┃ ┃ ┃ ┣ 📃Header.tsx
┃ ┃ ┃ ┣ ��index.ts
┃ ┃ ┃ ┣ ��InitBackground.tsx
┃ ┃ ┃ ┣ ��LoginBackground.tsx
┃ ┃ ┃ ┗ ��ProtectedRoute.tsx
┃ ┃ ┣ 📂constants
┃ ┃ ┃ ┗ 📃index.ts
┃ ┃ ┣ 📂store
┃ ┃ ┃ ┣ 📃chatStore.ts
┃ ┃ ┃ ┣ ��index.ts
┃ ┃ ┃ ┣ 📃reportHistoryStore.ts
┃ ┃ ┃ ┣ 📃reportIdStore.ts
┃ ┃ ┃ ┣ 📃reportStore.ts
┃ ┃ ┃ ┣ 📃testStore.ts
┃ ┃ ┃ ┗ ��voiceChatStore.ts
┃ ┃ ┣ ��types
┃ ┃ ┃ ┣ 📃api.ts
┃ ┃ ┃ ┣ ��html2pdf.d.ts
┃ ┃ ┃ ┗ 📃images.d.ts
┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┗ 📃index.ts
┃ ┃ ┣ ��index.ts
┃ ┃ ┗ 📃tsconfig.json
┃ ┗ ��web
┃   ┣ 📂public
┃   ┃ ┗ 📃vite.svg
┃   ┣ ��src
┃   ┃ ┣ 📂api
┃   ┃ ┃ ┗ ��index.ts
┃   ┃ ┣ ��assets
┃   ┃ ┃ ┗ 📂imgs
┃   ┃ ┣ 📂components
┃   ┃ ┃ ┣ 📃Background.tsx
┃   ┃ ┃ ┣ 📃Header.tsx
┃   ┃ ┃ ┣ ��InitBackground.tsx
┃   ┃ ┃ ┣ ��LoginBackground.tsx
┃   ┃ ┃ ┗ ��ProtectedRoute.tsx
┃   ┃ ┣ 📂pages
┃   ┃ ┃ ┣ ��AD8Page.tsx
┃   ┃ ┃ ┣ 📃ChattingSelectPage.tsx
┃   ┃ ┃ ┣ ��DrawingPage.tsx
┃   ┃ ┃ ┣ 📃InitPage.tsx
┃   ┃ ┃ ┣ ��LoadingPage.tsx
┃   ┃ ┃ ┣ ��LoginPage.tsx
┃   ┃ ┃ ┣ 📃MainPage.tsx
┃   ┃ ┃ ┣ 📃MyPage.tsx
┃   ┃ ┃ ┣ 📃RegisterPage.tsx
┃   ┃ ┃ ┣ 📃ReportPage.tsx
┃   ┃ ┃ ┣ ��TextChattingPage.tsx
┃   ┃ ┃ ┗ 📃VoiceChattingPage.tsx
┃   ┃ ┣ 📂store
┃   ┃ ┃ ┣ 📃chatStore.ts
┃   ┃ ┃ ┣ 📃reportHistoryStore.ts
┃   ┃ ┃ ┣ 📃reportIdStore.ts
┃   ┃ ┃ ┣ 📃reportStore.ts
┃   ┃ ┃ ┣ 📃testStore.ts
┃   ┃ ┃ ┗ ��voiceChatStore.ts
┃   ┃ ┣ 📂types
┃   ┃ ┃ ┣ ��api.ts
┃   ┃ ┃ ┗ ��html2pdf.d.ts
┃   ┃ ┣ 📃App.css
┃   ┃ ┣ 📃App.tsx
┃   ┃ ┣ 📃index.css
┃   ┃ ┣ ��main.tsx
┃   ┃ ┗ ��vite-env.d.ts
┃   ┣ ��Dockerfile
┃   ┣ 📃eslint.config.js
┃   ┣ ��index.html
┃   ┣ 📃package.json
┃   ┣ 📃README.md
┃   ┣ ��tsconfig.app.json
┃   ┣ ��tsconfig.json
┃   ┣ ��tsconfig.node.json
┃   ┗ ��vite.config.ts
┣ 📂grafana
┃ ┗ 📂provisioning
┃   ┣ 📂dashboards
┃   ┃ ┣ 📃cadvisor-exporter.json
┃   ┃ ┣ ��dashboard.yml
┃   ┃ ┣ 📃docker-monitoring.json
┃   ┃ ┣ 📃fastapi-monitoring.json
┃   ┃ ┣ 📃fastapi-observability.json
┃   ┃ ┣ ��mysql-overview.json
┃   ┃ ┣ 📃rabbitmq-overview.json
┃   ┃ ┗ 📃redis-dashboard.json
┃   ┣ ��datasources
┃   ┃ ┗ 📃prometheus.yml
┃   ┗ 📃grafana.ini
┣ 📂prometheus
┃ ┗ ��prometheus.yml
┣ 📃LICENSE
┣ 📃README.md
┗ ��docker-compose.yml


🧐 How To Start

Frontend & Backend

git clone https://github.com/2025-Summer-Bootcamp-team-I/I-project

env setting

  • Frontend/.env
VITE_SENTRY_DSN
  • Backend/.env
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=

CHROMA_API_IMPL=
CHROMA_SERVER_HOST=
CHROMA_SERVER_HTTP_PORT=

OPENAI_API_KEY=
GEMINI_API_KEY=
GOOGLE_API_KEY=

NEW_RELIC_LICENSE_KEY=
NEW_RELIC_APP_NAME=

SEMANTIC_SCHOLAR_API_KEY=
ELEVENLABS_API_KEY=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
S3_BUCKET_NAME=

Run Docker & Backend start

docker compose up --build

Frontend Start

npm run dev(web)
npx expo start(app)

👨‍👩‍👧‍👦 Team Members

Name 김지민 김승민 배경준 김도윤 백지원 이주희
Profile
Role Leader
Backend
DevOps
Design
Full Stack
DevOps
Design
Frontend
DevOps
Design
Frontend
Design
Backend
Design
Backend
Design
GitHub




Releases

Packages

Contributors

Languages