Skip to main content
By the end of this guide you will have a fully functional local instance of TenderCheck AI with the React frontend running on port 3000, the Express/TypeScript backend running on port 3001, and complete AI-powered tender analysis and proposal validation connected to a live Turso database and Gemini 2.5 Flash.

Prerequisites

Make sure the following are available before you begin:

Setup Steps

1

Clone the Repository

2

Install Backend Dependencies

3

Configure Backend Environment

Create a .env file inside the backend/ directory by copying the example and filling in your credentials:
4

Initialize the Turso Database

Create a new Turso database and generate an access token using the Turso CLI:
Copy the URL and token into your backend/.env. The database schema (tables for users, tenders, and analyses) initialises automatically the first time the backend starts — no manual migration step is required.
5

Install Frontend Dependencies

6

Configure Frontend Environment

Create a .env file inside the frontend/ directory:
VITE_API_BASE_URL points the React app at your local backend. VITE_GOOGLE_CLIENT_ID is required only if you want to enable Google Sign-In locally; you can leave it blank to use email/password auth only.
7

Start the Backend

Open a terminal in the backend/ directory and run:
The backend starts on port 3001 using tsx watch for hot-reload. You should see:
8

Start the Frontend

Open a second terminal in the frontend/ directory and run:
Vite starts the React application on port 3000.
9

Try the Application

Open http://localhost:3000 in your browser.
  1. Click Register and create a new account.
  2. Log in with your credentials.
  3. On the dashboard, upload docs/Testing_docs/Pliego_Tender_IT_Security.pdf as the tender document.
  4. Wait for the AI to extract all requirements — this typically takes 15–30 seconds.
  5. Once the tender analysis is complete, upload docs/Testing_docs/Oferta_Offer_IT_Security.pdf as the proposal.
  6. Review the compliance validation report, click any citation badge to inspect the source text, and export a PDF report.
The repository includes two sample documents in docs/Testing_docs/ for end-to-end testing:
  • Pliego_Tender_IT_Security.pdf — an IT Security public tender document. Use this to test the Tender Analysis flow.
  • Oferta_Offer_IT_Security.pdf — a vendor offer for the same contract. Use this to test the Proposal Validation flow (requires a completed tender analysis first).

Running Tests

TenderCheck AI enforces strict quality gates across unit, integration, and end-to-end layers. Unit tests (Vitest — run from backend/ or frontend/):
End-to-end tests (Playwright — run from the repo root):
Coverage report (enforces 100% domain layer, 92%+ global):
To view the Playwright HTML report after a test run:
Open two terminal windows side by side — one in backend/ running npm run dev, and one in frontend/ running npm run dev. Both support hot-reload, so code changes are reflected instantly.