rohit sharma
Published © CC BY-ND

Adding Geofencing Feature in TimeChart Mobile Attendance App

To integrate geofencing-based attendance tracking in the TimeChart mobile app, allowing employees to automatically mark attendance.

ExpertShowcase (no instructions)Over 2 days36
Adding Geofencing Feature in TimeChart Mobile Attendance App

Things used in this project

Hardware components

GPS receiver (generic)
×1

Software apps and online services

timechart

Story

Read more

Custom parts and enclosures

CAD Visualization

Schematics

System Schematic (Architecture Diagram)

Code

Mobile App (React Native - Geolocation + Distance Check)

JSX
import Geolocation from '@react-native-community/geolocation';

const checkDistanceFromGeofence = (userLat, userLng, fenceLat, fenceLng, radiusMeters) => {
  const toRad = (val) => val * Math.PI / 180;
  const R = 6371e3; // Earth radius in meters

  const φ1 = toRad(userLat);
  const φ2 = toRad(fenceLat);
  const Δφ = toRad(fenceLat - userLat);
  const Δλ = toRad(fenceLng - userLng);

  const a = Math.sin(Δφ/2) * Math.sin(Δφ/2) +
            Math.cos(φ1) * Math.cos(φ2) *
            Math.sin(Δλ/2) * Math.sin(Δλ/2);
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));

  const distance = R * c; // in meters
  return distance <= radiusMeters;
};

// Usage inside a function
Geolocation.getCurrentPosition((position) => {
  const { latitude, longitude } = position.coords;
  const isInside = checkDistanceFromGeofence(latitude, longitude, fenceLat, fenceLng, radius);
  if (isInside) {
    // Enable Punch-In Button
  } else {
    // Show "Outside location" warning
  }
});

Credits

rohit sharma
1 project • 0 followers

Comments