Todo API Orchestrator¶
📂 Project Path: python/web-frameworks/django/todo-orchestrator/
Technologies: Django • FastAPI • Python • Testing
Todo API Orchestrator¶
📂 Project Path: python/web-frameworks/django/todo-orchestrator/
🔗 GitHub Repository: https://github.com/AmalieShi/amalie_projects
Development and Testing Tool¶
A comprehensive Django-based testing and orchestration platform designed for developers working with the FastAPI Todo List API. This tool provides advanced debugging, testing, and server management capabilities.
🌐 Live Demo: https://to-do-list-testing-orchestrator.onrender.com 🚀 Deployed on: Render with automatic HTTPS, scaling, and zero-config deployment
⚠️ Note: This deployment uses Render’s free tier. After periods of inactivity, the service may take up to 50 seconds to reconnect when first accessed.
Purpose¶
Target Audience: Developers, QA Engineers, API Testers Use Case: Development, testing, debugging, and API validation
Key Features¶
Server Management¶
One-click FastAPI server control (start/stop)
Real-time server status monitoring
Process management with PID tracking
Automatic server health checks
Advanced API Testing¶
Complete API testing suite for all endpoints
Interactive forms for crafting custom requests
Raw JSON request builder for advanced testing
Response inspection with formatted display
Request/response logging with detailed history
Todo Management with Debugging¶
Full CRUD operations with comprehensive debugging
Real-time todo status updates
Edit functionality with modal interfaces
Completion tracking with detailed logging
Error handling and troubleshooting tools
Developer Dashboard¶
API request logs with execution times
Server performance metrics
Swagger UI integration for API documentation
Tabbed interface for organized workflow
Technical Features¶
Bootstrap 5 responsive interface
Real-time status updates every 30 seconds
Comprehensive error handling with detailed messages
Debug logging throughout the application stack
Request history with collapsible data views
CSRF protection on all forms
Getting Started¶
Local Development¶
Install dependencies:
pip install -r requirements.txtRun migrations:
python manage.py migrateStart the server:
python manage.py runserver 8001Visit
http://localhost:8001to access the orchestrator
Deploy to Render¶
This project is configured for deployment on Render.com with the following files:
render.yaml: Deployment configuration
build.sh: Build script that installs dependencies, runs migrations, and collects static files
start.sh: Startup script that runs the Django app with gunicorn
requirements.txt: Production dependencies including whitenoise for static file serving
Deployment Steps:¶
Create a new Web Service on Render
Connect your GitHub repository
Set the service name (e.g., “django-todo-orchestrator”)
Render will automatically use the
render.yamlconfigurationUpdate the CORS settings in
settings.pywith your deployed FastAPI server URL
Environment Variables:¶
Render automatically sets these environment variables:
RENDER=1- Enables production settingsDEBUG=False- Disables debug modeDJANGO_SECRET_KEY- Auto-generated secret key
Post-Deployment:¶
Update
FASTAPI_SERVER_URLin settings.py with your FastAPI server URLUpdate
CORS_ALLOWED_ORIGINSto include your FastAPI server domainThe orchestrator will be available at
https://your-service-name.onrender.com
Prerequisites¶
Python 3.8+
FastAPI Todo List API server
Virtual environment activated
Installation & Setup¶
# Navigate to project
cd todo-orchestrator
# Install dependencies from pyproject.toml
pip install -e .
# Run database migrations
python manage.py migrate
# Start the development server
python manage.py runserver 8001
Usage¶
Access the dashboard at http://localhost:8001
Start the FastAPI server using the server controls
Test API endpoints using the testing interface
Manage todos with full debugging capabilities
Monitor API logs in the dedicated logs tab
Dependencies¶
FastAPI Server: Must be running on port 8000
Django 6.0.4: Web framework
Bootstrap 5: UI framework
Requests: HTTP client for API communication
psutil: System process management
Default Ports¶
Todo Orchestrator: http://localhost:8001
FastAPI Server: http://localhost:8000 (managed by orchestrator)
Note: This is a development tool. For user-facing todo management, see the todo-display project in the parent directory.