server.js
Entry point for the Express.js backend server, sets up middleware and mounts routes
routes/api.js
Main API router that aggregates all sub-routes for test suites, runs, and results
routes/testSuites.js
CRUD endpoints for managing E2E test suites and their configurations
routes/testRuns.js
Endpoints for triggering, monitoring, and retrieving test run executions
routes/results.js
Endpoints for fetching detailed test results, logs, and screenshots
routes/auth.js
Authentication endpoints for user registration, login, and token refresh
middleware/auth.js
JWT verification middleware to protect authenticated routes
middleware/errorHandler.js
Global error handling middleware for consistent API error responses
db/index.js
PostgreSQL connection pool setup using the Neon serverless driver
db/schema.sql
SQL schema definitions for users, test suites, test runs, and results tables
db/migrations/001_initial.sql
Initial database migration creating all core tables and indexes
services/testRunner.js
Core service that orchestrates test execution, manages queues, and reports results
services/notifier.js
Service for sending email notifications on test completion or failure
services/storage.js
Service for uploading and retrieving test artifacts such as screenshots and videos to R2
workers/runWorker.js
Background worker process that picks up queued test runs and executes them asynchronously
client/src/main.tsx
React application entry point, sets up router and global providers
client/src/App.tsx
Root application component defining top-level routes and layout
client/src/pages/Dashboard.tsx
Main dashboard showing summary stats, recent runs, and pass/fail trends
client/src/pages/TestSuites.tsx
Page for listing, creating, editing, and deleting test suites
client/src/pages/TestRunDetail.tsx
Detailed view of a single test run showing per-test results, logs, and screenshots
client/src/pages/History.tsx
Paginated history of all past test runs with filtering and search
client/src/pages/Settings.tsx
User and project settings including notification preferences and API key management
client/src/pages/Login.tsx
Authentication page for user login and registration
client/src/components/RunStatusBadge.tsx
Reusable badge component displaying pass, fail, running, or queued status
client/src/components/TestResultsTable.tsx
Sortable and filterable table component for displaying individual test case results
client/src/components/TrendChart.tsx
Line chart component visualizing pass/fail rates over time using Recharts
client/src/components/ScreenshotViewer.tsx
Modal component for viewing test failure screenshots and video replays
client/src/components/Navbar.tsx
Top navigation bar with project switcher, user menu, and notifications
client/src/hooks/useTestRuns.ts
Custom React hook for fetching and polling live test run status
client/src/hooks/useAuth.ts
Custom hook managing authentication state, login, logout, and token storage
client/src/api/client.ts
Axios instance configured with base URL, auth headers, and response interceptors
client/src/store/index.ts
Zustand global state store for auth, active project, and notification state
client/vite.config.ts
Vite build configuration with proxy settings for local API development
.env.example
Example environment variable file documenting all required configuration keys
package.json
Root package manifest with scripts for running server, client, and workers concurrently