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
Configure backend services
Set environment variables and database connection details for the Render-hosted backend service.
Initialize the database
Provision the PostgreSQL instance and run migrations to populate the required tables described in the data model.
Start and verify the backend
Start the backend server and confirm the API endpoints respond correctly before connecting a frontend to them.
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.
Connect frontend to backend
Point the deployed frontend's API base URL at the live backend endpoint.
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.
Related pages
- Infrastructure & Requirements for hardware and software prerequisites.
- Getting Started for setting up an equivalent environment locally.