프로젝트 개요
AllCare는 환자와 병원을 연결하는 의료 예약 플랫폼입니다. 환자는 모바일 앱에서 주변 병원을 검색하고 진료를 예약하며, 병원은 전용 웹 대시보드에서 예약과 병원 정보를 관리합니다. 플랫폼 관리자는 별도의 관리자 웹에서 병원 승인, 콘텐츠 관리, 회원 관리 등 전반적인 운영을 담당합니다.
Flutter 모바일 앱, Next.js 기반 병원 웹 및 관리자 대시보드, FastAPI 백엔드 API를 하나의 모노레포에서 관리하며, 도메인 설계서(Domain Books)를 기반으로 7개 도메인을 체계적으로 설계·구현했습니다. 데이터 저장은 Supabase(PostgreSQL)를 활용하고, SQLModel과 Alembic으로 ORM 및 마이그레이션을 관리합니다.
기능 플로우
주요 기능
- 회원 관리: 환자와 병원 두 가지 유형의 회원가입과 로그인을 지원합니다.
JWT기반 인증으로 역할별 접근 권한을 분리하며, 프로필 관리와 비밀번호 변경 기능을 제공합니다.
- 병원 검색 및 상세 조회: 환자가 진료과목, 지역 등 조건으로 병원을 검색할 수 있습니다.
Naver Map기반 지도 탐색과 병원 상세 정보(진료시간, 진료과목, 위치) 조회를 지원합니다.
- 예약 시스템: 환자가 원하는 병원에 진료 예약을 생성하면, 병원 측에서 승인 또는 거절 처리합니다. 예약 상태 변경 시 환자에게 푸시 알림이 발송됩니다.
- 병원 관리 대시보드: 병원 사용자가 전용 웹에서 병원 정보 등록·수정, 예약 목록 확인 및 처리, 운영 현황을 관리합니다.
- 진료과목 관리: 계층 구조를 지원하는 진료과목 카테고리를 관리합니다. 관리자가 카테고리를 생성·수정·삭제하며, 병원 등록 시 해당 과목을 선택합니다.
- 즐겨찾기: 환자가 관심 있는 병원을 즐겨찾기에 추가하고, 즐겨찾기 목록에서 빠르게 접근할 수 있습니다.
- 콘텐츠 관리: 관리자가 배너 이미지와 공지사항을 등록·관리하여 앱 내 프로모션 및 안내 콘텐츠를 운영합니다.
- 알림 시스템: 예약 생성, 승인, 거절 등 주요 이벤트 발생 시 관련 사용자에게 푸시 알림을 발송합니다.
- 관리자 플랫폼: 병원 등록 승인/반려, 회원 관리, 콘텐츠 관리, 진료과목 관리 등 플랫폼 전반을 운영하는 관리자 전용 웹 대시보드를 제공합니다.



