Jamorham
Nightscout용 xDrip+ 버전
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A safety walking companion for women navigating Miami (FIU as the anchor community), built around a tiered check-in escalation system. Built for the EmpowHER Hackathon.README 전문 보기 ↗A safety walking companion for women navigating Miami (FIU as the anchor community), built around a tiered check-in escalation system. Built for the EmpowHER Hackathon.
The walker sets a check-in interval when she starts a walk. If she misses a check-in, the backend checks whether she's still moving — staying stationary speeds up escalation. Escalation runs through four levels: (1) self check-in ping, (2) primary contact notified, (3) emergency contact notified, (4) a simulated "would now escalate to emergency services" screen (never a real call, by design). When it escalates, Gemini generates a plain-language summary of the situation, and the contact gets a text with an Apple/Google Maps link — no app install required on their end.
See PROJECT_HANDOFF.md for the full product spec and escalation logic.
| Layer | Choice |
|---|---|
| Frontend | React 19 + TypeScript, Vite, Tailwind CSS, React Router |
| Maps | Leaflet / react-leaflet + leaflet-routing-machine |
| Backend | Python, FastAPI |
| Database + Auth | Supabase (Postgres) |
| AI | Gemini API — escalation alert summaries |
| SMS alerts | TextBelt |
| Hosting | Frontend on Vercel, backend on Render (render.yaml) |
/frontend React + TypeScript app (Vite)
/backend FastAPI app
/frontend/src)pages/ — LoginPage, SignUpPage, ContactsPage, StartWalkPage, ActiveWalkPage, ContactViewPage (public link view), SettingsPagerouter/AppRouter.tsx — route definitionscomponents/ — shared UI (ui/) and route/map components (route/)context/, hooks/, lib/ — app state, custom hooks, Supabase client and helpersmock-api/ — local mocks for frontend development without the backend running/backend/app)main.py — FastAPI app entrypointrouters/ — contacts.py, walks.py (authenticated), public.py (contact-link view, no auth)services/ — session_service.py (escalation state machine), escalation.py (stillness/level logic), gemini_service.py, textbelt_service.py, geo.pydb.py, dependencies.py, config.py, schemas.pysupabase/schema.sql — database schemaFull backend details (auth model, endpoints, Gemini/TextBelt fallback behavior) are in backend/README.md.
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # fill in Supabase, Gemini, TextBelt values
uvicorn app.main:app --reload --port 8000
Run backend/supabase/schema.sql against your Supabase project (Dashboard → SQL Editor).
cd frontend
npm install
cp .env.example .env # fill in VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY
npm run dev