arch-atlas
This is the print-ready handoff document — use your browser's Print → Save as PDF to export it for the client.

Project handoff

Ukan

Coaching & fitness app — onboarding/auth, home dashboard, training runner, nutrition logging, coaching, community feed, chat and profile. Product flows + per-screen API requests.

Stack
Flutter · GetX · flutter_better_auth · Medusa · OpenIM

Authentication & Onboarding

in progress

First-launch language choice and onboarding, email/Google sign-in, a role split into a 7-step client questionnaire or 12-step coach questionnaire, email-OTP verification, and OTP-based password reset.

Flutter · GetX · flutter_better_auth · Google Sign-In · email-OTP

Screens

Welcome to Ukan
English
Français
العربية
Continue
WIREFRAME
First launch — choose language
Skip
Track. Train. Transform.
Next
WIREFRAME
Onboarding carousel
Sign inForgot password?Sign in
Continue with GoogleNew here? Create an account
WIREFRAME
Login
Sign in
WIREFRAME
Login — submitting · loading
Sign in
!Invalid email or password
Sign in
WIREFRAME
Login — invalid credentials · error
Create account
I am a…
Client
Coach
Already have an account? Sign in
WIREFRAME
Register — choose role
Your goal
Step 1 of 7
What's your main goal?
Lose weight
Build muscle
Stay fit
Improve health
Continue
WIREFRAME
Client onboarding — goal (step 1/7)
Create your account
Step 7 of 7
I accept the Terms of Service
Create account
WIREFRAME
Client onboarding — create account (step 7/7)
About your coaching
Step 8 of 12
In-personOnlineHybrid
Continue
WIREFRAME
Coach onboarding — coach info (step 8/12)
Application received
Pending review
Back to home
WIREFRAME
Coach — pending verification · success
Verify your email
Enter the 6-digit code
Resend codeVerify
WIREFRAME
Verify email — OTP
Verify your email
!Invalid or expired code
Enter the 6-digit code
Resend codeVerify
WIREFRAME
Verify email — wrong code · error
Reset password
Forgot your password?
Send code
WIREFRAME
Reset password — enter email
Reset password
Enter the code we sent
Resend codeVerify code
WIREFRAME
Reset password — verify OTP
New password
Reset password
WIREFRAME
Reset password — new password

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Home Dashboard & Health Trackers

in progress

The Home tab: a daily summary card, main/weekly/global objectives, and drill-in trackers for steps, sleep, hydration and weight — each syncing to the Medusa health endpoints.

Flutter · GetX · Medusa core · Health Connect / Apple Health

Screens

Hi, Alex
TodayHistory
6,120Steps
1.4 LWater
7h 10mSleep
Main goal — lose 8 kg
72% this week
Trackers
WIREFRAME
Home dashboard
Home
Loading your day…
WIREFRAME
Home dashboard — loading · loading
Hydration
1.65 / 2.5 L
Quick add
+250 ml+500 ml+1 glass
Today's logs
+
WIREFRAME
Hydration tracker
Hydration
+250 ml added
1.9 / 2.5 L
+
WIREFRAME
Hydration — added · success
Weight
78.5 kgCurrent
74 kgTarget
18.2%Body fat
History
+
WIREFRAME
Weight tracker
New weigh-inSave
WIREFRAME
Weight — add entry
Sleep
7h 35mLast night
7h 05mAvg
History
+
WIREFRAME
Sleep tracker
History
WeekMonth
WIREFRAME
Daily history
Weekly objectives
Steps
Daily steps target
Hydration
Daily water (ml)
Save objectives
WIREFRAME
Objectives settings

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Training & Workout Runner

in progress

Browse and build training programs, run a live workout logging reps/weight per set, rate perceived difficulty, and review training + per-exercise reports.

Flutter · GetX · Medusa core (/v1/training)

Screens

Programs
Current — Full-Body Beginner
Day 2 of 6
Search programs
AllBeginnerStrengthCardio
+
WIREFRAME
Programs
Programs
No programs yetCreate a program
WIREFRAME
Programs — empty · empty
Full-Body Beginner
Beginner6 days
Days
Start this program
WIREFRAME
Program detail
Day 2 — Push
Exercises
Start workout
WIREFRAME
Day detail
Bench Press
How-toMusclesReport
ChestTriceps
WIREFRAME
Exercise detail
New program
DaysAdd day
Create program
WIREFRAME
Create program
Add exercise
Search exercises
ChestBackLegsArms
Add selected
WIREFRAME
Add exercise
Push day
5Exercises
45 minEst. time
18Sets
Today's exercises
Begin workout
WIREFRAME
Workout — start
Bench Press — Set 2/4
Set 1
Set 2
Set 3
Set 4
Reps
8+
Weight (kg)
72+
Complete setRest 90s
WIREFRAME
Workout — active set
Rest
01:12
Next: Set 3
Skip rest
WIREFRAME
Workout — rest
Workout complete!
46 minTime
5,120 kgVolume
18Sets
Great session, Alex!
Rate difficultyDone
WIREFRAME
Workout — complete · success
How hard was it?
6.8Avg RPE
SquatHardest
Save rating
WIREFRAME
Difficulty report

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Nutrition & Meal Logging

in progress

A daily macros dashboard, a searchable food library with custom foods, meal logging into the current plan, and multi-day food plans with completion tracking.

Flutter · GetX · Medusa core (/v1/nutrition)

Screens

Nutrition
Today
1,420 / 2,200Calories
96 gProtein
150 gCarbs
Daily goal 65%
MealsHistory
+
WIREFRAME
Nutrition dashboard
Foods
Search foods
AllFavoritesRecent
+
WIREFRAME
Food library
Greek Yogurt
118 kcalCalories
20 gProtein
0.8 gFat
Serving (g)
200+
Add to meal
WIREFRAME
Food detail
New food
Per 100 g
Save food
WIREFRAME
Create custom food
Food plans
+
WIREFRAME
Food plans
New plan
Number of days
7+
Daily targets
Create plan
WIREFRAME
Create food plan
Cutting 2200
Day 1Day 2Day 3
Meals
Breakfast
Lunch
Dinner
Snack
Mark day complete
WIREFRAME
Food plan detail
History
WeekMonth
WIREFRAME
Nutrition history

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Coaching — Discovery & Coach Dashboard

in progress

Clients search and subscribe to coaches (list + map, filters by state/session-type); coaches run a vendor dashboard to accept/assign clients and set booking availability. Plus an Advanced feature grid (mostly coming-soon) with a live community chat.

Flutter · GetX · Medusa store/vendor · OpenIM (community)

Screens

Find a coach
Search coaches
ListMap
All statesOnlineIn-person
WIREFRAME
Find a coach — list
Find a coach
Search coaches
All statesOnlineIn-person
No coaches match these filtersClear filters
WIREFRAME
Find a coach — no results · empty
Coaches near you
ListMap
Sam Coach · 2.4 km
WIREFRAME
Find a coach — map
Sam Coach
Sam CoachStrength & conditioning
OnlineIn-person
3500 DZD/ month
SubscribeMessage
WIREFRAME
Coach profile
Sam Coach
Request sent — awaiting coach
Pending
Message coach
WIREFRAME
Subscribed · success
Advanced
Switch to coach mode
Search features
FreemiumPremiumAI
WIREFRAME
Advanced space
Coming soon 🚀
Coming soon
Understood
WIREFRAME
Advanced — coming soon · empty
Community
Anyone training legs today?
Me! 6pm 🔥
Let's go 💪
WIREFRAME
Community chat
Coach dashboard
14Clients
3Pending
48.5kRevenue
Manage
WIREFRAME
Coach dashboard
Clients
ActivePending
WIREFRAME
Coach — clients
Alex Demo
Alex DemoGoal: build muscle
Pending
78.5 kgWeight
15Workouts
Assign program
Accept clientReject
WIREFRAME
Coach — client detail
Availability
This week
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Hours
Save availability
WIREFRAME
Coach — availability

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Publications & Community Feed

in progress

A social feed of posts and stories with likes, comments and follows; before/after transformation posts; and coach 'memos'. Media is uploaded to the public files endpoint before posting.

Flutter · GetX · Medusa core (/v1/social)

Screens

Feed
Stories

Sam Coach
Mia
+
WIREFRAME
Feed
Feed
No posts yet — follow coaches or share somethingCreate a post
WIREFRAME
Feed — empty · empty
Post
Sam Coach2h ago
❤ 13💬 3
Comments
Nice work!
Great progress 💪
WIREFRAME
Post detail
New post
PublicFollowersPrivate
Share
WIREFRAME
Create post
WIREFRAME
Story viewer
New story
CameraGalleryText
Add to story
WIREFRAME
Create story
Memos
AllHealthTrainingNutrition
+
WIREFRAME
Memos

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Chat & AI Assistant

in progress

Real-time 1:1 conversations with coaches/participants over OpenIM, in-app message notifications, and a draggable AI chatbot that streams answers from the RAG assistant.

Flutter · GetX · OpenIM SDK (WS) · RAG assistant (SSE)

Screens

Messages
Search conversations
WIREFRAME
Conversations
Messages
No messages yet — subscribe to a coach to start chattingFind a coach
WIREFRAME
Conversations — empty · empty
Sam Coach
How did the workout go?
Crushed it 💪
Let's bump the weight next time
WIREFRAME
Chat
Ukan Assistant
How much protein to build muscle?
Aim for ~1.6–2.2 g per kg of bodyweight…
Assistant is typing…
WIREFRAME
AI assistant
Ukan Assistant
!Please sign in to use the assistant
Assistant needs an active sessionSign in
WIREFRAME
AI assistant — signed out · error

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.

Profile, Settings & Support

in progress

View/edit the customer profile, log body measurements and view connections; manage app settings (theme, language, units), notification preferences, security (change password, delete account) and a support/FAQ centre.

Flutter · GetX · Medusa store · better-auth

Screens

Profile
Alex Demo@alexdemo
42Followers
18Following
15Workouts
PostsProgressSaved
+
WIREFRAME
Profile
Edit profile
Alex Demo
Change photoSave changes
WIREFRAME
Edit profile
New measurementSave
WIREFRAME
Body measurements
Connections
FollowersFollowing
Search
WIREFRAME
Connections
Settings
Alex Demoalex.demo@example.com
Preferences
Dark mode
MetricImperial
Account
Log out
WIREFRAME
Settings
Notifications
Coach messages
Workout reminders
Nutrition reminders
Social activity
Community
WIREFRAME
Notification settings
Security
Account
Danger zone
Delete account
WIREFRAME
Security
Change password
Update password
WIREFRAME
Change password
Delete account
This permanently deletes your data
Delete my account
WIREFRAME
Delete account
Support
FAQContact
Search help
How do I reset my password?
How do I subscribe to a coach?
How is my data used?
WIREFRAME
Support & FAQ

Presentation layer

Screens · UI · user-facing flows

Product surface documented from the app: every screen, the user flows that link them, and the API calls each screen fires — hover a screen card in any flow to see the request headers + body. Domain / data / DI nodes are pending the architecture-extraction pass.