This runbook describes how to get AnimeRec running locally for backend tests, frontend development, and optional integration/E2E validation.
- Python 3.11+
- Node.js 18+
- npm
- Bash (Git Bash on Windows is fine)
- Terraform 1.4+
- AWS CLI configured (only needed for infra/deploy or live integration checks)
git clone <repo-url>
cd animerec
python -m venv .venvActivate the virtual environment:
# Windows (Git Bash)
source .venv/Scripts/activate
# Windows (PowerShell)
.\.venv\Scripts\Activate.ps1
# macOS/Linux
source .venv/bin/activatepython -m pip install --upgrade pip
pip install pytest
cd frontend
npm ci
cd ..- Copy .env.example to
.envif you plan to run optional live integration checks. - Copy frontend/.env.example to
frontend/.env.developmentif you need a local API base override.
pytest -q backendcd frontend
npm test -- --watch=false --passWithNoTestscd frontend
E2E_TESTS=1 E2E_BASE_URL=http://localhost:3001 npm run test:e2eINTEGRATION_TESTS=1 API_BASE=<api-base-url> pytest -q backend/tests/integration/test_live_auth_flow.pybash scripts/package_lambdas.shExpected output: zip artifacts under build/lambdas/ for each Lambda directory that contains a handler.py file.
terraform -chdir=infrastructure/terraform fmt -check -recursive
terraform -chdir=infrastructure/terraform validate
terraform -chdir=infrastructure/terraform plan -var-file=envs/dev.tfvars- If E2E tests are skipped, ensure
E2E_TESTS=1is set. - If live integration test is skipped, set both
INTEGRATION_TESTS=1andAPI_BASE. - If Lambda packaging fails due to missing
zip, the script falls back to Pythonzipfile; verifypython3is on your PATH.