2026-08-06 07:39:30 +02:00
u
2026-08-06 00:19:21 +02:00
u
2026-07-31 20:37:43 +02:00
2026-08-06 07:39:30 +02:00
u
2026-08-03 07:13:42 +02:00
2026-08-06 07:39:30 +02:00
u
2026-08-03 00:22:46 +02:00
u
2026-08-03 00:22:46 +02:00
u
2026-07-31 07:00:04 +02:00
u
2026-08-01 03:37:40 +02:00
u
2026-07-31 20:37:43 +02:00

Dashfront

Vite + React web client for Dashback. Auth uses Google Sign-In and a cookie session on the Dashback API.

Stack

  • Vite 8 (type: module)
  • React 19 (function components only)
  • MUI 9 (@mui/material, @mui/icons-material, Emotion)
  • notistack (toast notifications)
  • Google Identity Services + Dashback cookie auth

Getting started

npm install
npm run dev

Open http://localhost:4209. The dev server proxies /api to Dashback at http://localhost:4208 and uses Vite HMR for fast reloads.

To test the full PWA precache (production build + preview, no HMR), use npm run dev:pwa instead.

Dashback must be running and your Google account must be authorized on the backend.

Auth flow

  1. On boot the app calls GET /api/auth/me with credentials: 'include'.
    • 200 — { user, googleClientId } (valid session)
    • 401 / 403 — { error, googleClientId } (no session or no longer authorized)
  2. The login page uses googleClientId from that response to obtain a Google ID token and posts it to POST /api/auth/login as { idToken }.
  3. Dashback sets an HTTP-only token cookie; all later API calls send it automatically.
  4. Sign out calls POST /api/auth/logout.

The Vite dev proxy (/api → Dashback) satisfies the same-origin cookie requirement without needing HTTPS on the frontend dev server.

Architecture

  • src/api/index.js — all backend communication (credentials: 'include').
  • src/auth/googleSignIn.js — Google Identity Services helper.
  • src/auth/AuthProvider.jsx — session state + login/logout.
  • src/auth/useAuth.js — auth context hook.
  • src/components/* — small function components with local state.
Description
No description provided
Readme 47 MiB
Languages
JavaScript 99.6%
HTML 0.2%
CSS 0.1%