Omnigraph
Graph engine for context assembly. Object-storage native. Agents work with graph data the way engineers work with code: branched, typed, reviewed, merged, audited, and governed.
מפה מבצעית ליחידת סע״ר שדרות – קליטה והנגשה של נתונים בשגרה ובחירום
Translation pending
DataGitHub @hitprojectscenter-beepOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗מערכת GIS ליחידת סע״ר (סיוע עצמי ראשוני) שדרות. מפה מבצעית שעובדת גם בלי רשת, לקליטה ולהנגשה של נתונים בשגרה ובזמן אירוע אמת: רעידת אדמה, פגיעת טיל ואירועי חירום אחרים.
| תפקיד | role | הרשאות |
|---|---|---|
| כל אחד, ללא כניסה | – | צפייה במפה, בנתונים ובתמונות, חיפוש וייצוא |
| אחראי GIS | gis | הזנה ועריכה, מחיקת כל נתון, עדכון שכבות בסיס |
| מפקד היחידה | commander | הזנה ועריכה, מחיקת כל נתון |
| סגן מפקד היחידה | deputy | הזנה ועריכה, מחיקת כל נתון |
| מפקדי צוותים 1–4 | team | הזנה ועריכה, מחיקת נתונים שהם יצרו |
הסיסמאות אינן נשמרות בקוד. הן נשמרות כגיבוב (scrypt) במשתנה הסביבה USERS_JSON ב-Vercel.
users.local.json. הקובץ מוחרג מ-git, ואין להעלות אותו:
[
{ "username": "GIS_Admin", "password": "סיסמה-חדשה", "role": "gis" },
{ "username": "GROUP1_Admin", "password": "…", "role": "team", "team": 1 }
]
node scripts/hash-users.mjs users.local.json.USERS_JSON בהגדרות הפרויקט ב-Vercel ומבצעים Redeploy.public/ אפליקציית הרשת (PWA): HTML, CSS ו-JS ללא שלב build
js/layers.js קטלוג השכבות והמסווג האוטומטי (משותף לשרת ולדפדפן)
js/sync.js סנכרון, תור שינויים במצב לא מקוון (IndexedDB)
js/citymap.js ציור „מפת העיר” בסגנון המפה המודפסת
js/osm.js המרת נתוני OpenStreetMap לשכבות הבסיס
sw.js Service Worker: קבצי האפליקציה, אריחי מפה ותמונות במצב לא מקוון
api/ פונקציות Vercel (Node.js)
login, logout, me התחברות (cookie חתום)
features קריאה וכתיבה של הנתונים (כתיבה אטומית עם ETag)
photo העלאה והצגה של תמונות
base שכבות בסיס
city מפת העיר: טעינה מ-OpenStreetMap (בשרת) והגשה
govmap רשימת השכבות הפתוחות של GovMap
האחסון הוא Vercel Blob פרטי. כל הנתונים נשמרים במסמך JSON אחד. כל כתיבה מתבצעת כ-compare-and-swap (ifMatch), כך ששני משתמשים ששומרים באותו רגע לא דורסים זה את זה. בפיתוח מקומי, כשאין טוקן, הנתונים נשמרים בתיקייה .data/.
USERS_JSON ו-AUTH_SECRET (הערכים נוצרים כמתואר למעלה) לסביבת Production.BLOB_READ_WRITE_TOKEN נוסף אוטומטית.| משתנה | תיאור |
|---|---|
USERS_JSON | המשתמשים המגובבים (ראו למעלה) |
AUTH_SECRET | מחרוזת אקראית של 32 תווים לפחות, לחתימת ה-session |
BLOB_READ_WRITE_TOKEN | נוסף אוטומטית כשמחברים Blob Store לפרויקט |
npm test # בדיקות יחידה (מסווג, שכבות, יומן ודו״ח אירוע)
npm run qa # בדיקות מלאות: שרת מקומי עם משתמשי בדיקה ונתונים סינתטיים, ~90 בדיקות API ובדיקות דפדפן בטלפון/טאבלט/מחשב
משתמשי הבדיקה (tests/fixtures/test-users.json) הם לבדיקות בלבד; הסיסמאות האמיתיות לעולם אינן בקוד.
מדיניות CSP (אין קוד מוטמע; האתר אינו ניתן להטמעה באתר זר), עוגיית התחברות HttpOnly + SameSite, האטה וחסימה זמנית אחרי 8 ניסיונות כניסה שגויים, הסתרת פרטים אישיים מצופים, ובדיקת קלט בשרת לכל כתיבה.
npm install
npm run vendor # מעתיק את Leaflet ואת Geoman ל-public/vendor
npm test # בדיקות המסווג האוטומטי
AUTH_SECRET=$(openssl rand -hex 32) USERS_JSON="$(node scripts/hash-users.mjs users.local.json)" npm run dev
# http://localhost:3000