Android — Overview

SightHub for Android

SightHub for Android is the companion app for optical retail teams: tasks, the
appointment book, the doctor's unsigned-exam list, the team schedule, daily and
sales reports, and inventory counting by scanning frame tags with the camera.

It is on Google Play as SightHub (cloud.sighthub.app), requires Android 8.0
or later
, and installs on phones and tablets — the layouts are phone-shaped, so a
tablet simply gets a stretched phone screen. The interface follows your device
theme: dark on a dark-mode device, light on a light one.

The app has no accounts of its own. It talks only to your company's own SightHub
installation, so the first thing it asks for is the address of that installation
— see the next section, everything else depends on it.

Each section below is one screen, with the actions you can take on it.


Android — Connect to your company workspace

This is the very first screen after installing, and it is the one people get
stuck on. The app is not a single shared service: every SightHub company has its
own workspace, reachable at its own subdomain, and the app must be pointed at
yours before a username or password means anything.

The screen shows the SightHub mark, the heading SightHub, the line Connect
to your company workspace
, one field labelled Workspace address, a small
grey hint below it reading e.g. your-company.sighthub.cloud, and a Continue
button.

What to type

Your workspace address is the same address you use to open SightHub in a browser
on the shop computer. If you do not know it, ask your manager or store owner —
support cannot guess it for you.

Three forms are accepted:

You type The app uses
acme https://acme.sighthub.cloud/
acme.sighthub.cloud https://acme.sighthub.cloud/
optical.example.com https://optical.example.com/

The rule behind the table: if what you typed contains a dot, it is treated as a
complete address and used as-is. If it contains no dot, the app appends
.sighthub.cloud to it.
So the company shorthand alone is enough for a
standard workspace, and companies on their own domain type the whole host.

As you type, that grey hint line turns into a live preview of the address the
app will actually use
— type acme and it immediately reads
https://acme.sighthub.cloud/. Read that line before tapping Continue; it is the
app showing you its own interpretation of what you typed.

A few details worth knowing:

After Continue

Nothing is checked against the server here — the address is simply saved on the
device and you go straight to the sign-in screen. You will not see this screen
again on this device: the workspace is remembered between launches and after
signing out.

A wrong-but-valid address is therefore not caught here. It is caught one screen
later, when signing in fails. To correct it, use Switch company on the
sign-in screen or in Profile → Account, which clears the saved workspace and
brings this screen back.


Android — Sign in

The heading reads Sign in and directly underneath it, in small grey type, is
the workspace you are connected to — your-company.sighthub.cloud. Check that
line before typing anything: it is the app telling you which company it is about
to sign you into.

Enter your Username and Password. The eye icon at the end of the password
field shows and hides what you typed. The Sign in button stays disabled until
both fields have something in them.

Different from iOS: there is no PIN tab on Android. The 5-digit Express PIN
can be generated here (Profile → Generate Express PIN) for use elsewhere,
but this screen only accepts a username and password, or biometrics.

Below the fields is Enable biometric unlock on this device, a switch that is
on by default — see the next section. The switch only appears on devices that
have a fingerprint or face unlock already set up.

Switch company at the bottom signs out, forgets the saved workspace and the
biometric enrolment on this device, and returns to the workspace screen. It acts
immediately, without asking for confirmation.

If sign-in fails, the reason appears in a red banner above the fields — the
server's own message, or Session expired. Please sign in again., Access
denied
, Server error. Try again later. or Network error depending on
what went wrong. After too many wrong passwords the message carries a countdown
in seconds.

If you are asked to change your password

When your account is still on a temporary password set by your manager, signing
in lands on Update your password instead of the home screen, with no way to
skip it. Fill in Current (temporary) password, New password and Confirm
new password
; the new one must be at least 6 characters and both new fields
must match before Save and continue enables.


Android — Biometric unlock and app lock

Biometrics are how you avoid retyping a password at the start of every shift.
They are set up during sign-in and used on every launch afterwards.

Turning it on

Leave Enable biometric unlock on this device switched on when you sign in
with your password. The device is enrolled as part of that sign-in and labelled
automatically with its make and model — for example Samsung SM-G991B — so you
can recognise it later in the device list.

Enrolment happens once per device, on a password sign-in. If the device is
already enrolled, signing in again does not re-enrol it.

Using it

Once enrolled, the sign-in screen changes:

The prompt is the standard Android one, titled Unlock SightHub with the
subtitle Confirm your identity to continue and a Use password button. At
sign-in it accepts only a fingerprint or face — your device PIN or pattern is
not offered here, so Use password is the way through if biometrics fail.
Dismissing the prompt just returns you to the sign-in screen with the username
and password fields intact.

Note that the app never resumes straight into the home screen from cold.
Every launch goes through this screen — usually as a single biometric prompt.

App lock

While you are signed in, the app locks itself the moment it leaves the foreground
— recents, another app, screen off. Coming back shows a full-screen panel with
the SightHub logo, a padlock, the heading Locked, the line Confirm your
identity to continue
, an Unlock button and a Sign out text button.

The prompt here is titled SightHub is locked / Unlock to continue, and unlike
the sign-in prompt it also accepts your device PIN, pattern or password — so
a failed face scan is never a lock-out. Cancelling leaves you on the lock panel;
Unlock tries again. On a device with no screen lock configured at all, the
app-lock step is skipped.

This is separate from signing in. Unlocking does not re-authenticate against the
server; it only reveals the session already running.

Managing enrolled devices

Profile → Biometric devices lists every device enrolled on your account, each
with its label and when it was last used. The red trash icon revokes one
immediately — no confirmation — which is the way to shut down a lost or
handed-over phone. When nothing is enrolled the list reads No biometric devices
enrolled
.

Signing out keeps your biometric enrolment, so the next sign-in is still one
prompt. It is cleared only by Switch company or by revoking the device from
this list.


Android — Home

The home screen: store switcher, greeting, and the permission-driven tile grid

The screen you land on after signing in, and the hub for everything else — there
is no bottom tab bar, every section is opened from here and closed with the back
arrow.

The grid is not fixed. The server sends the list based on your permissions,
in its own order, so two people in the same shop can see different tiles, and a
tile you cannot see is a permission that has not been granted. Tiles carry a
red badge with a live count when a section is waiting on you.

Typical tiles are Doctor Desk, Appointment, Tasks, Inventory, Daily Reports,
Reports and Schedule. One extra tile, Scan documents, is always present at
the end of the grid for everyone — it is built into the app rather than sent by
the server.

Sections that do not yet have their own native screen on Android open a page
reading Coming soon and "

" will arrive in an upcoming release
rather than a working screen.

Pull down to refresh re-reads the tiles, the badge counts and the store list.

Switching store or warehouse

Tapping the store name opens a sheet from the bottom of the screen headed
Switch location, listing the storefronts you have access to with their
warehouses indented underneath, and a check mark against the current one. Picking
an entry switches your active location and reloads the home screen; the greeting,
the tiles and the badges all follow the new location. Swipe the sheet down or
press back to close it without changing anything.

This is the switch the rest of the app reads. The team schedule in particular
needs it resolved, so open Home once after launching if you go straight for
another screen.


Android — Tasks

The task list with its three filter chips

The team to-do list.

Three chips across the top choose Assigned to me (the default), Created by
me
or All. Each card shows the title, a two-line description, a status
chip, a priority chip, the due date on the right, and an arrow line naming who it
is assigned to. Status chips are colour-coded — Done green, In progress blue,
To do grey — and priority runs High red, Medium amber, Low grey. The
order is the server's; there is no sorting or search here. An empty list reads
No tasks here yet. Pull down to refresh.

Creating — the + button in the bottom corner opens New task: Title,
Description, Assign to (a dropdown of employees), Priority (Low / Medium /
High, pre-set to Medium) and an optional due date picked from a calendar dialog.
Title and Assign to are required; Create stays greyed out until both are
filled. After creating, the list switches to Created by me so you see what
you just made — including tasks you assigned to someone else.

Working a task — tapping a card opens the detail, titled Task #:

  • Status — three chips, To do / In progress / Done. Tapping one saves
    immediately, with no confirmation and no undo.
  • Comments — type in the field at the bottom and send with the paper-plane
    icon. Comments show the author, the date and the message.
  • Delete (trash, top right) — offered only while the task is still To
    do
    , so work that has been started cannot be quietly removed. It deletes at
    once, without a confirmation dialog.

Different from iOS: on Android a task cannot be edited after it is created
— status is the only thing you can change. Comments cannot be edited or deleted
by anyone, and there is no history trail on the detail screen. Changing a
status also does not refresh the list behind it; pull down on the list to see
it.


Android — Appointments

The appointment day view with doctor filter chips

A read-only day view of the patient book.

  • Location — the title row carries a pin and the current location name; tap it
    to open the Switch location sheet. Changing it here changes the location
    for the rest of the app too, and reloads the doctors and the day.
  • Day pager — chevrons step one day at a time. Today under the date jumps
    back; on today itself it is just a label.
  • Doctor chips — a horizontal row starting with All doctors. Selecting one
    narrows the day to that doctor instantly, without reloading.
  • Opening hours for the location appear above the list as Hours 9:00 AM –
    5:00 PM
    , following your device's 12- or 24-hour setting.

Each appointment card shows the start time with the end time beneath it, the
patient, the doctor, any notes, and a status chip colour-coded by state:
Scheduled blue, Confirmed teal, Checked in purple, Completed green, No show
amber and Cancelled red, with the same colour repeated as a stripe down the left
edge of the card.

Days the location is closed read Closed on this day; an open day with nothing
booked, or a doctor filter that matches nothing, reads No appointments.

The screen is strictly read-only: cards do not open, and nothing can be booked,
moved, or cancelled from the app. Pull down to refresh.


Android — Doctor Desk

The doctor's own list of exams waiting to be signed, titled Doctor Desk.

Each row shows the patient's name — or Patient # when the name is
missing — and a second line with the exam type and its date. On the right, a
badge reads Ready to sign in green when the exam is complete, or
Incomplete when something is still outstanding. Rows appear in the order the
server sends them; there are no filters.

When there is nothing waiting, the screen reads No exams to sign — which is
also what someone who is not a doctor sees. Pull down to refresh.

This screen is a read-only worklist: rows do not open, and signing an exam is
done in the web app
, not here.


Android — Team

Two tabs behind one tab bar: Schedule and Employees. Which one opens
first depends on the tile you came from.

Schedule

Who is working, for the store you are currently signed in at.

Chevrons move week by week — weeks start on Sunday — and the row of seven day
chips picks the day; the selected chip is filled, and today's date number is
bold. Above the list, the selected date is spelled out (Wednesday, July 1) with
the store's own hours for that day on the right, or Store closed. A line
underneath counts the day: 5 working · 2 off.

The list puts people who are working first, then a Off (n) subheading and
everyone who is not. Working rows are visually promoted: a colour bar down the
left, a card background, the hours, and Lunch 12:00 PM–12:30 PM when a lunch is
set. People who are off are plain rows reading Off. A row whose hours were
changed from the default rota gets a Modified chip and a differently coloured
bar.

A filter pill on the left of the row above the list narrows the day by job
title
. It reads All staff when nothing is chosen, the title's name when one
is chosen, or 3 titles for several. Tapping it drops down a menu with All job
titles
at the top and every job title below it; you can tick several, and the
menu stays open until you tap outside it. With a filter on, the counts line gains
a · N shown.

Empty days read No schedule for this day; a filter that matches nobody reads
No one matches this filter; a day where everyone is on holiday reads Closed
— holiday
. If the screen says No location for this account, the app does
not know which store to show — open Home, pick a store, then come back.

Changing the schedule

This is an Android-only capability; the iOS app's schedule is read-only.

Change schedule on the right of the filter row turns on edit mode (the button
becomes Done), a hint appears reading Tap an employee to edit, and rows
become tappable. The button is shown to everyone — whether you are actually
allowed to make the change is decided by the server, and a refusal comes back as
Access denied after you save.

Tapping a row opens a sheet from the bottom with the actions that make sense for
that person on that day:

  • Move to off — removes their shift for the day.
  • Give shift to… — hands the shift to someone who is off that day.
  • Swap with… — swaps the shift with another day in the same week; pick the
    day, then the person working it.
  • Add shift — for someone who is off: pick Start and End from a clock
    dial, pre-filled from the store's hours. The end must be later than the start
    (End time must be after start time.), so overnight shifts cannot be entered
    here.
  • Take someone's shift — takes a shift from someone working that day.

Every one of these changes one date only — the standing rota is untouched. On
success the sheet closes and the week reloads.

If the change would strand booked appointments, nothing is applied and a dialog
appears titled Appointments in the way, listing the dates, locations and how
many appointments are involved. Cancel or move those appointments in the web app,
then try again.

Employees

The staff directory: a search field matching on name or username as you type
(email and job title are not searched), and Active / All chips — Active
is the default, All also shows people who have left. The number beside the
chips is how many rows are showing.

Each row has an initials avatar, the person's name, and a line with their
username and job title, plus Doctor and Inactive badges where they apply.
Tapping through opens their record: name, job title and username at the top,
Call and Email buttons where the details exist (these open your dialer or
mail app — the call is not placed for you), and a details card with Status,
Email, Phone, Address, Date of birth and Hired. Someone who has left carries a
red Terminated banner at the top. Records are read-only.


Android — Daily Report

End-of-day reconciliation for one date, read-only.

The date pager at the top has chevrons either side, a calendar icon in the
toolbar for jumping to a date, and a Today button that appears under the date
whenever you are not on today. Everything below reloads when the date changes.

  • Sales — the day's total in large type, with Invoices, Gross profit,
    Discount and Tax beside it. If your account has no sales-report
    permission the card reads No sales-report permission and shows $0.00.
  • Invoices (n) — every invoice on the day: customer, invoice number,
    employee, amount, and any discount underneath in red. Rows whose invoice the
    server can open are tappable and lead to the invoice detail. Empty: No
    invoices for this day
    .
  • Reconciliation — one row per payment type under the headings Type,
    Comp., Count and Diff. The difference turns red and bold whenever
    it is not zero
    , which is the number you are looking for on this screen.
    Empty: Nothing counted for this day.
  • Count sheet — the counted amount per payment method, with the cash
    denominations listed underneath ($20 × 5) and a bold Total at the end.
  • Transfers & credits — Credited, Debited and Net. The whole
    section is hidden when there is nothing to show.

Pull down to refresh.


Android — Sales Report

The sales report: period, totals, category mix and invoices

Revenue over a period you choose.

  • Period — four chips: Day / Week / Month / Year, opening on Month.
  • Range pager — chevrons step by the chosen period, and the calendar icon
    picks a date directly. The label reads as a date, a week range, August 2026
    or 2026 depending on the period.
  • Total sales — the headline figure, with Invoices, Gross profit,
    Discount and Tax.
  • Category mix — Frames, Sunglasses, Lenses, Contacts,
    Prof. fees and Other, each with its amount, its share as a percentage,
    and a bar. Categories with nothing in them are left out.
  • Invoices (n) — the individual invoices behind the total, each with its date,
    number and employee. Empty: No invoices in this period.

The share icon in the toolbar exports the listed invoices as CSV through
the Android share sheet, with the columns date, invoice, name, employee, total,
cost, discount and tax. It appears only when there is at least one invoice to
export.

Different from iOS: Android shares the CSV as text, not as an attached
.csv file — so it arrives pasted into the body of a message or note. Pick an
app that can accept pasted text, such as mail, Keep or Drive, and save it as a
.csv yourself.


Android — Invoice

The detail behind one invoice, reached by tapping an invoice row in the Daily
Report or the Sales Report. There is no tile for it and no way to search for an
invoice — some rows are not tappable, because the server did not send an invoice
the app can open.

The header shows the invoice number and a status badge — open blue, paid or
closed green, void or cancelled red — then Date, Location, Sold
by
, Patient, Payment and Finalized. A totals card follows in a
fixed order: Total, Tax, Discount, Final, then Patient balance, Insurance
balance, Patient paid, Insurance paid, Gift card and Due.

Items (n) lists what was sold, each with quantity, unit price and line total.
Payments (n) lists what was taken, each with its type, method, timestamp and
employee; refunds and voids show as negative amounts in red.

An invoice that no longer exists reads Invoice not found. The screen is
read-only — there is no way to take a payment, refund, print or email from the
app. Pull down to refresh.


Android — Inventory

Count sheets with their counting progress

Stock audits, done by scanning frame tags with the camera.

Count sheets

The list is titled Count sheets, with two chips at the top: All (the
default) and With missing, which narrows the list to sheets that still have
items outstanding. Each card shows the brand or vendor, an Open or Closed
pill, a counted / total figure with the date the sheet was created, and a
progress bar. Empty: No count sheets. Pull down to refresh.

Working a sheet

A count sheet: progress, missing and counted items, and the Scan button

Opening a sheet shows 2 / 6 counted with the location on the right and a
progress bar, then two sections: Missing (n) — still to find, each with an
empty circle — and Counted (n) — already counted, each with a green check.

Open sheets get a Scan button in the bottom corner and a Close button in
the toolbar. Closed sheets have neither and are read-only.

Close asks first: Close this count sheet? — Are you sure? If you close this
list, all items that weren't found (n) will be marked Missing.
Confirm with
Close list or back out with Cancel.

Scanning

The scan screen is a live camera view with a white guide rectangle and a torch
button in the corner for a dark stockroom. The app asks for camera permission the
first time; if you decline, the screen reads Camera access is needed to scan
tags
and offers Allow camera.

  • Line a frame tag up in the guide and the SKU field fills in by itself. The
    app reads tags written as 023/273/1250 — the first two groups are the SKU
    (23273 here), the last is the price.
  • Or type the SKU by hand. Doing so takes over from the camera, so a manual
    correction is not overwritten by the next tag drifting through the frame; the
    camera takes over again after a successful add.
  • Add to count sheet records it. A brief ✓ counted confirmation appears,
    the phone buzzes, the running counted / total in the header ticks up, the
    field clears, and you can go straight on to the next tag. A refusal from the
    server appears the same way, prefixed with ✗.

Text recognition runs on the device, so scanning keeps working on a weak shop
connection — only the Add to count sheet step needs the network.

Different from iOS: Android has no standalone "scan a tag to look it up"
screen. Scanning always counts an item into an open sheet.


Android — Scanning documents from the web app

Sending a paper document into a patient's file, using the phone as the scanner
for the desktop app.

Start from the Scan documents tile on Home — the last tile in the grid, always
there. Point the camera at the QR code the SightHub web app shows on the shop
computer. Anything that is not a SightHub code is ignored and simply returns you
to Home.

The scan session opens showing what you are scanning into — for under the title — and from there:

  • The big white shutter button captures a page. A brief Page N added
    confirms each one, and the bar above reads N page(s) — they become one PDF.
  • Finish & submit (N) combines every page into a single multi-page PDF,
    uploads it, files it against the target, and closes the session back to Home.
  • The ✕ in the corner cancels the session without uploading. So does the
    Android back button or back gesture — with no confirmation, so be deliberate
    with it.

Different from iOS: Android captures plain photos. There is no automatic
edge detection or perspective correction, and no thumbnails, no retake and no
deleting a single page
— a bad page can only be dropped by cancelling the
whole session and starting again. Hold the phone square over the page and check
the framing before you tap the shutter.

You can also arrive here by tapping a scan notification — the app routes you
straight into the session, including from cold, after you sign in.


Android — Profile

Your own account, reached from the icon at the top right of the home screen.

  • Header — your initials, name, email and phone.
  • Hours worked — Today, Week and Month, with a Clocked in pill when you
    currently are.
  • Security → Change password — current password plus a new one of at least 6
    characters, typed twice. A mismatch is called out as Passwords don't match
    while you type.
  • Security → Generate Express PIN — confirm with your password and the app
    shows your 5-digit PIN once, over the warning Memorize this PIN — it's shown
    only once.
    Note that this PIN is for signing in elsewhere; the Android sign-in
    screen does not accept it.
  • Biometric devices — the enrolled-device list described above, each with a
    red trash icon that revokes it immediately.
  • Notifications → Send test notification — proves push is working on this
    device; a short Test notification sent confirms it was requested.
  • Account → Switch company — sign out and forget the workspace.
  • Account → Sign out — sign out, keep the workspace and the biometric
    enrolment.

Pull down to refresh. Neither Switch company nor Sign out asks for confirmation.

Different from iOS: the Android profile has no My schedule row — your
own week is visible through the team schedule — and no inventory or document
scanning entries, since Scan documents lives on the Home grid instead.


Android — Notifications

On Android 13 and later the system asks for notification permission the first
time you open the app, before you have even signed in. Declining is not fatal —
the rest of the app works normally, you just get no alerts.

Notifications arrive on named channels you can tune individually in Android
Settings: Schedule changes, Tasks, Appointments, Scan requests
and General.

Tapping a notification opens the section it refers to: the schedule, a task list
or one specific task, appointments, the daily report, sales reports, the team, or
a document-scan session.

That destination survives the sign-in screen. If a notification wakes the app
while you are signed out, you unlock or sign in first and land on the right screen
afterwards, rather than being dumped on Home.

Profile → Send test notification checks the whole chain end to end. Signing
out unregisters the device, so a phone you have signed out of stops receiving
alerts.


Android — Signing out

Two different exits, in Profile → Account:

  • Sign out ends the session but keeps the workspace address and the biometric
    enrolment, so signing back in is one biometric prompt. This is the everyday one.
  • Switch company ends the session and forgets the workspace and the
    biometric enrolment on this device, returning to the workspace screen. Use it
    when the device moves to a different SightHub company — and expect to need the
    workspace address again.

Neither asks for confirmation, and Switch company is also available at the
bottom of the sign-in screen. Sign out additionally appears on the app-lock
panel, for handing the phone back without unlocking it.