2026-08-10 17:01:30 +05:30
2026-08-10 17:01:30 +05:30
2026-08-10 17:01:30 +05:30
2026-08-10 17:01:30 +05:30
2026-08-10 17:01:30 +05:30
2026-08-10 17:01:30 +05:30
2026-08-10 17:01:30 +05:30

Scalar360 Attendance (Flutter) — Employee self-service

Per-employee mobile app for Scalar360 People Operations. Employees sign in with their work email + PIN and:

  • Clock in / out with GPS geo-fence (and optional selfie)
  • View leave balances, apply for leave, track requests
  • View payslips
  • Managers additionally approve their team's leave and see the team's status

Separate app — no relation to fist_attendance. Talks only to the Scalar360 API using a dedicated employee auth (/api/v1/employee/auth + /api/v1/me).

Employee app ──(employee JWT)──▶ https://api.scalar360.in
  sign in        POST /api/v1/employee/auth/login   { identifier: email, pin }
  clock in/out   POST /api/v1/me/attendance/check-in|check-out   { lat, lng, selfie? }
  my leave       GET/POST /api/v1/me/leave/...
  payslips       GET /api/v1/me/payslips
  team (manager) GET /api/v1/me/team, /me/team/leave, approve|reject

Setup (HR, once per employee)

In the Scalar360 web app: People Operations → Employees → open employee → Account & access → set a Login email, choose Role (Employee/Manager) and Reporting manager, save, then Generate login PIN and share it with the employee. Set the office geo-fence in People Operations → Settings → Attendance (office latitude/longitude, radius, Require geo-fence).

Build & run

cd scalar_attendance
flutter create .        # generates android/ ios/ (keeps lib/ & pubspec.yaml)
flutter pub get
flutter run             # use a real device for GPS + camera

Permissions (add after flutter create .)

Androidandroid/app/src/main/AndroidManifest.xml inside <manifest>:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />

iOSios/Runner/Info.plist:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Used to confirm you are at the office when you check in.</string>
<key>NSCameraUsageDescription</key>
<string>Used to capture a selfie when you check in.</string>

Notes

  • Requires an employee account with a login email + PIN (set by HR as above).
  • Geo-fence is enforced by the server: if Require geo-fence is on, a check-in outside the office radius is rejected with the distance.
  • The full PDF payslip is available on the web portal; the app shows the breakdown.
S
Description
No description provided
Readme
48 KiB
Languages
Dart 100%