Skip to main content

Interactive Python CLI for scaffolding backend projects (Flask, Django, FastAPI, etc.)

Project description

🌌 init-app

This is the "Source of Truth" document for your engine. I’ve designed this COMMANDLINE.md to look professional, high-tech, and crystal clear, exposing every feature from the Architect logic to the Infrastructure Forge.


image
image image

image image image image image image image

Version: 1.8.0

Engineer: Ashmeet Singh

This document outlines the full capabilities of the Project Engine. The engine supports two primary flows: Interactive UI (Menu-driven) and Headless CLI (Flag-driven).


🕹️ 1. Build Strategies

The engine behaves differently based on the -t (type) flag:

Strategy Behavior
auto_config Zero-Config. Uses smart defaults for the chosen framework. Best for rapid prototyping.
standard The Balanced Build. Generates common folder structures (routes, models, schemas).
production Enterprise Ready. Includes full infrastructure suites (Docker, K8s) and strict folder separation.
custom Total Control. Enables manual folder selection and individual __init__.py configuration.

🛠️ 2. CLI Flag Reference

Use these flags to bypass menus and automate your workflow.

Core Identity

  • name: The name of your project folder.
  • -f, --framework: fastapi, flask, django, others.
  • -s, --server: Specify the runner (e.g., uvicorn, gunicorn, hypercorn).
  • -t, --type: The build strategy (auto_config, standard, production, custom).

Architecture & Packages (Custom Mode)

  • --folders: Manually define every directory to be created.
  • --packages: Define which of those folders should be Python packages (adds __init__.py).

Data & Environment

  • --db: Set the database engine (sqlite, postgres, mysql, mongodb).
  • --venv: Enable virtual environment creation (y or n).

Infrastructure Forge

  • --docker: dockerfile, docker-compose, .dockerignore.
  • --github: main.yml, ci.yml, cd.yml.
  • --k8s: deployment.yml, service.yml, ingress.yml.
  • --jenkins: Jenkinsfile.

🚀 3. Usage Examples

A. The "Speed Demon" (Auto-Config)

Builds a FastAPI project with SQLite and a VENV instantly.

init-app quick_api -f fastapi -t auto_config --venv y

B. The "Full Stack Pro" (Production)

Builds a Django + Postgres app with Docker and GitHub Actions.

init-app pro_backend -f django -t production --db postgres --docker dockerfile docker-compose --github main.yml

C. The "Architect" (Deep Customization)

The most powerful command. Manually define folders and only make src and app Python packages.

init-app bespoke_engine -f fastapi -t custom \
  --folders src app docs tests logs \
  --packages src app \
  --db mongodb --venv y

🧠 4. Internal Logic & Features

🐍 Selective Package Initialization

Unlike standard generators that put __init__.py everywhere, this engine uses an init_strategy map. It only converts a folder into a Python package if explicitly told to or if the framework requires it.

💉 Snippet Injection (Django)

When building Django, the engine performs "surgical" regex injections:

  • Settings Patching: Automatically adds your App to INSTALLED_APPS.
  • Security Injection: Moves SECRET_KEY to environment variable logic.
  • DRF Integration: If DRF is detected, it injects the REST_FRAMEWORK configuration block automatically.

🛡️ UI Folder Guard

The engine contains a security layer that prevents any template rendering from writing into the ui/ directory, protecting the engine's core interface assets during a project build.


🏗️ 5. Directory Structure Example (Production)

image image

Contributors are welcome to this to enhance the optimisation of this repository

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

init_app-1.8.0.tar.gz (45.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

init_app-1.8.0-py3-none-any.whl (55.9 kB view details)

Uploaded Python 3

File details

Details for the file init_app-1.8.0.tar.gz.

File metadata

  • Download URL: init_app-1.8.0.tar.gz
  • Upload date:
  • Size: 45.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for init_app-1.8.0.tar.gz
Algorithm Hash digest
SHA256 684ed9871fb9fb4a924ab31a1aa275bba8b64c7a0439d1e1ab4c234576b161ce
MD5 6e8dae24810fda2d4cb9764783f0a873
BLAKE2b-256 ac15204e4e28affd687492dd9e13a54f726b7742953d4740113efd8e7a23aa10

See more details on using hashes here.

File details

Details for the file init_app-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: init_app-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 55.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for init_app-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba180eca15d2a57685d7529b0c05e7b0f42ec65e25418320bffc1dfbabff9f78
MD5 84c51fd92e9bab695b3e9be115e76244
BLAKE2b-256 0306834f5f76240239e7cc8767e07cb0982617922ac29c1501fa7f2acb78e10c

See more details on using hashes here.

Supported by

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