Skip to main content

Contributing to the AutoRoute Project

Introduction

Thank you for your interest in contributing to the AutoRoute project! Our goal is to simplify and automate the creation of SaaS/PaaS solutions. We’re excited to welcome you to our community.

Here’s a guide on how you can contribute:

Getting Started

Understanding the Project: Familiarize yourself with the project’s features, design philosophy, and architecture. Spend some time exploring the codebase and reading the existing documentation (md and docstrings).

Quick and Incomplete Guide:

  1. @auto_route:

    1. The naming conversion for functions using this wrapper is http-method_tag_*detail :

      1. where http_method is in [get, post, put, delete, patch, options, head, trace]

      2. the tag is the name of the class that the function is in, e.g. customer

      3. the detail is the name of the function, in the example above, the detail would be id

      4. e.g.  ## Areas of Contribution

    api = APIAutoRouter()
    
     class User(BaseModel):
         id: int
         name: str
    
     @api.register()
     class User_Controller:
         @api.route()
         def get_user_by_id(id: int):
             return {"id": id, "name": "User"}
    
         @api.route()
         def post_user_by_id(user: User):
             return {"id": user.id, "name": user.name}
    
         @api.route()
         def delete_user_by_id(id: int):
             return {"id_deleted": id}
  2. @auto_app:

    1. Easy Integration

    # Also includes AutoApp class for auto-generating FastAPI applications
    from auto_app import APIAutoApp
    
    APIAutoApp(routers_list=[api.router]).run(host='localhost', port=8000)
    1. Flexible

    stripe_router_config = AutoLoadRouterConfigObject(
        module_path='Stripe/stripe_class.py',
        router_names=['stripe_router'],
        init_classes=[
            InitClassObject(class_name='Customer'),
            InitClassObject(class_name='Payment_Intent'),
            InitClassObject(class_name='Subscriptions'),
        ]
    )
    
    api_auto_app = APIAutoApp(routers_list=[stripe_router_config])
    
    # Can accept any FastAPI app including custom ones
    app = api_auto_app.build_app() # This is done under the hood if app obj not passed, here done explicitly for clarity
    api_auto_app.run(host='localhost', port=8000, app=app)
  1. Documentation: Clear, comprehensive documentation is crucial for any successful open-source project. Help us improve our documentation by creating tutorials, adding usage examples, and improving descriptions of features and configurations.

  2. Continuous Integration/Continuous Deployment (CI/CD): We’re always aiming to improve our automated testing and deployment processes. If you have experience with CI/CD platforms like GitHub Actions, Travis CI, or Jenkins, your expertise could be incredibly valuable.

  3. Automated Testing: Robust testing is a core part of our commitment to code quality. Help us achieve this by writing unit tests and improving our code coverage.

  4. Code Quality Checks: We’re committed to maintaining a clean and readable codebase. Contribute by improving our linting processes, static code analysis, and enforcing our code style guidelines.

  5. Debugging Pipelines: This is an exciting part of our project. If you have ideas on how to include more common issues and security checks, or ways to extend our debugging with user-defined checks, we would love to hear from you.

  6. Payment Integrations: We currently support Stripe, but we aim to provide more flexibility for our users. Help us integrate other payment providers like PayPal, Square, or even cryptocurrencies.

  7. Configuration Options: We want to make our project as flexible as possible. Your contributions could help us support different deployment options, database backends, and more.

  8. API Wrappers: We currently provide wrappers for Google applications. Help us extend our reach by adding wrappers for other popular APIs, such as social media APIs or other cloud service APIs.

  9. Multi-Language Support: We already support over 50 languages thanks to openapi.json and the OpenAPI SDK generator. Help us extend our reach by translating our documentation or other parts of our project into other languages.

Community

Finally, we encourage all contributors to participate in our community. Join our forum or chat room, sign up for our mailing list, and help us build a friendly, active community around our project.

Thank you for considering contributing to AutoRoute. We look forward to working with you!

Metadata

Release files for auto-route 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for auto-route 0.1.7
File Size Uploaded Provenance
auto_route-0.1.7.tar.gz 23.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for auto-route 0.1.7
File Interpreter ABI Platform
auto_route-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 46.0 kB

Release files / auto_route-0.1.7.tar.gz

Download URL auto_route-0.1.7.tar.gz
Size 23.2 kB
Tags Source
SHA-256 checksum
How to use checksums
210e2b43fbe6742995c981d3ee8e28ffd0a0832cb35d4a00f6f5d9212bd9a54c
BLAKE2b-256 checksum
How to use checksums
b5e15de471bb13e122604017dc019f0bab37c1b3e9a2465c005fabef7cd1d130
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / auto_route-0.1.7-py3-none-any.whl

Download URL auto_route-0.1.7-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99a06f74210d4160b1ff5c701c517dbd5229459465de84ec74ffd2db620972ae
BLAKE2b-256 checksum
How to use checksums
96644699aa8a0c62c33d18d91807ba60f34b4729dff122dc8dbea63a9aa95d54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Security for auto-route 0.1.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page