A modern, robust web application for task and project management, built with FastAPI.
This monorepo has a flat layout with Python packages at the repo root:
| Component | Path | Description |
|---|---|---|
| route66 | route66/ |
FastAPI web application, REST API, and shared core library. |
| route66.core | route66/core/ |
Shared SDK — enums, types, utilities, SQLAlchemy ORM models, and Pydantic schemas. |
| route66.app_engine | route66/app_engine/ |
Unified native app engine — AppSpec, input schemas, web form rendering (form/), and container job runner (runner/). |
| CLI Scripts | bin/ |
CLI entry points: prerun, postrun, r66_monitor, test_launch. |
All shared types (TaskState, AppType, FileType, etc.), database models, and Pydantic validation schemas are defined once in route66.core and used by both the web service and the app runner. Install with pip install -e . (core only) or pip install -e ".[runner]" (includes runner dependencies).
-
Task Tracking:
Create, update, assign, and manage tasks with detailed metadata and project associations. -
RESTful API:
Comprehensive endpoints for CRUD operations on projects, tasks, files, datasets, and more. -
User Roles & Permissions:
Multiple user roles (admin, editor, initiator, etc.) with fine-grained access control. -
Project Management:
Organize tasks and resources under projects, with project membership and permissions. -
File & Data Management:
Upload, track, and associate files and datasets with tasks and projects. S3 integration supported. -
Web Interface:
User-friendly web UI for managing tasks, projects, and resources. -
Authentication & Authorization:
Integrated with OAuth2 and LDAP for secure user authentication and role-based authorization. -
Extensible CRUD Services:
Modular CRUD service layer for easy extension and customization. -
Interactive Documentation:
Automatic API docs available at/docs(Swagger UI) and/redoc.
git clone https://xxx/<REPO_NAME>.git
cd <REPO_NAME>
pip install -e ".[server]" # Web application
pip install -e ".[server,test]" # Web application + test dependencies
pip install -e ".[runner]" # Container job runner onlyRoute66 uses config.ini files for configuration management. The application reads configuration from two sources (in order of precedence):
~/.config.ini- User-specific configuration (overrides defaults)configs/config.ini- Repository defaults (committed to version control)
-
Copy the example configuration:
cp config.ini.example ~/.config.ini -
Edit
~/.config.iniand fill in your actual values:nano ~/.config.ini # or vim ~/.config.ini
-
Set proper file permissions (important for security):
chmod 600 ~/.config.ini
See the Configuration Guide and config.ini.example for the full list of sections, settings, and provider examples.
# Ensure ~/.config.ini is configured (see Configuration section above)
uvicorn route66.main:app --reloadVisit http://localhost:8000/docs for the interactive API documentation.
- Configuration Guide - Complete configuration reference
- Configuration Example - Example configuration file
- Developer Guide
- Deployment Guide
- API Reference
pip install -e ".[server,test]"
pytest --cov=route66 tests/| Name | |
|---|---|
| Neil Kuehnle | neil.kuehnle@abbvie.com |
| Jifeng Qian | jifeng.qian@abbvie.com |
For bug reports, feature requests, or questions, please:
Open a GitHub Issue in this repository. Start a GitHub Discussion. Contact one of the maintainers listed above.
Copyright (c) 2023 Abbvie Inc. This project is licensed under the MIT License.