This repository contains a full-stack integration management application. The React frontend lets users initiate OAuth flows and interact with connected services, while the FastAPI backend orchestrates authentication, data retrieval, and Redis-backed credential storage. Supported third-party integrations include Airtable, Notion, and HubSpot.
- frontend/: React application created with Create React App
- backend/: FastAPI service exposing integration endpoints
- integrations/: Service-specific logic for Airtable, Notion, and HubSpot
- redis_client.py: Async Redis helper utilities
- .zencoder/: Repo metadata and assistance rules
- Python 3.11 (installed via the
backend/.venvvirtual environment) - Node.js 18+ with npm
- Redis (local or remote instance reachable from the backend)
- Git (optional, for version control)
- Open PowerShell.
- Navigate to the backend directory and activate the virtual environment:
Set-Location "c:\Users\TEMP\Downloads\integrations_technical_assessment\backend" .\.venv\Scripts\Activate.ps1
- Install or refresh dependencies if needed:
pip install -r requirements.txt - Configure environment variables before running the app:
REDIS_HOST: Hostname or IP of the Redis instance (defaults tolocalhost).
$env:REDIS_HOST = "localhost"
- Open a second PowerShell window.
- Move to the frontend directory:
Set-Location "c:\Users\TEMP\Downloads\integrations_technical_assessment\frontend"
- Install dependencies (once per environment):
npm install
Set-Location "c:\Users\TEMP\Downloads\integrations_technical_assessment\backend"
.\.venv\Scripts\Activate.ps1
uvicorn main:app --reload- Service URL: http://127.0.0.1:8000
- Use
Ctrl+Cto stop the server.
Set-Location "c:\Users\TEMP\Downloads\integrations_technical_assessment\frontend"
npm start- App UI: http://localhost:3000
- Use
Ctrl+Cto stop the dev server.
- Launch the backend with the commands above in one PowerShell window.
- Start the frontend in a separate PowerShell window.
- Ensure the frontend can reach the backend at http://127.0.0.1:8000. CORS is pre-configured for requests from
http://localhost:3000.
- Frontend:
npm run build(outputs tofrontend/build) - Backend: Deploy the FastAPI app with a production ASGI server (e.g., Uvicorn with workers or Gunicorn + Uvicorn workers) and point to the same
main:appentry point.
ModuleNotFoundErrorin backend: Ensure the virtual environment is activated and dependencies are installed viapip install -r requirements.txt.- Redis connection issues: Verify
REDIS_HOST, network accessibility, and that Redis is running on port 6379. - Frontend cannot reach backend: Confirm both servers are running and that the backend address matches the frontend configuration (default
http://127.0.0.1:8000).
- FastAPI documentation: https://fastapi.tiangolo.com/
- React documentation: https://react.dev/
- Redis documentation: https://redis.io/docs/