Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
Alternly는 양육 계약을 명확하고 공유 가능한 달력으로 바꿔줍니다
Alternly transforme votre accord de garde en calendrier clair et partagé : rythmes de garde, vacances scolaires A/B/C, années paires/impaires, échanges de jours, dépenses partagées et mur de communica
라이프스타일Python · TypeScriptGitHub @jaimai온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Alternly transforme votre accord de garde en calendrier clair et partagé : rythmes de garde, vacances scolaires A/B/C, années paires/impaires, échanges de jours, dépenses partagées et mur de communication. Le calendrier est gratuit ; premium à 69 € par an et par foyer.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Calendrier de garde partagée pour parents séparés, pensé pour la France : rythmes de garde (semaine/semaine, 2-2-3, un week-end sur deux, personnalisé), vacances scolaires officielles par zone A/B/C avec partage années paires/impaires, jours fériés et fêtes, exceptions ponctuelles, partage entre les deux parents, notifications in-app et abonnement iCal (Google/Apple Calendar).
Monolithe : un backend FastAPI sert l'API (/api/*) et le frontend React buildé.
backend/ FastAPI + SQLAlchemy (Python 3.13) — moteur de garde pur et testé
frontend/ React 18 + Vite + TypeScript + FullCalendar
docs/ spec de design et plan d'implémentation
Données publiques intégrées (avec cache en base) :
fr-en-calendrier-scolaire (data.education.gouv.fr)cd backend
python3 -m venv .venv
.venv/bin/pip install -r requirements-dev.txt # prod : requirements.txt
cp .env.example .env # puis renseigner DATABASE_URL et SECRET_KEY
.venv/bin/uvicorn app.main:app --port 8000
Sans .env, l'app démarre en mode dev sur SQLite (backend/coparent.db).
PostgreSQL (alwaysdata) — dans backend/.env :
DATABASE_URL=postgresql+psycopg://user:[email protected]/dbname
SECRET_KEY=<64 caractères aléatoires>
Hors SQLite, l'app refuse de démarrer si la SECRET_KEY est absente, connue ou
fait moins de 32 caractères. Exploitation (Railway, alwaysdata, Vercel, Paddle,
Resend, Sentry, cron, sauvegardes) : voir docs/ops.md.
cd frontend
npm install
npm run build # produit frontend/dist, servi automatiquement par FastAPI
Ensuite ouvrir http://localhost:8000 — l'app complète tourne sur ce seul port.
cd frontend && npm run dev # Vite sur :5173, proxy /api → :8000
cd backend && .venv/bin/python -m pytest tests/ -q
Tests hermétiques (APIs publiques simulées, aucun appel réseau), dont la partie critique : bascules années paires/impaires des vacances, périodes à cheval sur deux années (Noël), coupe en moitiés paires/impaires, fêtes des mères/pères (y compris le décalage Pentecôte), priorités exception > fête > vacances > rythme, isolation entre foyers, flux invitation, iCal, comptes (reset/changement de mot de passe, révocation, export RGPD), limitation de débit, demandes de changement entre parents et journal d'audit.
backend/app/services/custody_engine.py)
est une fonction pure qui résout n'importe quelle plage de dates à la volée.
Les exceptions ponctuelles sont une surcouche, jamais une mutation du planning.Inclus : calendrier + moteur FR complet, partage 2 parents, exceptions, iCal, notifications in-app. V1 prévue (voir dossier de cadrage) : dépenses partagées, messagerie horodatée, export PDF, PWA/app mobile (paiement : Paddle, en place).