tokyo-boy/inventory-backend
0
1# Deployment Guide2 3This document explains how to deploy the Inventory Order Management System using Render (Backend + PostgreSQL) and Vercel (Frontend).4 5---6 7# Architecture8 9```text10Frontend (Vercel)11 │12 ▼13Backend API (Render)14 │15 ▼16PostgreSQL Database (Render)17```18 19---20 21# Prerequisites22 23Before deployment, ensure you have:24 25* GitHub repository pushed26* Docker Hub account (for backend image submission)27* Render account28* Vercel account29 30---31 32# Backend Deployment (Render)33 34## Step 1: Create PostgreSQL Database35 361. Login to Render372. Click **New**383. Select **PostgreSQL**394. Configure:40 41```text42Name: inventory-db43Database: inventory_db44User: inventory_user45Region: nearest region46```47 485. Click **Create Database**49 50After creation, copy the:51 52```text53External Database URL54```55 56You will use it as:57 58```env59DATABASE_URL=<Render Database URL>60```61 62---63 64## Step 2: Create Backend Web Service65 661. Click **New**672. Select **Web Service**683. Connect GitHub Repository694. Select repository70 71### Configuration72 73```text74Root Directory: backend75Environment: Python76Build Command:77pip install -r requirements.txt && alembic upgrade head78 79Start Command:80uvicorn app.main:app --host 0.0.0.0 --port $PORT81```82 83---84 85## Step 3: Configure Environment Variables86 87Add the following variables:88 89```env90APP_NAME=Inventory Order Management API91 92APP_ENV=production93 94DEBUG=false95 96DATABASE_URL=<Render Database URL>97 98CORS_ORIGINS=https://your-frontend.vercel.app99 100LOW_STOCK_THRESHOLD=10101 102LOG_LEVEL=INFO103```104 105---106 107## Step 4: Deploy Backend108 109Click:110 111```text112Manual Deploy113→ Deploy Latest Commit114```115 116After deployment, Render will generate:117 118```text119https://your-backend.onrender.com120```121 122Verify:123 124```text125https://your-backend.onrender.com/docs126```127 128Swagger documentation should open successfully.129 130---131 132# Frontend Deployment (Vercel)133 134## Step 1: Import Repository135 1361. Login to Vercel1372. Click **Add New Project**1383. Import GitHub Repository139 140---141 142## Step 2: Configure Build Settings143 144```text145Framework Preset: Vite146 147Root Directory: frontend148 149Build Command:150npm run build151 152Output Directory:153dist154```155 156---157 158## Step 3: Configure Environment Variables159 160Add:161 162```env163VITE_API_BASE_URL=https://your-backend.onrender.com/api/v1164 165VITE_APP_NAME=Inventory Order Management166 167VITE_APP_ENV=production168```169 170---171 172## Step 4: Deploy Frontend173 174Click:175 176```text177Deploy178```179 180After deployment:181 182```text183https://your-app.vercel.app184```185 186will be available.187 188---189 190# Configure Backend CORS191 192Update Render backend environment variable:193 194```env195CORS_ORIGINS=https://your-app.vercel.app196```197 198Redeploy backend after updating.199 200---201 202# Docker Deployment (Optional)203 204## Build Backend Image205 206```bash207docker build \208-t inventory-backend \209./backend210```211 212## Run Backend213 214```bash215docker run \216-p 8000:8000 \217inventory-backend218```219 220---221 222## Build Frontend Image223 224```bash225docker build \226-t inventory-frontend \227./frontend228```229 230## Run Frontend231 232```bash233docker run \234-p 3000:80 \235inventory-frontend236```237 238---239 240# Local Development241 242## Start Using Docker Compose243 244From project root:245 246```bash247docker compose up --build248```249 250Application URLs:251 252```text253Frontend:254http://localhost:5173255 256Backend:257http://localhost:8000258 259Swagger:260http://localhost:8000/docs261```262 263---264 265# Database Migration266 267Create migration:268 269```bash270alembic revision --autogenerate -m "migration_name"271```272 273Apply migration:274 275```bash276alembic upgrade head277```278 279Rollback migration:280 281```bash282alembic downgrade -1283```284 285---286 287# Seed Sample Data288 289Run:290 291```bash292python -m app.db.seed293```294 295or:296 297```bash298docker compose exec backend python -m app.db.seed299```300 301---302 303# Health Checks304 305Backend API:306 307```text308GET /309```310 311Expected response:312 313```json314{315 "message": "Inventory Order Management API",316 "status": "healthy"317}318```319 320Swagger UI:321 322```text323/api/docs324```325 326---327 328# Submission Links329 330After deployment, submit:331 332## GitHub Repository333 334```text335https://github.com/your-username/inventory-order-management336```337 338## Backend Docker Hub Image339 340```text341https://hub.docker.com/r/your-username/inventory-backend342```343 344## Frontend Hosted URL345 346```text347https://your-app.vercel.app348```349 350## Backend API URL351 352```text353https://your-backend.onrender.com354```355 356---357 358Deployment completed successfully.359 