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 1 Profile 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 1 Any 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])
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 1 Email + /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 2 Email + /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])
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]