leap
Python package for the Lifetime Exposures and Asthma outcomes Projection (LEAP) Model
Catàleg d'instrumental, tècniques, protocols i targetes de preferència compartits entre professionals de quiròfan. Open source.
Translation pending
HealthHTML · DartGitHub @mikeyoshioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Plataforma professional de coneixement col·laboratiu per al bloc quirúrgic (Flutter: Android, iOS, Web). Reuneix instrumental, tècniques, protocols i l'experiència real de l'equip en un sol lloc, i permet a qualsevol grup (un hospital, un bloc quirúrgic, un servei, un equip d'instrumentistes, un centre de formació...) documentar la seva pròpia manera de treballar — substituint les carpetes de paper desactualitzades per alguna cosa que es porta a la tauleta o al mòbil.Read the full README ↗
🌐 Català · Castellano · English
Plataforma professional de coneixement col·laboratiu per al bloc quirúrgic (Flutter: Android, iOS, Web). Reuneix instrumental, tècniques, protocols i l'experiència real de l'equip en un sol lloc, i permet a qualsevol grup (un hospital, un bloc quirúrgic, un servei, un equip d'instrumentistes, un centre de formació...) documentar la seva pròpia manera de treballar — substituint les carpetes de paper desactualitzades per alguna cosa que es porta a la tauleta o al mòbil.
L'ús bàsic (catàleg, flashcards, quiz, progrés) no requereix compte. Només cal iniciar sessió si vols unir-te o crear l'espai compartit del teu grup.
Obre l'app · Web i Vademècum públic · Novetats · Suggeriments
| Entrada al grup | Catàleg | Detall | Flashcards |
|---|---|---|---|
org_type), cadascun organitzat en diversos espais de treball (per especialitat, servei, formació...); tècniques, protocols i targetes de preferència pengen d'un espai, no només de l'organització sencera.teams/team_members) — el rol efectiu és el màxim entre el directe i l'heretat de l'equip.[email protected].lib/
l10n/ # ARB (català/castellà/anglès) + AppLocalizations generat (flutter gen-l10n)
models/ # Instrument, PreferenceCard(Version), GroupDocument(Version, ProtocolStep), Workspace(Role/Member),
# Organization (= grup, amb org_type), AuditEntry, HospitalContentStats, CustomInstrument(Variant),
# WorkMode, SterilizationMethodEntry/InstrumentTechnicalInfo, Tray(Version, Item),
# Manufacturer, Surgeon, SpecialtyEntity, Tag, ReferenceDocument, Team, UsageStats
data/ # Catàleg d'instrumental (118) i especialitats quirúrgiques estàndard
design_system/ # Tokens (color, tipografia, espaiat) i components compartits del sistema visual
navigation/ # Shell responsive (StatefulShellRoute): barra lateral en escriptori, navegació inferior en mòbil
services/ # Supabase, auth, perfil/organització, espais, progrés, tema, idioma, compte (RGPD),
# versió de l'app, auditoria, analítica d'ús, instrumental personalitzat,
# connectivitat, caché/cua de sincronització sense connexió, notificacions push,
# esterilització, safates, equips (teams), targetes de preferència (versionat)
screens/
auth/ # Entrada única (unir-se/crear grup amb compte en el mateix formulari), login, flux de connexió
admin/ # Gestió de l'organització (codi, membres, equips, propietat)
... # Inici (cerca global), Catàleg, Aprèn, progrés, espais, tècniques/protocols,
# targetes de preferència (versionat), compte i privacitat, auditoria, cobertura de
# coneixement i analítica d'ús, instrumental personalitzat de l'equip, safates,
# Biblioteca Pública (contingut i traduccions), les meves aportacions
utils/ # Generador de codi d'invitació
supabase/
schema_v*.sql # Esquema SQL (executa en ordre: schema.sql → schema_v29_public_library.sql → ...)
functions/ # Edge Functions (send-push: envia notificacions via FCM a partir del log d'auditoria)
flutter pub get
flutter run # dispositiu/emulador Android o iOS connectat
flutter run -d chrome # navegador
supabase/schema_v*.sql (i schema.sql primer):
schema.sql → schema_v2_hospital_admin.sql → schema_v3_fix_rls_recursion.sql → schema_v4_group_documents.sql → schema_v5_group_document_versions.sql → schema_v6_workspaces.sql → schema_v7_roles.sql → schema_v8_app_config.sql → schema_v9_gdpr.sql → schema_v10_audit.sql → schema_v11_analytics.sql → schema_v12_push_notifications.sql → schema_v13_custom_instruments.sql → schema_v14_security_hardening.sql → schema_v15_clinical_knowledge_model.sql → schema_v16_community_photos.sql → schema_v17_fix_anon_sterilization_read.sql → schema_v18_work_mode_favorites_recent.sql → schema_v19_core_domain_model.sql → schema_v20_organizations_rename.sql → schema_v21_teams_and_login_audit.sql → schema_v22_preference_card_versioning.sql → schema_v23_usage_analytics.sql → schema_v24_knowledge_links.sql → schema_v25_tray_preparation.sql → schema_v26_learning_progress.sql → schema_v27_contributors.sql → schema_v28_preference_card_constraints_fix.sql → schema_v29_public_library.sql → schema_v30_hospital_admin_promotion.sql → schema_v31_profile_security_hardening.sql → schema_v32_cssd_workspace.sql → schema_v33_public_knowledge_links_and_profile.sql → schema_v34_rpc_grants_hardening.sql → schema_v35_rpc_grants_hardening_fix.sql → schema_v36_public_growth_counter.sql → schema_v37_fix_stale_updated_at_triggers.sql → schema_v38_epic2_expansion.sql → schema_v39_custom_instrument_versioning.sql → schema_v40_duplicate_content.sql → schema_v41_invitations.sql → schema_v42_tray_adoption.sql → schema_v43_security_hardening.sql → schema_v44_storage_path_validation.sql → schema_v45_catalog_content_reports.sql → schema_v46_feature_suggestions.sql → → → → .app.instriq.org): Vercel. El repositori inclou vercel.json + vercel_build.sh — com que Vercel no porta Flutter preinstal·lat, l'script clona l'SDK stable a cada build, genera les localitzacions (flutter gen-l10n) i compila amb flutter build web --release. N'hi ha prou amb importar el repositori a Vercel (framework preset "Other") i connectar el subdomini des de Cloudflare amb un CNAME a cname.vercel-dns.com. lib/firebase_options.dart no es fa commit (veure .gitignore — claus de client Firebase, segures d'exposar només si estan restringides a Google Cloud Console, però cada entorn genera les seves en comptes de compartir un fitxer comú); vercel_build.sh el regenera en build time a partir d'aquestes variables d'entorn de Vercel (Project Settings → Environment Variables), amb els valors de l'app Web a Firebase Console → Project Settings → General:
FIREBASE_WEB_API_KEY, FIREBASE_WEB_APP_ID, FIREBASE_MESSAGING_SENDER_ID, FIREBASE_PROJECT_ID, FIREBASE_AUTH_DOMAIN, FIREBASE_STORAGE_BUCKET, FIREBASE_MEASUREMENT_ID.instriq.org i www.instriq.org): carpeta landing/, HTML estàtic sense build, servit per un Cloudflare Worker (Route instriq.org/* i www.instriq.org/*, tots dos registres DNS proxied). Català per defecte, amb selector ES/EN persistit a localStorage i a la URL (?lang=es/?lang=en) — cada variant té el seu propi hreflang/canonical, perquè els cercadors puguin indexar les tres versions, no només la catalana. Capçaleres de seguretat (landing/_headers: CSP, X-Frame-Options, HSTS...). Inclou la política de privacitat (landing/privacidad.html).targetSdk/compileSdk 36 (Android 16), requisit de Google Play des de 2026-08-31 — Flutter 3.44.8, AGP 9.0.1, Kotlin 2.3.20, Gradle 9.1.0, JDK 17. AAB signat generat (android/app/instriq-release.jks, android/key.properties no versionat); falta només la pujada manual a Play Console.v1.1.0 (2026-10-27). El projecte continua en desenvolupament actiu. Tot el que hi ha a la secció "Funcionalitats" de dalt ja està desplegat i funcionant en producció.
Instriq és gratuït i sense inversors, mantingut fora d'hores. Si et resulta útil, pots convidar-me a un cafè a Buy Me a Coffee — qualsevol aportació ajuda a cobrir el cost del servidor i el temps dedicat.
schema_v47_authz_null_bypass_fix.sqlschema_v48_public_instruments.sqlschema_v49_workspace_wizard.sqlschema_v50_public_translations.sqllib/services/supabase_config.dart. És pública/segura de fer commit — la seguretat real la dona Row Level Security, no el secret d'aquesta key.supabase/functions/send-push (supabase functions deploy send-push), afegeix el secret FCM_SERVICE_ACCOUNT_JSON (JSON del service account de Firebase) a Edge Functions → Secrets, i confirma que existeixi un Database Webhook o trigger que cridi aquesta funció en cada insert sobre audit_log (schema_v12 ja deixa el trigger llest si el teu projecte té pg_net).supabase/functions/send-invitation-email (supabase functions deploy send-invitation-email), afegeix el secret RESEND_API_KEY (diferent del SMTP que ja fa servir Supabase Auth per als seus propis correus), i configura al dashboard (Database → Webhooks) un webhook sobre insert a invitations que apunti a aquesta funció.schema_v43_security_hardening.sql): genera un valor aleatori, desa'l com a secret WEBHOOK_SHARED_SECRET a Edge Functions → Secrets (per a totes dues funcions), desa'l també a Supabase Vault amb el nom webhook_shared_secret (select vault.create_secret('<valor>', 'webhook_shared_secret', '...'), trigger_send_push() ja el llegeix d'allà), i afegeix la capçalera X-Webhook-Secret: <mateix valor> al webhook d'invitations que vas configurar al pas anterior.custom-instrument-photos existeix a Storage (la migració schema_v13 el crea; en alguns projectes cal crear-lo a mà des del dashboard amb el mateix nom).flutterfire configure (requereix un projecte Firebase) per generar lib/firebase_options.dart i el google-services.json/GoogleService-Info.plist de cada plataforma — cap dels tres es fa commit (veure .gitignore): són claus de client Firebase, no secretes en si mateixes, però cadascú les genera contra el seu propi projecte en comptes de compartir-ne un de comú. La protecció real d'aquestes claus és restringir-les a Google Cloud Console (paquet Android + SHA-1, bundle iOS, referrer HTTP a Web), no mantenir-les fora del repositori.