Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Web app per compilare i turni mensili dei dipendenti del comitato. Si apre da un link nel browser del computer, senza installare niente.
Con il back end attivo (Supabase, vedi docs/SETUP-SUPABASE.md) si entra con un account e i turni di ogni unità sono salvati online; senza, l'app funziona senza login con i dati nel browser.
Accesso utenti (con il back end attivo):
Accesso dei dipendenti (con il back end attivo):
Ambulanze e turni (scheda Impostazioni): ogni ambulanza ha un codice di 5 cifre e i suoi turni,
ciascuno con nome (es. GIORNO), sigla (es. G), ora di inizio e di fine e giorni della settimana
in cui è in servizio. Turnazione 24 ore imposta subito G 07–19 e N 19–07 tutti i giorni;
con + Turno si aggiungono fasce con orari diversi. Un turno che passa la mezzanotte conta come notte.
Senza modifiche c'è una sola ambulanza con G 07–19 e N 19–07 (come nelle versioni precedenti).
Visualizzazione con più ambulanze (scheda Impostazioni, sotto le ambulanze):
Tabellone mensile: una riga per dipendente e una colonna per giorno. Ogni casella può contenere:
G, N, G2);
con Maiusc+clic si aggiunge un turno a quelli già presenti nel giornoF: ferieM: malattiaP (mostrato come 104): permesso Legge 104 da 7,6 h, solo per i dipendenti con la 104 attivaR: richiesta di riposo, cioè il dipendente ha chiesto di non lavorare quel giorno (0 h);
la proposta automatica non mette mai turni in quel giornoC: formazione, con le ore indicate nel campo accanto al pulsantePeriodi: con Inserisci un periodo, sopra il tabellone, metti in un colpo solo una richiesta di riposo, ferie o malattia dal giorno X al giorno Y per un dipendente.
Inserimento veloce: scegli cosa inserire e clicca (o trascina) sulle caselle. Da tastiera ti muovi con le frecce e scrivi con la sigla di un turno di una lettera (es. G N) o con F M P R C (Canc cancella, Ctrl+Z annulla).
Vincoli controllati in tempo reale, con le caselle in errore evidenziate in rosso:
N seguita da una G il giorno dopo, né G e N nello stesso giorno.G G N N occupa 5 giorni: dal primo G al mattino dopo l'ultima N). Vale anche a cavallo tra due mesi
e il numero si cambia in Impostazioni. Ferie, riposi e formazione interrompono la serie.C) il giorno X,
un turno di notte del giorno prima (che finisce il giorno X) non è ammesso;104 · 2/3).Regole da evitare (superabili solo se non c'è alternativa, caselle in arancione):
G G N o G N N;Equilibrio: le colonne Notti e Weekend mostrano quanti ne ha fatti ciascuno. Il valore è evidenziato quando si discosta troppo dalla media, calcolata in proporzione al contratto.
Monte ore mensile per ogni dipendente:
Accanto al monte ore trovi le ore fatte e il saldo (+/−). Si può impostare anche un orario settimanale diverso, a scelta.
Copertura: sotto il tabellone, una riga per ogni turno di ogni ambulanza con quante persone ci sono
(2 richieste per turno, modificabile in Impostazioni); in rosso se mancano persone o l'autista,
– nei giorni in cui il turno non è previsto.
Volontari generici: cliccando un numero della copertura si mettono nel turno uno o più volontari senza nome,
autista soccorritore o soccorritore (sotto il numero compare per esempio 2V). Contano per la copertura e per
l'autista richiesto, la proposta automatica non mette dipendenti dove bastano, non hanno ore. In Excel compaiono come
VOL. AUTISTA / VOLONTARIO, nei turni pubblicati in una riga Volontari. Reset completo li toglie.
Proposta automatica: riempie i turni scoperti di tutte le ambulanze, nei giorni previsti,
senza toccare quelli già inseriti.
Rispetta sempre i vincoli e dà la precedenza a chi è più indietro con il monte ore.
In ogni turno mette prima un autista soccorritore e poi, se possibile, un soccorritore,
così gli autisti restano disponibili per gli altri turni.
Pianifica prima i weekend, poi i giorni feriali.
Cerca di formare blocchi G G N / G N N, di far lavorare la stessa persona sabato e domenica
e di distribuire notti, weekend e ore in modo equo. Poi prova a migliorare il mese con degli scambi
tra dipendenti. Supera le regole da evitare solo quando non c'è alternativa e lo segnala.
Turni bloccati 🔒: con lo strumento blocca (tasto L) blocchi le caselle che hai sistemato a mano. Il lucchetto accanto al nome blocca tutto il mese di un dipendente, Blocca mese blocca tutto. Una casella bloccata, anche vuota, non viene mai cambiata dalla proposta automatica né dal Reset completo, e non si modifica per sbaglio: va prima sbloccata.
Turni a mano e turni automatici: l'app ricorda quali turni ha inserito la proposta automatica (mostrati in corsivo) e quali hai scritto tu (normali). Se modifichi a mano un turno automatico, diventa tuo.
Stampa (A4 orizzontale).
Turni nel calendario (Google Calendar, iPhone, Outlook): file .ics con i turni del mese
(con orari e ambulanza; le notti finiscono il giorno dopo; la formazione come evento di tutto il giorno).
Esporta Excel: scarica il Tabellone turni in formato .xlsx, con lo stesso aspetto
di quello del comitato: logo e titolo, un gruppo di colonne per ogni turno di ogni ambulanza
(GIORNO | 12345, NOTTE | 12345, …; UR se il codice non è impostato), Note, EXTRA,
FORMAZIONE, MANIFESTAZIONI, ASSENZE, weekend in verde, pronto da stampare su A4 orizzontale.
Con una sola ambulanza 24 ore il foglio è identico al modello.
BETTEGA GI., BETTEGA CH.).Backup: i dati stanno nel browser. Con Scarica backup / Carica backup li salvi o li sposti su un altro computer.
L'app è online su https://turni-ambulanza.vercel.app.
In alternativa basta aprire index.html con un doppio clic.
Il sito è pubblicato da Vercel: a ogni modifica sul ramo di produzione viene aggiornato da solo, e per ogni pull request Vercel crea un'anteprima da provare prima di unirla. Non serve nessuna build: Vercel pubblica i file così come sono.
Con l'accesso utenti attivo (Supabase) i turni sono salvati online, separati per unità; senza, restano solo nel browser di chi usa l'app. Non caricare nel repository i file di backup (
turni-backup-….json), perché contengono i dati veri.
Si apre lo stesso link dal browser del telefono; la pagina si adatta allo schermo:
F M P R C, cancella e blocca;Non ci sono dipendenze né build: è HTML, CSS e JavaScript semplici.
npm test # test delle regole (Node 18+), eseguiti anche da GitHub Actions a ogni push
npm start # server locale su http://localhost:8080
js/rules.js: calcolo ore, vincoli e proposta automatica (senza DOM, testato)js/app.js: interfaccia del tabellonejs/requests.js: richieste dei dipendenti nel tabellone e copia pubblicata del mese (senza DOM, testato)js/staff.js: schermata del dipendente (turni pubblicati e richieste)js/ics.js: file di calendario .ics dei turni (senza DOM, testato)js/auth.js, js/config.js: accesso, registrazione, amministrazione e salvataggio online (Supabase);
js/vendor/supabase.min.js è supabase-js 2.45.4 (licenza MIT)api/admin-invite.js: funzione Vercel per l'inserimento manuale degli utenti (usa la chiave service_role)api/notify.js: funzione Vercel per le mail ai dipendenti (pubblicazione, richieste non accolte, riposi annullati da un 104), con
nodemailer (licenza MIT-0)supabase/schema.sql: tabelle e regole di sicurezza del database; supabase/test/ le prove su un Postgres locale:
psql -f supabase/test/mock_auth.sql -f supabase/schema.sql -f supabase/test/schema_test.sqljs/export-xlsx.js: tabellone in Excel; js/vendor/exceljs.min.js è ExcelJS 4.4.0 (licenza MIT)tests/rules.test.js: test delle regole; tests/requests.test.js: richieste e pubblicazione; tests/ics.test.js: calendarioR / 104 sottolineate (anche al posto di
turni messi dalla proposta automatica), e la proposta automatica le rispetta. Le richieste per un solo turno
compaiono come un piccolo segno ⌂G / ⌂N nella casella: si tolgono i turni automatici di quella parte e la
proposta automatica non ne mette altri. Se in quel giorno c'è già un turno
scritto a mano, la richiesta resta in sospeso e compare nei Controlli con Rifiuta la richiesta; se il
referente cambia a mano una casella che veniva da una richiesta, l'app chiede se rifiutarla. Nella finestra di
rifiuto si sceglie "Devo informare il dipendente?": se sì, si scrive la motivazione e il dipendente riceve una
mail con i giorni non accolti e il motivo.