Multi-service job portal application with web scraping, API backend, and frontend dashboard.
# Initialize (first time)
make init
# Start services
make up
# View logs
make logs
# Stop services
make downSee make help for all commands.
- Backend: FastAPI + PostgreSQL (port 8000)
- Frontend: Angular + ApexCharts (port 4200)
- Runners: Python job scrapers (cron scheduled)
- Database: PostgreSQL (port 5432)
Copy .env.example to .env and configure:
# Database
POSTGRES_USER=jobportal_user
POSTGRES_PASSWORD=jobportal_password
POSTGRES_DB=jobportal
# API Keys (change in production)
API_KEY_ADMIN=...
API_KEY_WEBSCRAPER=...
API_KEY_FULLREAD=...
API_KEY_FRONTEND=...- API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Frontend: http://localhost:4200
- Database: localhost:5432
This is the main repository using git submodules:
Backend/→ JobPortal-BackendFrontend/→ JobPortal-FrontendRunners/→ JobPortal-Runners
Clone with submodules:
git clone --recursive <main-repo-url>Update submodules:
git submodule update --remote --mergeMake changes in a submodule:
cd Backend
# Make changes
git add .
git commit -m "Your changes"
git push origin main
# Update main repo reference
cd ..
git add Backend
git commit -m "Update Backend submodule"
git pushDOCKER_QUICKREF.md- Docker commands referenceMakefile- All available make commands- Backend README:
Backend/README.md - Frontend README:
Frontend/README.md - Runners README:
Runners/README.md