athul rdandClaude Opus 5.5 2dbd1a2ea9 Scalar Presence: brand-panel login (light/dark), Poppins, splash and launcher icons, fixed API base via dart-define, keep-signed-in, Android project
- Login reworked to the Brand panel layout with a dark-theme switch; 'Scalar Presence' two-line wordmark
- Android project now tracked (was gitignored); pins shared_preferences_android 2.4.27 (2.5.0 crashed with a black screen)
- API base URL fixed per build (--dart-define=API_BASE_URL), no in-app server setting

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 15:51:09 +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 .)

Android — android/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" />

iOS — ios/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
2.7 MiB
Languages
Dart 99.8%
Kotlin 0.2%