Root: appmint_go/event_app. Platform folders present: android, ios, web, macos, windows, linux. scripts/ holds Node seed and fix utilities; test/ holds only the scaffold widget_test.dart.
lib/
| Folder | Contents |
|---|---|
config/ | environment.dart (endpoints, app credentials, org per environment), app_config.dart (re-export facade), haho_theme.dart, app_colors.dart, legal_urls.dart |
models/ | user_model.dart, auth_response.dart |
providers/ | auth_provider.dart, event_provider.dart |
services/ | http_client.dart, api_service.dart, storage_service.dart, community_chat_service.dart, media_upload_service.dart, activity_tracking_service.dart, client_info_service.dart, stripe_service_mobile.dart (with a web stub) |
widgets/ | share_sheet.dart, media_manager.dart, story_bar.dart, person_card.dart, user_avatar.dart, haho_navigation.dart (unused by the live shells) |
screens/auth/, screens/customer/, screens/shared/ | Below |
Screens
auth/
| Class | Purpose |
|---|---|
LoginScreen | Email and password; remembers the last email; inline 2FA code card; Forgot Password and Sign Up links; kDebugMode-only Fast Login |
RegisterScreen | Email, password with confirmation, first and last name |
ForgotPasswordScreen | Sends a temporary password (strategy=temporary_password) |
ChangePasswordScreen | Forced after a temporary-password login; current password prefilled from AuthProvider.pendingPassword |
customer/ — shells and events
| Class | Purpose |
|---|---|
PublicEventsShell | Signed-out shell around EventsScreen |
EventShell | Signed-in, event-scoped shell with tabs and drawer; owns shellScaffoldKey |
CustomerShell, CustomerHomeScreen, DiscoverScreen | Unreachable from the live navigation graph |
MyEventsScreen | Post-login home; one card per ticketed event; its own drawer (Profile, All Tickets, Browse Events, legal, Help, About, Log out) |
EventsScreen | Public catalogue → EventDetailScreen |
EventDetailScreen | Public event page: image carousel, meta, About, schedule, venue and zones, speakers, ticket-type cards, "Get Tickets" → _PurchasePage, banner into EventShell |
EventHomeScreen | In-event home: carousel, badge, title, date and time with timezone, address, venue, website, stat chips, quick actions (My ticket, Schedule, People, Media), tickets strip, About, organizers, people rows, tracks, zones |
ScheduleScreen | table_calendar week or month, sessions bucketed by day, track pills, session cards → SessionDetailScreen |
SessionDetailScreen | Title, type, status, description, day and times, track, room, zone, capacity, tags |
MediaGalleryScreen | Event media grid with full-screen viewer |
TicketScreen | Wallet: QR per ticket, pinning (pinned_ticket_id), full-screen QR, View Event, Assign to someone |
BookingSummaryScreen | Post-purchase confirmation with per-ticket QR, transfer, share |
customer/ — people and community
| Class | Purpose |
|---|---|
PeopleScreen | Directory with type chips (all, speaker, sponsor, exhibitor, vip, attendee, volunteer, press), search, 50-per-page infinite scroll, Connect / Follow / Message per card. Also hosts ParticipantProfilePage and _ScheduleMeetingPage |
ParticipantProfilePage | Profile with role badge, status chips, topics, social, sessions (ids resolved to titles), Connect, Message, Meet, follow |
FeedScreen | Community feed for the event's page: stories bar, composer row, posts with media, polls, like, comment, share sheet, bookmark, repost preview, owner menu |
CreatePostScreen | Text, image, poll or link; media via MediaManager; poll builder |
PostDetailScreen | Post with threaded comments, like, save, share sheet |
InboxScreen | Messages (threads) and Notifications tabs; _NewMessageScreen picks a connection |
ChatScreen | One-to-one chat over the socket with REST fallback; image messages |
ConnectionsScreen | Connections, pending and sent lists, stats, accept and reject, message |
MeetingsScreen | Upcoming and All; respond and cancel |
BookmarksScreen | Saved items with a targetType filter |
AnnouncementsScreen(pageId) | Page announcements — not referenced from any other screen |
SearchScreen | Posts (hashtag and trending), people (placeholder), events, pages |
MeScreen | Own profile with Posts, Media library and About tabs; Edit Profile; QR |
ProfileScreen | Profile card, details, expertise, social, legal and support, log out, two-step Delete account |
EditProfileScreen | Names, bio, company, job title, phone, city, country |
QRProfileScreen | Personal connect QR encoding community:connect:<email> |
Root documents
| File | What it is |
|---|---|
README.md | Untouched Flutter template; no project content |
COMMUNITY_PLATFORM.md | Design note for the community as a standalone platform: pages, the shared-feed model, the thirteen community_* schemas and the /client/community controller the app now consumes |
doc.md | Early requirements spec for a "Luma-style" event app captured from a chat transcript; product background, not current state |
STORE_LISTING.md | Play Console fill pack under the name EventOS (package com.appmint.event_app). The shipped binaries are labelled EventOxygen; the naming drift is real |
TEST_EVENTOXYGEN_2026-09-03.md | The most recent manual test pass; source for Known issues |
scripts/
seed_data.js, seed_participants.js, fix_images.js and variants, fix_participants.js, upload_avatars.js — Node utilities that populate an organization with demo events, participants and images. They are how the demo org got its 94 participants and 70 sessions.