Skip to content

General Workflow

The flow below is derived from the real route structure (dashboard/src/routes/browserRouter.tsx, requireAuth.tsx, roleAccess.tsx) and the service layer; it contains no invented components or steps.

flowchart TD
    A[User opens the site] --> B{Is there a session?<br/>Redux admin state}
    B -- No --> L[Login page /login]
    L -->|Username + password submitted<br/>POST /login| C{Backend<br/>validated?}
    C -- No --> L
    C -- Yes --> D[Token + user info<br/>written to Redux + localStorage]
    B -- Yes --> E
    D --> E[Platforms /platform]
    E --> F{Is the user's<br/>role 'user'?}
    F -- Yes --> E
    F -- No / other roles --> G[Notes /notlar]
    F -- No / other roles --> H[Settings /ayarlar]
    G --> G1[Create / edit / delete a note]
    G1 --> G2[Add a reminder time]
    G2 --> G3{Has the reminder<br/>become due?}
    G3 -- Yes --> G4[In-app notification<br/>DueReminderDialog]
    G --> G5[Send the note by email<br/>Mail Box flow]
    H --> H1[Add / update / delete a platform module]
    H --> H2[Edit and save module display order]
    E --> I[Click a module card]
    I --> J[Navigate to its address<br/>in-app or a new tab]
    E -.-> K{Did any request<br/>return 401 / 403?}
    G -.-> K
    H -.-> K
    K -- Yes --> M[Automatic logout<br/>session data cleared]
    M --> L

Step-by-step summary

  1. Login: the user logs in from /login with a username and password (POST /login). After three failed attempts, a 30-second login lockout kicks in. On success, the token and user info are written to both Redux and localStorage, and the user is redirected to /platform.
  2. Home screen (Platforms): every user, regardless of role, sees the platform modules and can click a card to navigate to its address (in-app or a new tab).
  3. Role check: users with the user role stay on Platforms only; every other role (or an empty role field) can also reach the Notes and Settings pages.
  4. Note and reminder cycle: on the Notes page, notes are created/edited/deleted and reminder times are added; due reminders are surfaced automatically via an in-app dialog while the app is open. Notes can also be shared by email via the "Mail Box" flow.
  5. Administration (Settings): authorized roles can add and edit platform modules and save their display order (manually or via an automatic rule).
  6. Session ending: if the backend returns 401/403 on any request, the app automatically logs out, clears legacy localStorage fields, and redirects the user back to /login.

For field/action-level detail on every screen in this flow, see Pages; for which backend endpoint each step calls, see API Documentation.