No description
  • Dart 92.2%
  • HTML 7.7%
Find a file
2026-09-13 17:12:02 +07:00
.agents/skills Update chat realtime update ui 2026-07-30 00:23:59 +07:00
.aipass update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
.claude update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
.vscode Update chat realtime update ui 2026-07-30 00:23:59 +07:00
android Update chat realtime update ui 2026-07-30 00:23:59 +07:00
assets/images feat: update UI, reports, API integration, and maps 2026-07-24 22:30:20 +07:00
config Update chat realtime update ui 2026-07-30 00:23:59 +07:00
dropbox update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
ios fix profile change password 2026-08-09 23:09:21 +07:00
lib update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
reference fix profile change password 2026-08-09 23:09:21 +07:00
src/cloudmatehr_app update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
test update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
.gitignore Update Api - update padding - update 2026-07-24 16:22:57 +07:00
.metadata Initial commit 2026-07-11 23:13:17 +07:00
AGENTS.md update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
analysis_options.yaml Initial commit 2026-07-11 23:13:17 +07:00
build feat(i18n): add multilingual support (TH, LO, ZH, VI, EN) 2026-07-26 00:29:38 +07:00
CLOUDMATEHR-APP_REGISTRY.json update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
pubspec.lock fix profile change password 2026-08-09 23:09:21 +07:00
pubspec.yaml fix profile change password 2026-08-09 23:09:21 +07:00
pyproject.toml update navigation bar - update Notification 2026-09-13 17:12:02 +07:00
README.md Update chat realtime update ui 2026-07-30 00:23:59 +07:00
skills-lock.json Update chat realtime update ui 2026-07-30 00:23:59 +07:00

CloudMate HR

Flutter client for the CloudMate public API.

Run

The mobile app authenticates users with email and password, then uses the returned bearer token for API requests.

For local integration testing with a platform API key:

cp config/local_defines.example.json config/local_defines.json
flutter run --dart-define-from-file=config/local_defines.json

Set CLOUDMATE_API_KEY and CLOUDMATE_ORG_SLUG in the ignored local file. CLOUDMATE_ORG_SLUG is mandatory when a platform key can access more than one workspace; the app never guesses between multiple organizations. Platform keys are for local/server-side integration only and must not be committed or shipped in a production mobile binary. Release builds disable API-key preview even when a key is supplied accidentally. Production mobile users authenticate with their own bearer session, which the app stores in the device keychain/secure storage.

Set CLOUDMATE_LIVE_REFRESH_SECONDS to tune the REST polling fallback used only while the realtime connection is unavailable. The app clamps the value between 5 and 300 seconds; the default is 15 seconds.

While the chat tab is open and server push is unavailable, the selected conversation uses a separate, lightweight REST sync every second by default. Set CLOUDMATE_CHAT_LIVE_SYNC_SECONDS to tune it between 1 and 10 seconds. This keeps conversations responsive on API deployments that do not provide server push.

For true server-push updates, set CLOUDMATE_REALTIME_URL to the deployment's documented ws:// or wss:// endpoint. The app intentionally does not guess a WebSocket path from the REST base URL. The app subscribes to attendance, tasks, notifications, reports, chat, feed, requests, learning, activity, HR, and workspace events through this one connection.

Set GIPHY_API_KEY to enable the searchable online GIF catalog. Create and manage the key in the GIPHY developer dashboard. Use a separate key for each production platform. GIPHY search runs client-side, so this key is embedded in the app and must be treated as a public, rate-limited identifier rather than a secret.

The chat also accepts a direct HTTPS URL ending in .gif when the catalog key is not configured. Online GIFs are sent and rendered from their source URL; CloudMate does not download or re-host GIPHY media.