이 프로젝트는 AI 캡스톤 과제를 위한 백엔드 서버입니다.
사용자 등록, 로그인, 이벤트 로그 기록, 루틴 알림 등록, 액션 로그 및 시스템 상태 확인, 통계 기능 등을 제공합니다.
프론트엔드 연동 및 AI 감지 결과 기록을 위한 RESTful API를 제공합니다.
파일/폴더
설명
main.py
서버 실행 진입점, 전체 API 구현
models.py
SQLAlchemy ORM 모델 정의
schemas.py
Pydantic 스키마 정의
database.py
DB 세션 관리
alembic/
DB 마이그레이션 도구
README.md
프로젝트 설명 문서
requirements.txt
의존성 패키지 목록
POST /login : 사용자 로그인, 세션 쿠키 발급
GET /api/user : 쿠키 기반 사용자 인증 정보 반환
POST /users : 사용자 등록
GET /users/{user_id} : 사용자 조회
PUT /users/{user_id} : 사용자 정보 수정
긴급 연락처 (EmergencyContact)
POST /emergency-contacts : 연락처 등록
GET /emergency-contacts/me : 내 연락처 목록 조회
PUT /emergency-contacts/{contact_id} : 연락처 수정
DELETE /emergency-contacts/{contact_id} : 연락처 삭제
POST /event-logs : 이벤트 기록 (쓰러짐, 이상행동 등)
event_type: "fall" 등
status: "detected" 등 상태 문자열
confidence_score: 감지 신뢰도 (0.0 ~ 1.0)
message: (선택) 텍스트 메시지 (STT 결과 등)
GET /event-logs/me : 내 이벤트 로그 전체 조회
GET /event-logs/chat : 메시지 포함된 이벤트 로그만 조회
POST /routines : 루틴 등록
title: 예) "복약 알림"
description: 예) "혈압약 복용"
alarm_time: "08:00"
repeat_type: "daily", "once" 등
GET /routines/me : 내 루틴 목록
POST /system-statuses : 시스템 상태 수동 기록
GET /system-statuses : 실시간 상태 조회 (카메라, 감지, 추적)
GET /stats/today
date: 오늘 날짜
fall_event_count: 쓰러짐 감지 수
average_confidence_score: 평균 신뢰도
routine_count: 등록된 루틴 수
object_detection_count: 객체 감지 횟수
tracking_time_hour: 총 추적 시간 (시간 단위)
타입 (type)
설명
event_type
"fall", "abnormal_behavior", "chat" 등
action_type
"object_detected", "tracking_time"
system status
"작동", "비작동"
repeat_type
"daily", "once" 등 루틴 반복 유형
# 가상환경 설정 (Windows 기준)
python -m venv .venv
.venv\S cripts\a ctivate
# 패키지 설치
pip install -r requirements.txt
# Alembic 마이그레이션 반영
alembic upgrade head
# 서버 실행
uvicorn main:app --reload