Skip to main content

Deployment Guide

The DeSIC Platform runs on a split hosting model: the React frontend on Vercel, and the Express API together with PostgreSQL on Render, both on free-tier plans.

Deployment steps

1

Configure backend services

Set environment variables and database connection details for the Render-hosted backend service.

2

Initialize the database

Provision the PostgreSQL instance and run migrations to populate the required tables described in the data model.

3

Start and verify the backend

Start the backend server and confirm the API endpoints respond correctly before connecting a frontend to them.

4

Build and deploy the frontend

Build the React application and deploy it to Vercel, wired for continuous deployment on every push to the main branch.

5

Connect frontend to backend

Point the deployed frontend's API base URL at the live backend endpoint.

6

Run final live-environment testing

Exercise the full set of role-based workflows against the live environment before considering the deployment complete.

Continuous deployment

Both services deploy automatically from GitHub: a push to the tracked branch triggers a fresh build on Vercel for the frontend, and a corresponding redeploy on Render for the backend. This is what the maintainability requirements mean by "reproducible deployment using version-controlled scripts" — there's no manual upload step in the normal workflow.

Known operational caveat

Render's free tier introduces cold-start latency: an idle backend service spins down and takes a few seconds to respond to the first request after a period of inactivity. This was a known contributor to the timeline overrun described in Timeline and Budget, and it remains the primary reason a move to paid hosting is recommended in the roadmap.