Skip to content

Repository files navigation

Route66 Web Application

Build Status Coverage Status Python Version

A modern, robust web application for task and project management, built with FastAPI.

Repository Structure

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).


🚀 Features

  • 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.


📦 Installation

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 only

⚙️ Configuration

Route66 uses config.ini files for configuration management. The application reads configuration from two sources (in order of precedence):

  1. ~/.config.ini - User-specific configuration (overrides defaults)
  2. configs/config.ini - Repository defaults (committed to version control)

Setup Configuration

  1. Copy the example configuration:

    cp config.ini.example ~/.config.ini
  2. Edit ~/.config.ini and fill in your actual values:

    nano ~/.config.ini
    # or
    vim ~/.config.ini
  3. Set proper file permissions (important for security):

    chmod 600 ~/.config.ini

Configuration Sections

See the Configuration Guide and config.ini.example for the full list of sections, settings, and provider examples.


🏃‍♂️ Quick Start

# Ensure ~/.config.ini is configured (see Configuration section above)
uvicorn route66.main:app --reload

Visit http://localhost:8000/docs for the interactive API documentation.


📚 Documentation


🧪 Testing

pip install -e ".[server,test]"
pytest --cov=route66 tests/

Contributors

Maintainers

Name Email
Neil Kuehnle neil.kuehnle@abbvie.com
Jifeng Qian jifeng.qian@abbvie.com

Support

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.


📝 License

Copyright (c) 2023 Abbvie Inc. This project is licensed under the MIT License.

About

Route66 is a bioinformatics platform for packaging, deploying, and executing containerized applications.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages