Development Setup Guide
Overview
This guide will help you set up a complete development environment for JobHive. The platform uses Django for the backend, React for the frontend, and requires several external services for full functionality.Prerequisites
System Requirements
- Operating System: macOS, Linux, or Windows with WSL2
- Python: 3.11 or higher
- Node.js: 18.x or higher
- Docker: 20.10 or higher (for services)
- Git: Latest version
- Memory: 8GB RAM minimum, 16GB recommended
- Storage: 10GB free space
Required Tools
Initial Setup
1. Clone the Repository
2. Environment Configuration
Environment Variables (.env.local)
Backend Setup
1. Python Environment Setup
2. Install Dependencies
3. Database Setup
4. Redis Setup
5. Initial Data Setup
6. Start Development Server
7. Start Background Workers
Frontend Setup (Optional)
If you’re working on the full-stack application:1. Install Node.js Dependencies
2. Frontend Environment Configuration
Frontend Environment Variables
3. Start Frontend Development Server
Docker Development Environment
For a complete containerized development environment:1. Docker Compose Setup
2. Verify Services
3. Django Commands in Docker
Database Management
Development Database Commands
Useful Database Queries
Testing Setup
1. Running Tests
2. Test Database
3. API Testing
Development Tools and Pre-commit Hooks
1. Code Quality Tools Setup
2. Code Formatting
3. Pre-commit Configuration (.pre-commit-config.yaml)
IDE Configuration
Visual Studio Code Setup
1. Recommended Extensions
2. VS Code Settings (.vscode/settings.json)
3. Launch Configuration (.vscode/launch.json)
PyCharm Setup
1. Project Configuration
- Open project in PyCharm
- Configure Python interpreter: Settings → Project → Python Interpreter
- Select existing virtual environment:
./venv/bin/python - Enable Django support: Settings → Languages & Frameworks → Django
- Set Django project root and settings module
2. Run Configurations
Troubleshooting Common Issues
Database Connection Issues
Redis Connection Issues
Migration Issues
Celery Issues
Permission Issues
Port Conflicts
Development Workflow
1. Daily Development Routine
2. Making Changes
3. Integration Testing
Additional Resources
Documentation Links
- Django Documentation
- Django REST Framework
- Celery Documentation
- PostgreSQL Documentation
- Redis Documentation
Development Tools
- Django Debug Toolbar
- Django Extensions
- Factory Boy (for test data)
- Pytest (alternative test runner)
