Thirteen flows covering all core interaction paths — guest discovery, professional management, and admin moderation.
User Flows
U1 — Discover & Search
Phase 1/ + /search
User lands on the homepage, enters a keyword or selects a category, and browses filtered search results — with dead-end states handled.
View diagram
100%
flowchart TD
A([User lands on site]) --> B[Home page\nSearch bar + category grid\nLanguage selector EL / DE]
B --> C{Entry point}
C -->|Type keyword in hero bar| D[Search Results /search]
C -->|Click a category tile| D
D --> E[Result cards\nname · profession · location · rating · description]
E --> F{Apply filters?}
F -->|Category| G[Results update in real time]
F -->|Language spoken| G
F -->|Postal / area| G
F -->|Distance radius| G
F -->|Min star rating| G
G --> F
F -->|No filter active| H{Any results?}
G --> H
H -->|Yes| I([Browse cards → Flow U2])
H -->|No results| J[No professionals found state]
J --> K[Reset filters CTA]
K --> D
U2 — View Professional Profile
Phase 1/profile?id=X
User clicks a result card and lands on the professional's profile page, where they can contact, share, or save to localStorage favorites — all without an account.
View diagram
100%
flowchart TD
A([Click result card — from U1]) --> B[Professional Profile /profile?id=X]
B --> C[Name · Profession · Photo\nShort description\nLocation + Google Map\nPhone + email\nRating summary + review list]
C --> D{Action}
D -->|Contact professional| E([Opens contact form → Flow U3])
D -->|Share profile| F[Copy profile link to clipboard]
D -->|Save to Favorites| G[★ Saved to Favorites\nlocalStorage]
F --> C
G --> C
U3 — Contact a Professional
Phase 1/profile?id=X → contact form
Guest opens the contact form on a professional's profile, fills in their details and preferred channel, submits the request, and receives a confirmation.
View diagram
100%
flowchart TD
A([User clicks Contact Me — from U2]) --> B[Contact form opens\nbottom sheet on mobile\nright sidebar on desktop]
B --> C[User enters name\nselects contact channel\nenters phone or email\noptional message]
C --> D[Submits request]
D --> E[Confirmation screen\nRequest sent state]
E --> F{What next?}
F -->|Browse more| G([Back to Search → Flow U1])
F -->|Back to profile| H([Back to Profile → Flow U2])
U4 — Leave a Review
Phase 2/review/:token
Professional sends a unique review link to a user; user opens it, rates and optionally writes a review, and submits. The professional is then notified of the new review.
View diagram
100%
flowchart TD
A([Professional sends review link → Flow P4]) --> B[User opens /review/:token]
B --> C{Link valid?}
C -->|Invalid or expired| D[Error — link not valid]
C -->|First review| F[Review form — empty]
C -->|Already reviewed| E[Review form — pre-filled\nwith previous submission]
E --> G
F --> G[Select star rating 1–5]
G --> H[Write text review — optional, max chars TBD]
H --> I[Submit]
I --> M([Professional notified → Flow P5])
U5 — Manage Favorites
Phase 1Profile cards + account menu
User saves professionals to localStorage by clicking the star icon — no account or login needed. Saved profiles persist on the same device (or PWA install) and are accessible from the favorites list.
View diagram
100%
flowchart TD
A([User on any page]) --> B{Where are they?}
B -->|On result card or profile page| C[Clicks ★ icon]
B -->|Opens favorites list| D[Favorites list\nprofiles saved on this device]
C --> E[Profile saved to localStorage]
E --> D
D --> F{Action on a saved profile}
F -->|Click ★ again| G[Profile removed from localStorage]
F -->|Click profile card| H([Opens Profile → Flow U2])
G --> D
U6 — Download PWA
Phase 1Any page
User is prompted to install findemich as a Progressive Web App and follows platform-specific steps to add it to their home screen.
View diagram
100%
flowchart TD
A([User browses findemich]) --> B[Browser shows install prompt\nor user taps Install banner]
B --> C{Platform}
C -->|iOS Safari| D[Tap Share → Add to Home Screen\nStep-by-step instructions shown]
C -->|Android Chrome| E[Install dialog shown — Tap Install]
C -->|Desktop Chrome / Edge| F[Click install icon in address bar]
D & E & F --> G{User confirms}
G -->|Installs| H[App added to home screen / dock]
G -->|Dismisses| I[Prompt hidden — can re-trigger from menu]
H --> J([Launches as standalone PWA — no browser chrome])
Professional Flows
P1 — Register as Professional
Phase 1/join
A Greek-speaking professional in Switzerland completes the four-step registration form (account → profile → contact channels → review), submits for admin review, and signs in via their email once approved.
View diagram
100%
flowchart TD
A([Professional lands on site]) --> B[Clicks Εγγραφή επαγγελματία]
B --> C[Step 1 · Λογαριασμός\nΌνομα, Επώνυμο, Email\nEmail = τρόπος σύνδεσης · χωρίς κωδικό]
C --> D[Step 2 · Προφίλ\nΦωτογραφία προαιρετική\nΚατηγορία — διάλεξε μία\nΣύντομη παρουσίαση\nΤοποθεσία · Γλώσσες]
D --> E[Step 3 · Επικοινωνία\nΜήνυμα πάντα ενεργό\nΤηλέφωνο, WhatsApp, Viber, Email\nΣτοιχεία ιδιωτικά — δεν εμφανίζονται]
E --> F[Step 4 · Δημοσίευση\nΠροεπισκόπηση προφίλ\nΈλεγχος & υποβολή]
F --> G{Υποβολή εγγραφής}
G --> H[Confirmation screen\nΑναμένει έγκριση badge\nEmail επιβεβαίωσης]
H --> I([Admin reviews — Flow A1])
I --> J{Decision}
J -->|Approved| K[Email: το προφίλ είναι live\nProfile goes public]
J -->|Rejected| L[Ειδοποίηση με λόγο\nμπορεί να διορθώσει]
K --> M[Sign in via email link]
M --> N([Views own profile — own state])
L --> C
P2 — Edit Profile
Phase 1/dashboard
A logged-in professional navigates to the edit profile page from their dashboard. A sidebar lets them jump between eight sections — each saving independently.
View diagram
100%
flowchart TD
A([Professional logs in to dashboard]) --> B[Clicks Προφίλ tab in nav]
B --> C[Edit profile page opens\nSidebar with 8 sections]
C --> D{Which section?}
D -->|Δημόσιο προφίλ| E[Profile photo · first & last name\nShort bio]
D -->|Κατηγορίες| F[Pick one category — single select]
D -->|Τοποθεσία| G[Address · postal · city · canton\nPublic visibility: full address or city only]
D -->|Γλώσσες| H[Add / remove languages]
D -->|Κανάλια επικοινωνίας| I[Private phone & contact email\nToggle channels: call · WhatsApp · Viber · email\nMessage always on]
D -->|Φωτογραφίες| J[Upload or remove gallery photos]
D -->|Ειδοποιήσεις| K[Email toggles: new message · new review\nweekly digest · platform updates]
D -->|Λογαριασμός| L[Change login email\nDeactivate or delete account]
E & F & G & H & I & J & K --> M{Action}
M -->|Αποθήκευση| N[Section saved]
M -->|Ακύρωση| C
N --> C
L --> P{Account action}
P -->|Save login email| N
P -->|Deactivate or delete account| Q[Confirm in dialog]
Q --> R[Email sent to professional\nconfirms deactivation / deletion]
R --> S([Redirected to landing page])
C -->|Δες δημόσιο προφίλ| O([Public profile opens in new tab])
P3 — Receive Contact from User
Phase 1Email + /dashboard
After a user submits a contact request, the professional receives an email with the user's details and a direct CTA to open the discussion on their preferred channel.
View diagram
100%
flowchart TD
A([User submits contact request → Flow U3]) --> B[System sends email to professional]
B --> C[Email contains:\nUser name · Preferred channel\nContact detail — phone or email\nOptional message]
C --> D[Professional reads email]
D --> E{Preferred channel}
E -->|Phone| F[Professional calls user directly]
E -->|WhatsApp| G[Tap WhatsApp link in email\nConversation starts]
E -->|Email| H[Reply via email]
F & G & H --> I([Discussion continues outside findemich])
P4 — Request a Review
Phase 2/dashboard → Reviews tab
After a visit or interaction, the professional generates a unique one-use review link and sends it to the user through their preferred communication channel.
View diagram
100%
flowchart TD
A([Professional logged in to dashboard]) --> B[Goes to Reviews tab]
B --> C[Selects a contact to request a review from]
C --> D[System generates unique one-use link\n/review/:token]
D --> E[Link sent via user's preferred channel\nfrom original contact request\nWhatsApp · Email · SMS]
E --> F([User receives link → Flow U4])
P5 — Receive a Review
Phase 2Email + /dashboard → Reviews tab
Professional is notified by email when a new review comes in. Reviews are published automatically on the public profile — the professional cannot hide or gate them — and the public rating recalculates. Their only recourse for an abusive review is to report it to an admin.
View diagram
100%
flowchart TD
A([User submits review → Flow U4]) --> B[Review published automatically\non the public profile]
B --> C[Professional receives email\nYou have a new review on findemich]
C --> D[Professional opens dashboard → Reviews tab]
D --> E[Review shown — already live and public]
E --> F[Rating recalculates across all reviews]
F --> G{Believes review is abusive?}
G -->|Report to admin| H[Flagged for moderation → Flow A1]
G -->|No action| I([Review stays live])
Admin Flows
A1 — Moderate Professionals
Phase 1/admin/professionals
Admin reviews the professionals list, calls to verify phone numbers, and takes action — verifying, editing, suspending, or permanently deleting profiles.
View diagram
100%
flowchart TD
A([Admin logs in to /admin]) --> B[Professionals list\nname · profession · location · date · status · flags]
B --> C{Search or filter}
C -->|By name| D[Filtered list]
C -->|By profession| D
C -->|By status| D
D --> E[Click into a professional record]
B --> E
E --> F[Admin calls professional\nto verify phone number]
F --> G{Action}
G -->|Mark Verified| H[Profile goes live in search results]
G -->|Edit fields| I[Update any field → Save]
G -->|Suspend| J[Profile hidden from public\nProfessional notified by email]
G -->|Delete| K[Profile permanently removed\nProfessional notified by email]
I --> E
H & J & K --> B
A2 — View & Analyse Data
Phase 1/admin
Admin lands on a basic dashboard overview with key stats at a glance. Specific screens and metrics are TBD — to be defined based on what the client finds most useful.
View diagram
100%
flowchart TD
A([Admin logs in to /admin]) --> B[Dashboard overview\nBasic stats at a glance\nTo be defined — client to suggest helpful screens]
B --> C{Navigate to}
C -->|Professionals| D([Manage professionals → Flow A1])
C -->|Stats / reports| E[Detailed view\nScreens and metrics to be defined by client]