All designs android-starter / designs
Clinicana
Design concept

The whole CRM, in a hand

Clinicana is a patient-lead CRM for a hair-transplant clinic — a dense desktop tool with a 230px nav rail, an eleven-column lead table and sixty-four pages. This is its phone counterpart, drawn from the running product: its real logo, its measured palette, its thirteen-status colour language and its own wording. Not the web app shrunk — the same job, redesigned for a translator working a lead between clinic rooms.

Light + dark, both first-class 5-tab bottom navigation 13 lead statuses · 3 lead types 5 roles · permission-aware 23 locales · RTL 94 screens × 2 themes
Designed from the running product Nothing here was guessed. The palette was probed from the live SPA's computed Vuetify variables in both modes; the lead statuses,…

Nothing here was guessed. The palette was probed from the live SPA's computed Vuetify variables in both modes; the lead statuses, their colours and their overdue SLAs come from LeadStatusSeeder.php; the icons are the product's own Tabler set; the logo is frontend/public/logo.png; and every screen was drawn against a screenshot of the corresponding real page.

Getting in

3

The app opens on the brand mark, signs in with the product's own two fields, and says plainly when a role cannot see something.

Splash
01

Splash

The Clinicana mark while the session token is validated and the lead-status settings are fetched.

Login
02

Login

The product's exact sign-in: Email or Username, Password, Remember me — plus biometric unlock, which only a phone can offer.

Access Denied
03

Access Denied

What a translator sees when a permission gate closes, naming the permission rather than dead-ending.

Home

5

One route, three products. The web dashboard branches on REP_ADMIN_DASHBOARD_STATS and the admin role; the phone keeps all three variants because a translator's home is a work queue, not an analytics page.

Home · admin
04

Home · admin

The four KPI cards with their API/Manual split, the pipeline, an SLA alert the desktop only implies, and the status-change feed.

Home · translator
05

Home · translator

My Day: the four numbers that decide a translator's morning, then overdue leads, today's reminders and unconfirmed todos.

Home · reporter
06

Home · reporter

A reporter holds the stats permission but not the admin role, so every widget below the KPI row disappears — shown honestly, with the reports they can reach.

Notifications panel
07

Notifications panel

The navbar bell as a bottom sheet: fast triage of reminders and overdue leads without leaving the screen.

Account menu
08

Account menu

Identity, role, locale, theme and sign-out — the avatar dropdown, re-cut as a sheet.

Leads

15

The web table carries eleven columns. Each lead becomes a four-line card that keeps every one of them, with status doubled as a left spine so the pipeline reads at a scroll.

Leads List
09

Leads List

Search, List/Pipeline, an active-filter count, and cards that keep all eleven columns. Unassigned rows carry the web table's amber wash.

Filters
10

Filters

The desktop filter panel as a full sheet — status, type, owner, country, language, treatment, source, device, date range.

Change status to
11

Change status to

The pipeline state machine made visible: transitions a translator may not make are shown disabled, with the rule that blocks them.

Cancellation Reason
12

Cancellation Reason

The mandatory gate before any lead may enter Canceled.

Assign Owner
13

Assign Owner

Hand an unassigned lead to a translator, with each translator's current load shown so the choice is informed.

3 leads selected
14

3 leads selected

Multi-select mode: the app bar becomes a selection bar and the four bulk actions replace the FAB.

Update Selected
15

Update Selected

Apply status, owner, language or coupon code to every selected lead, with the blast radius stated before the button.

Pipeline
16

Pipeline

The kanban board, one column per status, sized for a thumb — swipe between columns rather than drag across a wall.

Waiting
17

Waiting

The snooze queue: leads locked to Waiting For, sorted by the date they come back, with the 3-month SLA visible.

Deleted
18

Deleted

Soft-deleted leads, read-only, with Restore as the only mutation and who deleted them on every row.

No leads match
19

No leads match

The empty result of an over-narrow filter, with the active filters listed so the user can undo the one that hurt.

Duplicated
88

Duplicated

The cleanup queue: duplicate clusters grouped by what matched — same phone, same email — so the reviewer can see which record to keep.

Status History
89

Status History

The global audit of every status change, the system-wide version of a single lead’s History tab.

Owner History
90

Owner History

Every reassignment between translators, with who moved it and when.

Deleted lead
91

Deleted lead

A soft-deleted record, read-only, with who deleted it and Restore as the only action.

The lead record

10

Eleven possible tabs, but a given lead shows four or five — the tab list is data-driven, and the phone keeps that rule instead of showing eleven empty tabs.

Lead detail
20

Lead detail

Identity band, the four actions a translator actually reaches for, the SLA countdown, and Personal Info grouped for reading rather than editing.

Personal Info · editing
21

Personal Info · editing

The same form in edit mode, showing the product's own rules: Operation Date and Payment stay locked until the lead is booked.

Follow-up
22

Follow-up

The internal thread about this lead between admin and translator, with attachments and the WhatsApp hand-off.

Reminders
23

Reminders

Date-and-time call-backs on this lead, overdue ones spined red, feeding the app-wide reminder badge.

Todos
24

Todos

Tasks raised on this lead and their confirm state, so an admin can close out work without opening the Todos queue.

Photos
25

Photos

The assessment photos the patient uploaded, as the grid a doctor scans before estimating grafts.

Hair Questions
26

Hair Questions

Read-only playback of the questionnaire the patient filled in on the website — present only when they actually answered.

History
27

History

The audit trail: every status and owner change on this lead, who made it and when.

Book appointment
28

Book appointment

The three fields the backend demands before a lead may enter Booked Appointment — operation date, package, hospital.

Add New Lead
29

Add New Lead

Manual capture, six fields, built for one hand while the patient is still on the phone.

Todos

4

A todo is work one person did and another confirms. The phone keeps that two-party structure, including the irreversible confirm step.

Todos
30

Todos

The queue, grouped by due date, overdue first, each row carrying the lead it belongs to.

Todo Details
31

Todo Details

One todo, its status timeline, and only the actions legal for the viewer's role.

Work performed
32

Work performed

What the assignee logged — the evidence an admin reads before pressing a button that cannot be undone.

Pipeline
33

Pipeline

The same backlog as three status columns, for the admin who wants shape rather than order.

Calendar

3

The web calendar plots leads by Creation Date or Status Date and keeps a Year View. The phone keeps both overlays and adds the agenda the desktop's Week/Day/List modes stand in for.

Calendar
34

Calendar

Month grid with status-coloured dots, the Creation Date / Status Date toggle, and the translator filter.

Agenda
35

Agenda

The phone-native replacement for Week/Day/List — one scrollable day-by-day feed with operations called out.

Year View
36

Year View

Twelve months of lead volume as a density grid, so a manager can compare a season at a glance.

Chats & notifications

4

Chat here is staff talking about a lead, not staff talking to a patient — so the inbox is grouped by colleague, and each thread is anchored to a lead.

Chats
37

Chats

One row per colleague, expandable to the lead conversations you share, pinned partners first.

Chat thread
38

Chat thread

The conversation about one lead, with the lead pinned to the top so nobody loses the subject.

Notifications
39

Notifications

The full reminder and system ledger, unread first, each type colour-coded to its source.

Notification Preferences
40

Notification Preferences

Per-type, per-channel control — in-app, browser push and mobile push — plus this device's push enrolment.

Reports

8

Six wide analytical tables. None survive as tables on a phone; each is reshaped into the thing the number was actually being read for.

Reports
41

Reports

One entry point replacing the desktop's Reports and Monitoring submenus, permission-filtered per role.

Advanced Search
42

Advanced Search

The query builder and its results, with the active criteria shown as removable chips.

Translator Stats
43

Translator Stats

The 16-column translator × status matrix becomes one expandable card per translator, every number still a drill-down.

Translator scorecard
44

Translator scorecard

One translator's full profile — conversion, response time, load — instead of scrolling a 21-metric row sideways.

Weekend Report
45

Weekend Report

Weekend coverage at a glance: who worked, what moved, and what nobody touched.

Monthly Pipeline Flow
46

Monthly Pipeline Flow

The three money statuses per month, as a flow rather than a grid.

Year-over-Year
92

Year-over-Year

Month rows compared across two years with signed deltas — the desktop’s month×year grid, unrolled.

Month-over-Month
93

Month-over-Month

The same treatment across two months of one year, by day.

Administration

10

Everything the desktop sidebar hides behind Users, Settings and Monitoring, gathered into one hub and cut down to what is genuinely usable on a phone.

More
47

More

The fifth destination: every non-primary surface, grouped, badged and permission-filtered for the signed-in role.

Users
48

Users

The staff roster with role, status and last activity, and the lifecycle actions behind a long press.

Direct Permissions
49

Direct Permissions

The permission matrix as expandable module groups, separating what a role grants from what was granted directly.

Roles
50

Roles

The five roles, how many permissions each carries and how many people hold it.

Lead Statuses
51

Lead Statuses

The reference-data editor that matters most: 13 statuses with their colours, order and overdue thresholds.

Health Checks
52

Health Checks

The ops surface worth carrying in a pocket — what is failing right now, and when it last ran.

User Detail
83

User Detail

One staff member: identity, roles, direct permissions, activity — and the admin actions that change their access.

Add New User
84

Add New User

Account creation with role assignment, showing the taken-username error the product actually returns.

Translators
85

Translators

The staffing view: languages covered, current load and conversion rate per translator, not just a roster.

Role Editor
86

Role Editor

A role’s permission set as expandable module groups with per-group counts and select-all.

Settings

13

Twelve reference-data areas feed every lead form, filter and report in the product. Eight share one paginated shape; four drop pagination for drag-to-reorder because their order is the order users see in dropdowns. Each is gated behind its own STG_MANAGE_* permission, so most admins see only a subset.

Settings
55

Settings

All twelve areas grouped by what they feed — clinical, commercial, pipeline, localisation — with the ones your role cannot manage shown locked.

Treatments
56

Treatments

The canonical reference-data list: search, status filter, active switches, pagination. Seven other CRUDs share this exact shape.

Edit Treatment
57

Edit Treatment

The shared add/edit sheet behind every reference-data row, with its validation state.

Lead Types
58

Lead Types

Basic, Questions and Photos with their real colours, reorderable — because this order drives every type dropdown in the product.

Currencies
59

Currencies

The currencies leads are quoted in, reorderable, with one marked default.

Countries
60

Countries

Where the per-locale translations repeater lives — one row expanded to show it, driven by the active Languages.

Pricing Packages
61

Pricing Packages

Packages as cards: price, inclusions, the treatments they apply to, and their own translations.

Coupon Codes
62

Coupon Codes

Discount codes with validity windows and usage against limit, including an expired and an exhausted one.

Languages
63

Languages

The 23 locales with RTL flagged on Arabic and Persian, and the lead volume behind each.

Hospitals
64

Hospitals

The clinics an operation can be booked into, with the treatments each performs.

Dental Services
65

Dental Services

The dental catalogue — same list shape as Treatments, different domain.

Additional Treatments
66

Additional Treatments

The add-ons sold alongside a main treatment.

Cancellation Reasons
67

Cancellation Reasons

The reasons that populate the mandatory dropdown when a lead is cancelled, ordered by how often they are picked.

Monitoring & operations

11

Super-admin surfaces. Most of these are wide diagnostic tables on the desktop; on a phone they become status-first cards, because the question you ask from a phone is "is it broken right now", not "let me read 400 rows".

Monitoring
68

Monitoring

The nine ops pages behind one index, each row carrying a live status signal rather than just a name.

Activity Logs
69

Activity Logs

The audit feed grouped by day — who did what to which record.

Log Detail
70

Log Detail

The field-by-field diff behind one audit entry, with the actor and origin.

API Logs
71

API Logs

Requests as rows: method, endpoint, status class, duration — with a 500 called out.

Log Errors
72

Log Errors

Application errors grouped by exception, with occurrence counts and a stack expanded.

Backups
73

Backups

Backup history with storage usage, and one run shown mid-progress.

Query Performance
74

Query Performance

The slow-query report: which statements own the time budget.

Scheduled Commands
75

Scheduled Commands

Each artisan command with its schedule in words, last outcome and next run.

Command Detail
76

Command Detail

One command’s run history and its last output.

Manage Pages
77

Manage Pages

The registry that can switch a page off for everyone, grouped exactly as the sidebar is.

Data Migration
78

Data Migration

The legacy import, per table, with the destructive actions fenced into their own danger zone.

Integrations & storage

4

The outbound edges of the product — two webhook integrations and the file store — which on the desktop live as three unrelated pages.

OneTrack
79

OneTrack

The outbound webhook log: what was sent for which lead, and what came back.

Zapier
80

Zapier

The same log for the second integration, switched by a segmented control so the two read as one screen.

Local Driver
81

Local Driver

The file browser: breadcrumb path, folders and files, storage usage, upload.

Report Logs
94

Report Logs

Who ran which report, with what parameters, and how long it took.

Account & system states

4

States are part of the design, not an afterthought. These are the four a CRM user will actually meet.

My Profile
53

My Profile

Identity, language, timezone, datetime format and security — the self-service account screen.

Offline
54

Offline

What a translator sees in a basement clinic: cached leads still readable, queued changes counted, nothing pretending to be live.

Cache Management
82

Cache Management

The five client-storage buckets, their keys and their bytes — with Authentication protected and the confirmation promoted out of its dialog.

Change Password
87

Change Password

Current, new and confirm, with the product’s own rules shown as a live checklist.

No screen matches that.

How this folder is built

Tokens

crm/theme.css holds the palette in both modes, plus the 13 lead statuses and 3 lead types with the product's own hexes. tokens.json is the same set in Tokens Studio format for Figma.

Components

crm/base.css is the component layer — app bars, bottom nav, cards, sheets, chips, status pills, charts, states. Screens compose it; they rarely add CSS.

Icons

175 Tabler icons lifted from the CRM's own @iconify-json/tabler, listed in ICONS.md and previewable in icons.html.

Rendering

node render.js renders every screen to both themes at 2× in seconds, node lint.js checks them, and node gallery.js rebuilds this page.