a6a9777f31e92523b60af21eef17e83467a2f767
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
- On boot the app calls
GET /api/auth/mewithcredentials: 'include'.- 200 —
{ user, googleClientId }(valid session) - 401 / 403 —
{ error, googleClientId }(no session or no longer authorized)
- 200 —
- The login page uses
googleClientIdfrom that response to obtain a Google ID token and posts it toPOST /api/auth/loginas{ idToken }. - Dashback sets an HTTP-only
tokencookie; all later API calls send it automatically. - 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
Languages
JavaScript
99.6%
HTML
0.2%
CSS
0.1%