Skip to main content

Constraints & Assumptions

Constraints

  • The attendance system is independent of payroll; downstream systems pull via the API.
  • An employee may be deployed across multiple organizations and multiple units.
  • Multiple shifts per day are allowed for a single employee but must not overlap in time.
  • Geo-fencing and device binding are per-unit configurable, not global.
  • All approval chains follow: Employee → ShiftManager → HR → SuperAdmin (override).
  • The system stores raw punches forever; derived attendance rows are idempotently recomputable from punches + rules + roster.

Assumptions

  • Employees carry a smartphone capable of running Flutter (Android 8+, iOS 13+).
  • Unit sites have at least intermittent mobile data. The Flutter app buffers punches locally when offline.
  • Each org unit has exactly one timezone (stored on the unit).
  • The calendar month is the atomic reporting and locking unit.
  • Holidays are configured at the organization level; unit overrides are allowed.
  • The Telegram bot runs on a single token provided by the client organization.