Start here for different use cases:
- QUICK_START.md - 5-minute setup guide ⭐ START HERE
- README.md - Complete documentation
- TRANSFORMATION_SUMMARY.md - Project overview
- FRONTEND_INTEGRATION.md - Connect the frontend
- API Docs (live) - http://localhost:8000/docs
- IMPLEMENTATION_CHECKLIST.md - Feature inventory
- pyproject.toml - Project metadata
- requirements.txt - Dependencies
webgenie_api/
│
├── 📄 DOCUMENTATION
│ ├── QUICK_START.md ← START HERE
│ ├── README.md
│ ├── FRONTEND_INTEGRATION.md
│ ├── TRANSFORMATION_SUMMARY.md
│ ├── IMPLEMENTATION_CHECKLIST.md
│ └── INDEX.md ← You are here
│
├── 📦 APPLICATION CODE
│ └── app/
│ ├── main.py # FastAPI application
│ ├── __init__.py
│ │
│ ├── core/ # Configuration & Setup
│ │ ├── config.py # Pydantic settings
│ │ ├── logging.py # JSON logging
│ │ ├── tasks.py # Celery configuration
│ │ └── __init__.py
│ │
│ ├── api/ # REST Endpoints
│ │ ├── datasets.py # Dataset CRUD
│ │ ├── jobs.py # Job management
│ │ ├── results.py # Results & analysis
│ │ └── __init__.py
│ │
│ ├── services/ # Business Logic
│ │ ├── datasets_service.py # Dataset operations
│ │ ├── jobs_service.py # Job orchestration
│ │ ├── inference_service.py # Algorithm execution
│ │ ├── __init__.py
│ │ └── runners/ # Algorithm runners
│ │ ├── utils.py # Shared utilities
│ │ ├── generic_runner.py # Generic GRN runner
│ │ └── __init__.py
│ │
│ ├── models/ # Data Models (Pydantic)
│ │ ├── job.py # Job schemas
│ │ ├── dataset.py # Dataset schemas
│ │ ├── result.py # Result schemas
│ │ └── __init__.py
│ │
│ └── workers/ # Background Tasks
│ ├── tasks.py # Celery tasks
│ └── __init__.py
│
├── 🧪 TESTS
│ └── tests/
│ ├── conftest.py # Pytest fixtures
│ ├── test_api.py # API tests
│ └── __init__.py
│
├── 🐳 DEPLOYMENT
│ ├── Dockerfile # Container image
│ ├── docker-compose.yml # Full stack setup
│ ├── .env.example # Configuration template
│ └── run.py # Production startup
│
├── ⚙️ CONFIGURATION
│ ├── requirements.txt # Dependencies
│ ├── pyproject.toml # Project metadata
│ ├── setup-dev.sh # Dev setup script
│ └── .gitignore
│
└── 📄 THIS FILE
└── INDEX.md
15+ Endpoints organized by function:
Datasets (/api/v1/datasets)
POST /register Register new dataset
GET / List datasets (paginated)
GET /{id} Get dataset
GET /{id}/preview Preview data
PATCH /{id} Update metadata
DELETE /{id} Delete dataset
Jobs (/api/v1/jobs)
POST / Submit job
GET / List jobs (filterable)
GET /{id} Get job status
GET /{id}/logs Retrieve logs
DELETE /{id} Cancel job
Results (/api/v1/results)
GET /job/{id} Get result
GET /job/{id}/summary Network summary
POST /compare Compare networks
GET /job/{id}/network/download Download network
POST /job/{id}/export Export (JSON/GraphML)
System
GET /health Health check
GET / API info
GET /api/v1/algorithms Available algorithms
- QUICK_START.md - Follow "Option 1: Docker Compose"
- Access http://localhost:8000/docs
- Try the endpoints
- QUICK_START.md - Follow "Option 2: Local Development"
- Run all 3-4 services
- Execute test requests
- Check logs and monitoring
- FRONTEND_INTEGRATION.md
- Set up frontend
- Configure API endpoints
- Test integration
- README.md - Full documentation
- IMPLEMENTATION_CHECKLIST.md - All features
- Explore source code in
app/ - Run tests in
tests/
| Component | Technology | Purpose |
|---|---|---|
| API Framework | FastAPI | REST endpoints |
| Data Validation | Pydantic | Type safety |
| Task Queue | Celery | Async jobs |
| Cache/Broker | Redis | Message queue |
| Async | asyncio | Async operations |
| Logging | python-json-logger | Structured logs |
| Container | Docker | Isolation |
| Orchestration | Docker Compose | Full stack |
# 1. Register dataset
curl -X POST http://localhost:8000/api/v1/datasets/register \
-d '{"name": "My Data", "source": {...}}'
# 2. Submit job
curl -X POST http://localhost:8000/api/v1/jobs \
-d '{"dataset_id": "...", "algorithm": "GRNBOOST2"}'
# 3. Monitor
curl http://localhost:8000/api/v1/jobs/job-xxx
# 4. Get results
curl http://localhost:8000/api/v1/results/job/job-xxx/summarycd webgenie_api
pytest # All tests
pytest -v # Verbose
pytest --cov=app # With coveragedocker-compose logs -f backend # Backend logs
docker-compose logs -f redis # Redis logs
docker-compose logs -f celery # Celery workerdocker-compose down # Stop
docker-compose down -v # Stop and remove volumes- Start with QUICK_START.md
- Try interactive docs at http://localhost:8000/docs
- Read README.md for details
- Read FRONTEND_INTEGRATION.md
- Copy example components
- Configure CORS and API URL
- Explore
app/core/for configuration - Read
app/services/for business logic - Check
app/api/for endpoint definitions - Review
app/models/for data schemas
- Study
Dockerfilefor container image - Review
docker-compose.ymlfor full stack - Check
.env.examplefor configuration - See README.md production section
- Read QUICK_START.md
- Run
docker-compose up -d - Access http://localhost:8000/docs
- Test a sample request
- Check FRONTEND_INTEGRATION.md if using frontend
- Review README.md for production deployment
Can't find something?
- Quick start issues → QUICK_START.md
- API questions → http://localhost:8000/docs (interactive)
- Frontend integration → FRONTEND_INTEGRATION.md
- Feature details → IMPLEMENTATION_CHECKLIST.md
- General info → README.md
- Project overview → TRANSFORMATION_SUMMARY.md
- First time? → Go to QUICK_START.md
- Want details? → Read README.md
- Integrating frontend? → Check FRONTEND_INTEGRATION.md
- Need reference? → See IMPLEMENTATION_CHECKLIST.md