{"id":19676041,"url":"https://github.com/wannacry081/djangomatic-bash","last_synced_at":"2026-04-09T21:52:16.344Z","repository":{"id":232865555,"uuid":"784863256","full_name":"WannaCry081/Djangomatic-Bash","owner":"WannaCry081","description":"Djangomatic is an interactive command-line project structure generator for Django, designed to streamline the process of creating Django projects seamlessly without difficulties. With Djangomatic, users can quickly generate a Django project structure with ease.","archived":false,"fork":false,"pushed_at":"2024-04-11T18:47:17.000Z","size":2235,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T04:28:19.562Z","etag":null,"topics":["bash","django","project-structure"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WannaCry081.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-10T17:54:14.000Z","updated_at":"2024-04-12T03:59:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"dd3a0eb4-acd3-487d-b73e-fb955dbca6be","html_url":"https://github.com/WannaCry081/Djangomatic-Bash","commit_stats":null,"previous_names":["wannacry081/djangomatic-bash"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WannaCry081%2FDjangomatic-Bash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WannaCry081%2FDjangomatic-Bash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WannaCry081%2FDjangomatic-Bash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WannaCry081%2FDjangomatic-Bash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WannaCry081","download_url":"https://codeload.github.com/WannaCry081/Djangomatic-Bash/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240985607,"owners_count":19889116,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","django","project-structure"],"created_at":"2024-11-11T17:26:54.214Z","updated_at":"2025-10-23T22:27:07.154Z","avatar_url":"https://github.com/WannaCry081.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Djangomatic\n\n![Snapshot](./assets/snapshot-v2.png)\n\nDjangomatic is an interactive command-line project structure generator for Django, designed to streamline the process of creating Django projects seamlessly without difficulties. With Djangomatic, users can quickly generate a Django project structure with ease.\n\n## Features\n\n- Interactive command-line interface.\n- Simplified project structure generation.\n- Seamlessly create Django projects without manual setup.\n- Utilizes bash for efficient project creation.\n\n## Project Structures\n\n### DJango-Ninja Template\n\n```bash\nproject_name\n│\n├── api\n│   ├── __init__.py\n│   └── v1\n│       ├── admin\n│       │   └── __init__.py\n│       ├── migrations\n│       │   └── __init__.py\n│       ├── models\n│       │   └── __init__.py\n│       ├── exceptions\n│       │   └── __init__.py\n│       ├── controllers\n│       │   └── __init__.py\n│       ├── tests\n│       │   └── __init__.py\n│       ├── utils\n│       │   └── __init__.py\n│       ├── services\n│       │   └── __init__.py\n│       ├── repositories\n│       │   └── __init__.py\n│       ├── __init__.py\n│       ├── urls.py\n│       └── apps.py         # Needs Configuration\n│\n├── config\n│   ├── __init__.py\n│   ├── settings            # Needs Configuration\n│   │   ├── __init__.py\n│   │   ├── base.py\n│   │   ├── production.py\n│   │   └── local.py\n│   ├── wsgi.py             # Needs Configuration\n│   ├── asgi.py             # Needs Configuration\n│   └── urls.py\n│\n├── .env                    # Needs Configuration\n├── .gitignore\n├── .dockerignore\n├── manage.py               # Needs Configuration\n├── requirements.txt\n├── Dockerfile\n└── README.md\n\n```\nThe project structure outlined above follows a repository pattern. It leverages Django-Ninja as an extension of Django for creating lightweight REST APIs while still utilizing Django’s built-in ORM and maintaining high efficiency.\n\n\n### Model View Template (MVT) + Rest API Architecture\n```bash\nproject_name\n├── api\n│   ├── __init__.py\n│   └── v1\n│       ├── admin\n│       │   └── __init__.py\n│       ├── migrations\n│       │   └── __init__.py\n│       ├── models\n│       │   └── __init__.py\n│       ├── permissions\n│       │   └── __init__.py\n│       ├── serializers\n│       │   └── __init__.py\n│       ├── tests\n│       │   └── __init__.py\n│       ├── utils\n│       │   └── __init__.py\n│       └── viewsets\n│           └── __init__.py\n│       ├── __init__.py\n│       ├── urls.py\n│       └── apps.py         # Needs Configuration\n│\n├── app\n│   ├── admin\n│   │   └── __init__.py\n│   ├── models\n│   │   └── __init__.py\n│   ├── tests\n│   │   └── __init__.py\n│   ├── views\n│   │   └── __init__.py\n│   ├── forms\n│   │   └── __init__.py\n│   ├── __init__.py\n│   ├── urls.py\n│   └── apps.py             # Needs Configuration\n│\n├── config\n│   ├── __init__.py\n│   ├── settings            # Needs Configuration\n│   │   ├── __init__.py\n│   │   ├── base.py\n│   │   ├── production.py\n│   │   └── local.py\n│   ├── wsgi.py             # Needs Configuration\n│   ├── asgi.py             # Needs Configuration\n│   └── urls.py     \n│\n├── static\n│   ├── js/\n│   ├── css/\n│   └── images/\n│\n├── templates\n│   └── base.html\n│\n├── .env                    # Needs Configuration\n├── .gitignore\n├── .dockerignore\n├── manage.py               # Needs Configuration\n├── requirements.txt\n├── Dockerfile\n└── README.md\n```\nThe project structure outlined above provides a REST framework and follows a Model-View-Template (MVT) architecture. The REST API utilizes the Django Rest Framework (DRF) library, which extends Django’s capabilities for building robust APIs. Additionally, I’ve included the MVT architecture to facilitate user views, allowing developers to incorporate HTML Jinja pages if desired.\n\n\u003e [!NOTE]\n\u003e \n\u003e To achieve successful migrations and potentially run the code, you’ll need to edit some of the files.\n\n\n## Project Configuration\n\n### Configuration of manage.py, asgi.py, and wsgi.py\n```python \n# Update manage.py, asgi.py, and wsgi.py \nimport os\nfrom dotenv import load_env\n\n\nload_env()\n\nsettings : str = \"config.settings.local\"            # Referring to settings/local.py\nif os.environ.get(\"DJANGO_ENV\") != \"development\":\n    settings = \"config.settings.production\"         # Referring to settings/production.py\n\n...\nos.environ.setdefault('DJANGO_SETTINGS_MODULE', settings)\n...\n```\n\n### Configuration of settings directory\n```python \n# base.py\nBASE_DIR = Path(__file__).resolve().parent.parent.parent\n\nSECRET_KEY = os.environ.get(\"DJANGO_SECRET_KEY\")\n\nINSTALLED_APPS = [\n    ...\n    \"api.v1\",\n]\n\n# To remove\nDEBUG = True\n\nALLOWED_HOSTS = []\n```\n\n```python \n# local.py\nfrom .base import *\n\nDEBUG = True\nALLOWED_HOSTS = []\n...\n```\n\n```python \n# production.py\nfrom .base import *\n\nDEBUG = False\nALLOWED_HOSTS = []\n...\n```\n\n### Configuration of apps.py\n```python \n# apps.py\nclass V1Config(AppConfig):\n    default_auto_field = 'django.db.models.BigAutoField'\n    name = 'v1'\n\n    def ready(self):\n        from api.v1.admin import *\n...\n```\n\n\n## Installation\n\nTo get started with Djangomatic, follow these simple steps:\n\n1. Clone the repository:\n\n```bash\n$ git clone https://github.com/WannaCry081/Djangomatic-Bash.git\n```\n\n2. Navigate to the directory:\n\n```bash\n$ cd djangomatic-bash\n```\n\n3. Run the main.sh script:\n\n```bash\n# Windows \n$ main.sh\n\n# Linux\n$ chmod +x main.sh\n$ ./main.sh\n```\n\n## Usage\n\nOnce you have installed Djangomatic, simply run the main script to start generating your Django project structure. Follow the on-screen instructions to configure your project settings and components. Djangomatic will handle the rest, creating a well-organized Django project for you to work with.\n\n## Contribution\n\nContributions to Djangomatic are welcome! If you have any ideas, suggestions, or improvements, feel free to open an issue or submit a pull request on the GitHub repository.\n\n---\n\n© 2024 Djangomatic. Developed by [@WannaCry081](https://github.com/WannaCry081).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwannacry081%2Fdjangomatic-bash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwannacry081%2Fdjangomatic-bash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwannacry081%2Fdjangomatic-bash/lists"}