אנו מפתחים אפליקציות מובייל למעקב שעות הפותרות את בעיית הסימון הלא מדויק ומחלוקות עם מחלקת משאבי אנוש. סימוני נוכחות מבוססי מיקום עם מנגנוני אנטי-זיוף, מצב לא מקוון ואינטגרציה עם 1C — זה לא רק נוח, זה חוסך עד 15 שעות בחודש באימות דוחות נוכחות. הפתרונות שלנו משתמשים בטכנולוגיות ארגוניות: Swift 5.9+ / Kotlin + Jetpack Compose, Firebase, PostGIS. מעל 5 שנים בשוק, יותר מ-120 פרויקטים שהושלמו — אנו מבטיחים איכות ועמידה בלוחות זמנים. האפליקציה מחזירה את השקעתה בפחות מחודשיים על ידי הפחתת שגיאות בדוחות הנוכחות.
כיצד גיאו-גידור מבטיח סימון נוכחות מדויק?
גיאו-גידור הוא הבסיס לאנטי-זיוף. בעת סימון נוכחות, האפליקציה מוודאת שהמשתמש נמצא בטווח של N מטרים ממקום העבודה. iOS: CLLocationManager עם requestLocation() (מדידה בודדת, חוסכת סוללה) — דיוק של kCLLocationAccuracyNearestTenMeters. Android: FusedLocationProviderClient.getCurrentLocation(PRIORITY_HIGH_ACCURACY) מ-Google Location Services. דיוק בתוך מבנים משופר באמצעות טביעת אצבע של Wi-Fi: בעת סימון נוכחות, נאספת רשימה של BSSID ו-RSSI דרך NEHotspotHelper (iOS, דורש הרשאה) או WifiManager.getScanResults() (Android). אם ה-GPS אינו מדויק, אנו משווים מול טביעת האצבע הייחוסית של המשרד. גישה זו משפרת את דיוק זיהוי המיקום ב-40% בהשוואה לשימוש ב-GPS בלבד.
השוואת שיטות מיקום גיאוגרפי
| שיטה | דיוק | סוללה | בתוך מבנים |
|---|---|---|---|
| GPS | עד 3-5 מ' | גבוה | נמוך |
| טביעת אצבע Wi‑Fi | עד 10 מ' | נמוך | גבוה |
| NFC | מגע | ללא השפעה | מצוין |
למה להשתמש ב-NFC לסימון נוכחות?
לבקרה קפדנית — תגי NFC בכניסה. העובד מקרב את הטלפון לתג, האפליקציה קוראת NFCNDEFReaderSession (iOS) או NfcAdapter (Android) ומתעדת אוטומטית סימון נוכחות עם חותמת זמן. זיוף פיזי בלתי אפשרי. NFC מבטל את האפשרות לשעות "מנופחות" מרחוק — עד שהעובד מתקרב לתג, סימון הנוכחות אינו נספר. זה נותן דיוק של 100% בתיעוד זמן הגעה/יציאה.
מצב לא מקוון וסנכרון: איך זה עובד?
אתרי בנייה, מחסנים, צוותי שטח — האינטרנט לא יציב. כל סימוני הנוכחות חייבים להישמר מקומית ולהסתנכרן כשהרשת זמינה. אחסון מקומי: SQLite דרך Room (Android) או GRDB.swift (iOS). טבלת time_records: id (UUID, נוצר מקומית), type (check_in/check_out/break_start/break_end), latitude, longitude, wifi_bssids, timestamp, synced (בוליאני), sync_error. סנכרון ברקע: iOS — BGTaskScheduler עם BGAppRefreshTask. Android — WorkManager עם NetworkType.CONNECTED. במהלך סנכרון — העלאה אצווה של כל הרשומות הלא מסונכרנות, עם אידמפוטנטיות בצד השרת לפי client_id. מצב לא מקוון מגביר את אמינות מעקב השעות ב-30% בהשוואה לפתרונות הדורשים אינטרנט קבוע.
פרטים טכניים של סנכרון
קונפליקטים בסנכרון נפתרים לפי כלל "הכתיבה האחרונה מנצחת" תוך התחשבות ב-client_id. אם קיימים מספר שינויים, רשומת השרת מקבלת עדיפות. למעקב אחר מצב הסנכרון, נעשה שימוש בעמודות synced ו-sync_error. במקרה של שגיאת סנכרון (למשל, פסק זמן), הרשומה אינה מסומנת כמסונכרנת ומתבצע ניסיון חוזר בחלון הבא.
דוח נוכחות ודוחות: מה אפשר לקבל?
דוח הנוכחות הוא טבלת סיכום לתקופה. עבור כל עובד: תאריך, שעת הגעה, שעת יציאה, הפסקות, סה"כ שעות, סטטוס (בזמן/איחור/שעות נוספות). נוצר בשרת, הלקוח מקבל JSON מפולח לעמודים. ייצוא: PDF דרך WeasyPrint/Puppeteer בשרת או Excel דרך xlsxwriter (Python) / Apache POI (Java). הלקוח מוריד את הקובץ דרך URL עם טוקן חתום קצר מועד. ב-iOS — UIDocumentInteractionController לפתיחה/שיתוף. ב-Android — FileProvider + Intent.ACTION_VIEW. אינטגרציה עם 1C: 1C יכול לקבל נתונים דרך REST API (שירות HTTP) או דרך החלפת קבצים (CSV/XML בלוח זמנים). לאינטגרציה ישירה, נדרש מפתח 1C בצד הלקוח — אנו מכינים את ה-API עם מבנה הנתונים הדרוש.
מה אם עובד שוכח לסמן נוכחות?
תיקון ידני עם הערה חובה והודעה למנהל (push דרך FCM/APNs) הוא הכרחי. המנהל רואה את בקשת השינוי ומאשר או דוחה אותה. כל התיקונים מתועדים ביומן.
תפקידים ומבנה: איך להגדיר רמות גישה?
שלוש רמות: עובד (רואה את דוח הנוכחות שלו, מבצע סימונים), מנהל (רואה דוח נוכחות מחלקתי, מאשר תיקונים), משאבי אנוש/חשבונאות (גישה מלאה, ייצוא, הגדרת לוחות זמנים). אימות — JWT עם תפקיד ב-payload, נבדק בשכבת ה-API middleware. לוח עבודה (משמרות, גמיש, סטנדרטי 9-18) מוגדר בפאנל הניהול — האפליקציה משתמשת בו לחישוב איחורים ושעות נוספות.
מה כלול בעבודה?
- תיעוד: דיאגרמת ארכיטקטורה, תיאור API, הוראות משתמש.
- קוד מקור עם הערות, הגדרת CI/CD (GitHub Actions / GitLab CI).
- פרסום ל-App Store ול-Google Play בהתאם להנחיות הבדיקה של App Store ולמדיניות המפתחים של Google Play.
- הדרכת עובדים (עד 3 שעות של מפגשים מקוונים).
- 3 חודשים של תמיכה טכנית ותיקוני באגים.
צרו קשר כדי להעריך את הפרויקט שלכם. בקשו הדגמה כדי לראות את הפונקציונליות בפעולה.
השוואת גרסה בסיסית וגרסה מורחבת
| תכונה | גרסה בסיסית | גרסה מורחבת |
|---|---|---|
| סימון כניסה/יציאה ב-GPS | + | + |
| טביעת אצבע Wi-Fi | – | + |
| תגי NFC | – | + |
| מצב לא מקוון | – | + |
| אינטגרציה עם 1C | CSV בלבד | REST API |
| ייצוא PDF/Excel | Excel | שניהם |
| תמיכה | חודש אחד | 3 חודשים |
לוח זמנים ועלות
אפליקציה בסיסית (סימון כניסה/יציאה ב-GPS, דוח נוכחות, ייצוא) — 2-4 שבועות. עם NFC, טביעת אצבע Wi-Fi, מצב לא מקוון ואינטגרציה עם 1C — 6-10 שבועות. העלות מחושבת באופן אישי: מספר פלטפורמות, האם נדרשת גרסת web למשאבי אנוש, היקף האינטגרציות עם מערכות חיצוניות. קבלו ייעוץ — נחשב עבורכם הערכה מדויקת לפרויקט שלכם.







