Every folder under lib, what each screen class is for, and which root documents are still accurate.
Root: appmint_go/appmint_mobile. 134 Dart files under lib/. Platform folders present: android, ios, web, macos, linux, windows.
lib/
| Folder | What lives there |
|---|
config/ | environment.dart (endpoints per environment), home_apps.dart (launcher tiles and groups), haho_theme.dart (live theme), theme.dart (unused indigo theme), app_config.dart (facade plus legacy constants no service uses), legal_urls.dart |
models/ | Typed models for the records the app edits; see Data models |
providers/ | The thirteen ChangeNotifiers registered in main.dart, plus DataProvider('<datatype>') for generic lists |
services/ | HTTP client, per-module API services, hardware services, thermal/ shim, storage, saved sessions, client info |
screens/ | One folder per module, listed below |
widgets/ | haho_navigation.dart, location_picker.dart, devices_indicator.dart and shared UI |
Screens
auth/
| Class | Purpose |
|---|
LoginScreen (login_screen.dart) | Org and email step, then password or magic code; saved-account tiles; the debug-only Fast Login button |
QuickSignInScreen (quick_signin_screen.dart) | Employee id + 6-digit passcode or NFC card tap; behaviour driven by the org's passcodeLoginSettings |
RegisterScreen | Email/password sign-up |
dashboard/, home/, more/, profile/, calendar/
| Class | Purpose |
|---|
DashboardScreen | Home: live lead/customer/ticket counts, the app launcher, grid/list toggle, location picker, devices indicator, active-event strip |
HomeScreen | The bottom-tab shell (IndexedStack) |
MoreScreen | Settings hub: Communications, Hardware, Security, System, Preferences, Help, Logout |
ProfileScreen | User info, logout, delete account |
CalendarScreen | Calendar tab surface (stateless) |
pos/, payments/
| Class | Purpose |
|---|
PosScreen (pos_screen.dart) | Multi-tab carts, product grid with day-part chips, line editing, transfer/split/print/save/fire/settle, refunds sheet |
CheckoutScreen + Tender (checkout_screen.dart) | Tender splitting, tips, receipt delivery |
TakePaymentScreen (take_payment_screen.dart) | One-amount charge that synthesizes a PosOrder with a QUICK-SALE line and hands off to checkout |
operations/
| Class | Purpose |
|---|
TabsScreen | Every open and closed tab at the location, grouped, with status chips |
FloorPlanScreen | Service points on an InteractiveViewer canvas at their authored x/y; unpositioned points fall to a wrap below |
ServicePointsScreen | Grid of service points, kind filter chips, group-by-parent, long-press for dirty/clear/blocked, grid/floor toggle |
ServicePointFormSheet | Create or edit a service point |
OperationsQueueScreen | Reservations manager: Today / Upcoming / Past, Check in, Cancel; no longer writes queue statuses onto reservations |
BookReservationScreen | Four-step booking stepper: definition, service + date, slot, customer |
CheckinScreen | Live queue board for stage-0 tasks of reservation-checkin-pipeline; Notify / Assign / Leave / No-show / Walk-in |
WorkflowTasksScreen | Generic pipeline board (kitchen display equivalent): pick a workflow, filter by station, advance or complete |
OperationsDashboardScreen | Manager SLA health from wait times and escalations |
events/
| Class | Purpose |
|---|
EventsScreen | Event list and picker |
EventDetailScreen | Tickets, sessions, participants and check-in for one event |
EventShellScreen | Tabbed admin shell: Overview / Scanner / Tickets / Schedule / People / More |
EventDashboardScreen | Live check-in and occupancy statistics |
ScannerScreen | Ticket QR scanner |
AccreditationScreen | Badge data and issuance |
ParticipantsScreen | Roster by type |
TicketsScreen, ScheduleScreen, InfoCenterScreen, ActivityScreen | Ticket list, session CRUD, info centre, activity log |
CRM and communications
| Folder | Classes |
|---|
leads/ | LeadsScreen, LeadDetailScreen, LeadFormScreen, AddLeadScreen |
contacts/ | ContactsScreen (All / Appmint / Device tabs), ContactDetailScreen (edit and add-note are stubs) |
customers/ | CustomerJourneyScreen — activity timeline and insights |
tickets/ | SupportTicketsScreen, TicketFormScreen |
tasks/ | TasksScreen, TaskFormScreen |
meetings/ | ScheduleMeetingScreen |
inbox/ | InboxScreen (Conversations / All Messages, channel chips), ConversationScreen |
messages/ | EmailComposerScreen (Quill), SmsComposerScreen, SmsConversationsScreen |
chat/ | LiveChatScreen (Inbox / Queue / AI Chats / Customers / Agents), ChatConversationScreen (takeover, assist AI, resume AI, end chat), LivePresenceScreen |
phone/ | PhoneScreen — Keypad / Recent / Contacts softphone |
social/ | SocialActivityScreen — comments, messages and engagement from synced social accounts |
customer/ | WaitStatusScreen — the guest-facing "where am I in line" page reached by QR or SMS |
scanner/ | CodeScannerScreen — generic QR/barcode scanner that pops the value |
settings/
| Class | Configures |
|---|
DevicesScreen | Peripheral index with live status |
PaymentsScreen | Five-step Stripe Terminal reader pairing: Location, Prepare, Scan, Pairing, Done |
PrinterSettingsScreen | Thermal printer pairing, paper width, test print |
ScannerSettingsScreen, ScannerPairingScreen | Camera switch, HID capture switch, BLE scanner pairing |
NfcReaderPairingScreen | Bluetooth NFC reader for devices without NFC |
PasscodeScreen | Your own quick-login passcode and linked employee id |
CardManagementScreen | Admin: issue, revoke and replace NFC access cards |
MenuManagementScreen | Day-parts and the 86 list per location |
HomeLayoutScreen | Hide apps or groups on this device |
Root documents
| File | Status |
|---|
README.md | Architecture and feature list. Stale: claims Hive offline caching that does not exist |
USAGE_GUIDE.md | Quick start, auth flow and a lead walkthrough. Describes the older lead-centric app |
ENVIRONMENT_CONFIG.md | Environment matrix and build commands. Stale: lists localhost:3300 for development; the code uses 192.168.1.239:3300 |
HARDWARE_OFFERINGS.md | Shop-in-a-Box mobile and desktop units, add-on matrix, and a Publish Status section separating shipping from roadmap |
STORE_LISTING.md | Play and App Store fill pack. Stale: version listed as 1.0.0 (1); pubspec is 1.0.2+9 |
CHANGELOG.md, PROJECT_SUMMARY.md | Release notes and summary |
TEST_BUSINESSMADE_2026-09-02.md | The most recent manual test pass; source for Known issues |
`certs/` holds live credentials
The folder contains the VoIP push key, CSR, .p12, .pem and a Firebase admin SDK JSON, committed in-tree. Treat the repository as sensitive and rotate anything that has been shared.