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, which is hidden from public until the professional approves it.
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 --> J{New or edit?} J -->|New| K[Review recorded\nHidden from public by default] J -->|Edit| L[Existing review updated] K --> M([Professional notified → Flow P5]) L --> M
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 multi-step registration form, submits their profile for admin review, and logs in once approved.
View diagram
100%
flowchart TD A([Professional lands on site]) --> B[Clicks Εγγραφή ως Επαγγελματίας] B --> C[Join page — Step 1\nName, specialty, bio\nemail, phone] C --> D[Step 2\nCategory] D --> E[Step 3\nCity, postal, canton, languages] E --> F[Step 4\nContact channel toggles] F --> G[Step 5\nProfile photo, gallery, review and submit] G --> H{Submits registration} H --> I[Confirmation screen\nΑναμένει έγκριση badge] I --> J([Admin reviews — Flow A1]) J --> K{Decision} K -->|Approved| L[Professional receives email\nProfile goes live] K -->|Rejected| M[Professional notified with reason] L --> N[Professional logs in] N --> O[Views own profile — own state]
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[Edit name, bio, profile photo] D -->|Κατηγορίες| F[Select / deselect categories] D -->|Τοποθεσία| G[Edit address, postal, city, canton] D -->|Γλώσσες| H[Add / remove languages] D -->|Κανάλια επικοινωνίας| I[Edit phone, email, response time\nToggle channels on/off] D -->|Φωτογραφίες| J[Upload or remove gallery photos] D -->|Ειδοποιήσεις| K[Toggle email notifications] D -->|Λογαριασμός| L[Change login email or password\nDeactivate or delete account] E & F & G & H & I & J & K & L --> M{Action} M -->|Αποθήκευση| N[Section saved] M -->|Ακύρωση| C N --> C 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, views it in the dashboard, and decides whether to publish it on their public profile.
View diagram
100%
flowchart TD A([User submits review → Flow U4]) --> B[Professional receives email\nYou have a new review on findemich] B --> C[Professional opens dashboard → Reviews tab] C --> D[New review shown — hidden from public by default] D --> E{Decision} E -->|Publish review| F[Review visible on public profile] E -->|Keep hidden| G[Review stays private] F --> H[Rating recalculates across all published reviews] G --> D
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]