2024-01-09 13:43:18 +03:00
|
|
|
# Dashboard
|
|
|
|
|
|
|
|
The dashboard is the entrypoint into the application. It includes project
|
|
|
|
management, project sharing, and user accounts and authentication.
|
|
|
|
|
|
|
|
## Folder structure
|
|
|
|
|
|
|
|
- `mock/`: Overrides for specific files in `src/` when running Playwright tests.
|
2024-02-26 17:51:44 +03:00
|
|
|
- `e2e/`: Contains end-to-end tests.
|
2024-01-09 13:43:18 +03:00
|
|
|
- `**/__tests__/`: Contains all unit tests. Unit tests MUST be in a `__tests__/`
|
2024-02-26 17:51:44 +03:00
|
|
|
subfolder, not beside (and not inside) the module they are testing.
|
2024-01-09 13:43:18 +03:00
|
|
|
- `src/`: The dashboard application.
|
|
|
|
- `index.html`: The sole HTML file used by this SPA. It imports the TS entry
|
|
|
|
point.
|
|
|
|
- `authentication/src/`: The main body of the app.
|
|
|
|
- `index.tsx`: The TS entry point.
|
|
|
|
- `providers/`: Contains React `Context`s used by the main app.
|
|
|
|
- `components/`: Contains the root component for the app.
|
|
|
|
- `dashboard/`: The main body of the app. Directly in the folder, there are
|
|
|
|
some utility modules that do not belong elsewhere.
|
|
|
|
- `components/`: Contains all components used by the main app.
|
|
|
|
- `events/`: Custom discriminated unions used to communicate messages
|
|
|
|
between unrelated components.
|
|
|
|
- `authentication/`: The authentication flow. This includes login,
|
|
|
|
registration, and changing passwords.
|
|
|
|
- `components/`: Contains all components used by the authentication flow.
|
|
|
|
- `providers/`: Contains React `Context`s required for authentication, and
|
|
|
|
used by the main app.
|
2024-02-26 17:51:44 +03:00
|
|
|
- `index.html`: The entrypoint, in the format required by Vite.
|
|
|
|
- `404.html`: A copy of the entrypoint. This is served on unknown routes by
|
|
|
|
certain static hosting providers.
|
|
|
|
- `esbuild-config.ts`: Configuration for ESBuild based on the environment
|
|
|
|
variables. This is a dependency of `esbuild-config.ts` in sibling modules.
|