Skip to main content

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.

Project description

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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

auto_route-0.1.7.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

auto_route-0.1.7-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file auto_route-0.1.7.tar.gz.

File metadata

  • Download URL: auto_route-0.1.7.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for auto_route-0.1.7.tar.gz
Algorithm Hash digest
SHA256 210e2b43fbe6742995c981d3ee8e28ffd0a0832cb35d4a00f6f5d9212bd9a54c
MD5 af8915cf190f0494e300dc5635a86462
BLAKE2b-256 b5e15de471bb13e122604017dc019f0bab37c1b3e9a2465c005fabef7cd1d130

See more details on using hashes here.

File details

Details for the file auto_route-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: auto_route-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for auto_route-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 99a06f74210d4160b1ff5c701c517dbd5229459465de84ec74ffd2db620972ae
MD5 473081650251a6cc65351a4e339ef34f
BLAKE2b-256 96644699aa8a0c62c33d18d91807ba60f34b4729dff122dc8dbea63a9aa95d54

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page