Thank you for your interest in contributing! This guide will help you get started.
- Docker and Docker Compose
- Git
- (Optional) Python 3.11+ for running tests locally
-
Clone the repository
git clone https://github.com/mbuckingham74/Far-Reach-Jobs.git cd Far-Reach-Jobs -
Create environment file
cp .env.example .env
Edit
.envwith your values. For local development, you can use simple passwords. TheANTHROPIC_API_KEYis optional (AI features won't work without it). -
Create the Docker network (first time only)
docker network create npm_default
-
Start the services
docker compose up -d --build
-
Access the app
- Main site: http://localhost:8000
- Admin panel: http://localhost:8000/admin/login
docker compose downTo also remove the database volume (fresh start):
docker compose down -vWe use GitHub Flow - a simple branching model:
-
Create a branch from
main:git checkout main git pull origin main git checkout -b feature/your-feature-name
-
Make your changes with clear commit messages
-
Run tests (optional but recommended):
cd backend pip install -r requirements.txt pytest pytest-asyncio python -m pytest tests/ -v -
Push and open a PR:
git push -u origin feature/your-feature-name
Then open a Pull Request on GitHub.
| Prefix | Use For | Example |
|---|---|---|
feature/ |
New functionality | feature/job-alerts |
fix/ |
Bug fixes | fix/scraper-timeout |
chore/ |
Maintenance | chore/update-deps |
Far-Reach-Jobs/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI app entry point
│ │ ├── routers/ # API routes (admin, auth, jobs)
│ │ ├── models/ # SQLAlchemy models
│ │ ├── templates/ # Jinja2 HTML templates
│ │ └── services/ # Business logic
│ ├── scraper/
│ │ ├── runner.py # Scraper orchestration
│ │ └── sources/ # Scraper implementations
│ └── tests/ # Pytest tests
├── playwright-service/ # Headless browser service
├── frontend/static/ # Static assets
└── docker-compose.yml
- Python: Follow PEP 8. Use type hints where practical.
- HTML/Templates: Use Tailwind CSS utility classes.
- JavaScript: Minimal JS - prefer HTMX for interactivity.
Check the Roadmap for planned features. Good first issues:
- Add a scraper source: Know an Alaska employer with a jobs page? Add it via the admin panel and document any issues.
- Improve tests: We need better test coverage, especially for scrapers.
- UI/UX improvements: Mobile responsiveness, accessibility, design polish.
- Documentation: Improve these docs, add examples, fix typos.
Open an issue or reach out via the repository discussions.