Commit Graph
78 Commits
Author SHA1 Message Date
sankalp ad09fa0b79 refactor(src/djinit/templates/project): adjust env_path to parent instead of parent.parent
Simplify path resolution and avoid unnecessary filesystem traversal.
2026-06-25 12:26:01 +05:45
sankalp 5984961878 fix(src/djinit/templates/config/settings): fix .env path resolution
Prevent loading .env from wrong directory when project depth varies.
2026-06-25 12:25:44 +05:45
sankalp 5b755b789c feat(src/djinit/utils): add use_tailwind flag to project metadata
Include use_tailwind setting in generated context
2026-06-25 12:16:33 +05:45
sankalp 382d2a0f56 feat(src/djinit/templates/project): load .env and use env for settings module
Replace hard‑coded settings module with environment variable and load .env configuration for smoother local development.
2026-06-25 12:16:09 +05:45
sankalp c38d4b3832 feat(src/djinit/templates/config): add tailwind live‑reload support
Prevents missing media serving and enables dev tailwind reload
2026-06-25 12:15:52 +05:45
sankalp 3200c9f9b2 feat(src/djinit/creators): add use_tailwind context for Tailwind‑enabled scaffolding
Enable conditional Tailwind inclusion in generated files based on metadata.
2026-06-25 12:15:33 +05:45
sankalp 260d41b10d feat(src/djinit/templates/config/settings): resolve env_path for settings base
Resolve env_path to correctly load .env file from project root.
2026-06-24 00:42:08 +05:45
sankalp 2d7d712ecf feat(src/djinit/templates/config): add pathlib import and explicit .env path handling
Prevents issues with mischaracterized .env locations and ensures deterministic environment loading.
2026-06-24 00:41:51 +05:45
sankalp 7bac6b176e fix(src/djinit/creators): add project_name to urls_context and urls.py template context
- Ensure project_name is passed when generating urls.py, preventing TemplateError.
- Improves template rendering consistency for API route inclusion.
2026-05-28 10:34:05 +05:45
sankalp 3cfeb99946 feat(src/djinit/templates/project):add pytest and pytest-django to dev dependencies 2026-05-28 10:20:44 +05:45
sankalp 10ff50d841 feat(src/djinit/templates/config/settings): add dj_database_url import and noqa directives
Add support for optional database URL configuration and silence import-related flake8 warnings.

- New Features: Introduce conditional import of `dj_database_url` in production settings.
- Enhancements: Suppress flake8 warnings for base imports using `# noqa: F401, F403`.
- Bug Fixes: None.
2026-05-28 10:18:41 +05:45
sankalp b09a77592d feat(src/djinit/templates/project):add dev dependency group for ruff and update ruff config 2026-05-28 10:18:34 +05:45
sankalp da6b60ee24 feat(src/djinit/creators): incorporate Tailwind and Vite metadata into .gitignore and justfile generation
- New Features
  - Custom .gitignore generation using use_tailwind and use_vite flags from project metadata
  - Justfile now includes Vite configuration flag context
- Enhancements
  - Dynamic template rendering with project‑specific context for better project setup reflectivity
- Bug Fixes
  - (none)
2026-05-28 10:08:26 +05:45
sankalp c14abdb03e feat(src/djinit/utils): introduce use_vite flag handling
Add `use_vite` flag to metadata processing and include it in the development context dictionary.

- New Feature: expose Vite integration flag
- Enhancement: extend dev_context with use_vite value
- No bug fixes
2026-05-28 10:08:22 +05:45
sankalp 7a9563957d feat(src/djinit/templates/project): add Vite support and update dependency handling
Introduce Vite‑based frontend workflow and adjust related templates and CI configurations. Switch drf‑spectacular to drf‑yasg, add conditional Node.js setup, and update ignored files accordingly.

- New Features
  - Conditional Vite integration via `use_vite` flag
  - npm install and build steps added to Dockerfile and CI pipelines
  - Vite dev server command added to `justfile` with `dev-full` target
  - Updated CI scripts (GitHub Actions, GitLab CI) to run Vite build when enabled
  - Dependency change from `drf-spectacular` to `drf-yasg` in `pyproject.toml`

- Enhancements
  - Modify `.gitignore` to exclude `node_modules` only when using frontend tools
  - Update Dockerfile to conditionally install Node.js packages for Vite
  - Adjust GitHub Actions and GitLab CI templates to include Node setup steps

- Bug Fixes
  - Replace `drf-spectacular` with `drf-yasg` to align with current API documentation practices
2026-05-28 10:08:19 +05:45
sankalp 4025f6acf2 feat(src/djinit/templates/config): replace drf_spectacular with drf_yasg for API schema generation
- New Features
  - Switched to drf_yasg and updated schema configuration.
- Enhancements
  - Updated DEFAULT_SCHEMA_CLASS to rest_framework.schemas.coreapi.AutoSchema.
  - Refactored URL patterns to use drf_yasg schema views.
- Bug Fixes
  - No bug fixes included.
2026-05-28 10:07:58 +05:45
sankalp 2a5480ff05 feat(src/djinit/templates): AddVite‑based asset pipeline support
- New Features
  - Insert manifest_path and static_url_prefix into base settings for Vite output
  - Enable/disable dev mode via DJANGO_VITE["default"]["dev_mode"] in development and production templates
  - Add django‑vite dependency conditionally when use_vite is set in pyproject.toml and requirements
  - Create new vite.config.ts template with React, Tailwind, dev server proxy, and asset resolution
- Enhancements
  - Align Tailwind and Django settings to respect Vite mode
  - Update dependency templates to reflect Vite usage
- Bug Fixes
  - (none)
2026-05-28 09:55:41 +05:45
sankalp 5084b351a5 feat(src/djinit/ui): Introduce Vite integration options
Add Vite scaffolding support to allow users to initialize projects with Vite.

- New Features
  - Added `use_vite` flag to `StructureOptions`.
  - Added `get_vite_choice()` method to `InputCollector` with confirmation dialog.
  - Extended metadata dictionary to include `use_vite`.
  - Updated project generation to propagate Vite configuration.
- Enhancements
  - Integrated Vite confirmation into the CLI prompt flow.
  - Updated project metadata creation to include Vite settings.
2026-05-28 09:55:37 +05:45
sankalp a8af4674a0 feat(src/djinit/core): add use_vite flag to ProjectMetadata
Add a boolean `use_vite` to `ProjectMetadata` to control Vite integration and include it in the serialized project metadata.

- New Features: Introduce `use_vite` configuration option.
- Enhancements: Expose `use_vite` in metadata output.
2026-05-28 09:55:30 +05:45
sankalp d96db6b313 feat(src/djinit/creators): add Vite support for frontend bundling
Introduce Vite configuration generation and propagate the use_vite flag across templates to enable modern frontend tooling.

New Features- Add `create_vite_config` method to generate `vite.config.ts`.
- Propagate `use_vite` metadata to all relevant context dictionaries.
- Include Vite usage in Dockerfile, requirements.txt, pyproject.toml, and CI pipelines.

Enhancements
- Update context preparation to embed Vite flag alongside Tailwind and HTMX.
- Refine template documentation to mention Tailwind, HTMX, and Vite integration.

Bug Fixes
- None.
2026-05-28 09:55:22 +05:45
sankalp 0472a6f00b feat(src/djinit/creators): add use_tailwind and use_htmx metadata to pyproject.toml and CI templates
The new metadata enables optional Tailwind CSS and HTMX support in generated Django projects, expanding customization capabilities.

New Features:
- Expose `use_tailwind` and `use_htmx` flags in the pyproject.toml template.
- Inject these flags into GitHub Actions and GitLab CI configuration templates.

Enhancements:
- Centralized handling of Tailwind and HTMX configuration flags across all generated files.
2026-05-28 09:33:05 +05:45
sankalp 90da64612f chore(src/djinit/templates/project/ci): streamline CI jobs and improve caching
The CI templates were refactored to simplify configuration, remove redundant services, and enable better cache reuse while maintaining compatibility across Python versions.

- New Features
  - Consolidated caching logic with `cache-suffix` per Python version.
  - Integrated security check directly into the main pipeline.

- Enhancements
  - Reduced matrix size to only Python 3.13.
  - Replaced manual PostgreSQL setup with Django checks using `DJANGO_SETTINGS_MODULE` and `SECRET_KEY`.
  - Merged duplicate test and security steps across CI platforms.

- Bug Fixes
  - Fixed missing `python-version` entries that caused undefined matrix behavior.
  - Resolved duplicate environment variable definitions in GitLab CI.
2026-05-28 09:32:57 +05:45
sankalp 4609ff6eb1 feat(src/djinit/templates/project): add optional Tailwind, HTMX, and database URL dependenciesAdd conditional dependencies for Tailwind, HTMX, and database URL in pyproject.toml template; update dockerignore to include staticfiles; fix Dockerfile CMD newline handling.
Details:
- New Features: Conditional Tailwind, HTMX, and database URL dependencies
- Enhancements: Updated dockerignore to include staticfiles
- Bug Fixes: Fixed Dockerfile CMD newline handling
2026-05-28 09:32:52 +05:45
sankalp b6e1d39132 feat(src/djinit/templates/project): add Dockerfile and dockerignore templates
Introduce Dockerfile and dockerignore templates to scaffold Docker‑ready Django projects, providing conditional system‑level dependencies for databases and optional Tailwind support, and a comprehensive ignore list for generated projects.

- New Features
  - Dockerfile template with conditional apt packages for MySQL or PostgreSQL, and optional Tailwind installation.
  - dockerignore template covering Python bytecode, virtual environments, OS artifacts, Django static/media files, and common VCS files.

- Enhancements
  - Expand project scaffolding to include ready‑to‑use container configuration files.
2026-05-28 09:22:33 +05:45
sankalp 05c329b595 feat(src/djinit/creators): add Dockerfile and .dockerignore generation for new projects
Introduce automatic creation of Dockerfile and .dockerignore during project scaffolding, enabling container‑ready setups out of the box.

* New Features
  - `create_dockerfile` method renders Dockerfile with configurable context (module name, database type, Tailwind usage).
  - `create_dockerignore` method generates a .dockerignore file to exclude unnecessary files from containers.
* Enhancements
  - Added both methods to the setup pipeline in `SetupCreator` so they are executed automatically.
  - Context values are derived from project metadata, allowing customization per project.
* Bug Fixes  - None
2026-05-28 09:22:29 +05:45
sankalp 3d86539db6 fix(src/djinit/templates/project): update FRONTEND_URL default to include https:// for www subdomain
Enhancements:
- Updated FRONTEND_URL default from `https://frontend.your-domain.com,www.frontend.your-domain.com` to `https://frontend.your-domain.com,https://www.frontend.your-domain.com` to ensure consistent HTTPS usage.
2026-05-18 18:16:28 +05:45
sankalp 0ce6342ca7 Merge branch 'main' of github.com:S4NKALP/djinit 2026-04-22 19:22:43 +05:45
sankalp 0c7b007729 feat(src/djinit/templates/project): update frontend URL to HTTPS and add www subdomain
Enhancements
- Replace http://frontend.your-domain.com with https://frontend.your-domain.com,www.frontend.your-domain.com in env_sample-tpl to reflect modern HTTPS usage.
2026-04-22 19:22:10 +05:45
sankalp d741249644 feat(templates): add Tailwind and HTMX integration and fix static/media URLs
Introduce Tailwind and HTMX support with conditional placeholders and correct static/media URL prefixes.

- New Features
  - Add django_tailwind_cli and django_htmx when enabled
  - Add HtmxMiddleware to middleware stack
  - Pin Tailwind CLI version and set distribution CSS path in production
  - Configure Tailwind theme and daisyui settings
- Enhancements
  - Prefix STATIC_URL and MEDIA_URL with '/' for proper URL handling
  - Update requirements templates with new optional dependencies
  - Expand pyproject.toml metadata and dependency groups
- Bug Fixes
  - Fix missing leading slash in STATIC_URL and MEDIA_URL
  - Pin Tailwind CLI version to avoid unexpected upgrades
2026-04-20 14:44:10 +05:45
sankalp dee852efb9 feat(src/djinit/core): add Tailwind and HTMX configuration flags to ProjectMetadata
**New Features**
- Add `use_tailwind` and `use_htmx` boolean fields to `ProjectMetadata` with defaults set to `False`.
- Update `ProjectMetadata.__init__` mapping to include these new attributes, ensuring they are persisted in project metadata.
2026-04-20 14:44:06 +05:45
sankalp fc93a54430 feat(src/djinit/creators): add Tailwind and HTMX toggles to generated settings
Add configurable `use_tailwind` and `use_htmx` flags to the Django starter project context, allowing users to optionally include Tailwind CSS and HTMX JavaScript libraries.

- New Features:
  - Introduce `use_tailwind` and `use_htmx` metadata flags in `base_settings_context`.
  - Propagate these flags to `requirements.txt`, generated `settings.py`, and CI configuration templates.
- Enhancements:
  - Ensure the flags are consistently available across all templated files.
- Bug Fixes: None.
2026-04-20 14:44:04 +05:45
sankalp 04c911c3d9 feat(src/djinit/utils): add use_tailwind and use_htmx configuration flags
New Features:
- Add `use_tailwind` metadata option (default False) for Tailwind CSS support.
- Add `use_htmx` metadata option (default False) for HTMX support.

Enhancements:
- Extend DjangoHelper context to include the new flags in generated settings.
2026-04-20 14:43:59 +05:45
sankalp 8bb81a1a38 feat(src/djinit/ui): addTailwind CSS and HTMX selection support
- New Features:
  - Add `use_tailwind` and `use_htmx` fields to `StructureOptions` and expose confirmation prompts via `get_tailwind_choice` and `get_htmx_choice`.
  - Persist these selections in the generated metadata and pass them through the initialization flow.
- Enhancements:
  - Include `use_tailwind` and `use_htmx` values when constructing the metadata dictionary.
  - Display Tailwind CSS and HTMX choices in the final confirmation output.
- Bug Fixes: none
2026-04-20 14:43:54 +05:45
sankalp 5013c1a31a feat(src/djinit/templates/config/settings): introduce explicit storage configuration
* New Features
  * Replace the singular `STATICFILES_STORAGE` assignment with a `STORAGES` dictionary defining `default` and `staticfiles` backends.

* Enhancements
  * Add `DEFAULT_AUTO_FIELD` setting for consistency with recent Django recommendations.
  * Make storage backend definitions clearer and more extensible.

* Bug Fixes
  * None.
2026-04-20 14:28:09 +05:45
sankalp d79698cfb4 feat(src/djinit/templates/project): bump target-version to py313
Why: enable support for Python 3.13.

New Features
- Updated pyproject.toml template to target Python 3.13, allowing builds with newer interpreters.

Enhancements
- Improves compatibility with upcoming Python releases.
2026-04-20 14:28:05 +05:45
sankalp e5f77143bf feat(src/djinit/utils): add get_full_app_config_path static method to compute full AppConfig pathAdd a static method get_full_app_config_path that builds the full path to an AppConfig class, handling nested app structures and module resolution. Improves reliability of AppConfig path calculation.
- New Features
  - Added `get_full_app_config_path` method to generate full AppConfig paths.
- Enhancements
  - Centralized AppConfig path calculation logic using existing `calculate_app_module_path`.
- Bug Fixes
  - None
2026-04-20 14:27:59 +05:45
sankalp 7d91c037ca feat(src/djinit/creators): add unified URL registration and AppConfig path handling
- New Features: Automatically include app URLs in project urls.py and api/v1/urls.py; Generate full AppConfig paths using a unified utility
- Enhancements: Improved nested-app detection and path resolution across predefined, standard, single, and unified structures; Refined context transformation for base settings; Updated URL template rendering
- Bug Fixes: Fixed duplicate include‑statement handling; Corrected URL update error paths and exception safety
2026-04-20 14:27:53 +05:45
sankalp ee0b22f2ae feat(src/djinit/creators): add API v1 URL integration for predefined structures and enhance context variables
- Add conditional logic to `_add_to_api_v1_urls` when `structure_type` is `"predefined"`
- Include `module_name` in contexts for `justfile` and `Procfile` templates
- Clarify `module_name` usage in `.env.sample` generation comment
2026-04-20 14:24:38 +05:45
sankalp 4c40dd21fd fix(src/djinit/templates/project): update template placeholders and dependency references
New Features
- Replace double‑curly placeholder syntax with direct variable usage in justfile and procfile templates.

Enhancements
- Change psycopg2-binary to psycopg[binary] in pyproject.toml template.
- Update ruff.isort known‑first‑party from project_name to module_name.
- Adjust server commands to reference module_name placeholder and use variable syntax directly.

Bug Fixes- Fix placeholder expansion in dev‑server, makemigrations, install, and remove commands.
- Correct requirements generation script to handle missing pyproject.toml gracefully.
- Resolve incorrect variable substitution in gunicorn bind commands and worker count references.
2026-04-20 14:24:27 +05:45
sankalp 09fa597215 fix(ci): correct Python version and Django settings variable interpolation
- Bug Fixes:
  - Fixed Jinja syntax in GitHub Actions workflow (removed extraneous {{ }} around matrix.python-version).
  - Updated DJANGO_SETTINGS_MODULE placeholder from [[ project_name ]] to [[ module_name ]] in GitLab CI template.
2026-04-20 14:24:20 +05:45
sankalp 123141bd32 feat(src/djinit/creators): add use_database_url flag for pyproject.toml
Why: expose ability to toggle usage of DATABASE_URL in generated configuration.

New Features
- Add configurable `use_database_url` parameter to control inclusion of DATABASE_URL in generated pyproject.toml.

Enhancements
- Increase flexibility of database configuration for generated Django projects.

Bug Fixes
- (none)
2026-04-20 14:12:12 +05:45
sankalp 72fc023fd3 feat(src/djinit/templates/config/settings): add DATABASE_URL support via dj_database_url
Add conditional import of `dj_database_url` and a directive comment for `use_database_url` to enable automatic database configuration when the `use_database_url` flag is set, improving flexibility of the production settings template.

- New Features: Introduce support for reading `DATABASE_URL` to configure Django databases automatically.
- Enhancements: Conditional import improves template modularity and reduces unnecessary dependencies.
- Bug Fixes: None.
2026-04-20 14:12:07 +05:45
sankalp c4f66d607b feat(src/djinit/templates/project): update env template placeholder and add optional database URL dependency
New Features
- Add optional `dj-database-url` dependency for database URL support.

Enhancements
- Replace `{{ project_name }}` with `[[ project_name ]]` in the env template for clearer interpolation.

Bug Fixes
- None
2026-04-20 14:12:05 +05:45
sankalp 6c56689d8c chore: Remove space after equals sign in SECRET_KEY assignment. 2026-03-01 00:51:19 +05:45
sankalp 48177d969b Merge remote-tracking branch 'origin/main' into dev 2026-03-01 00:51:08 +05:45
sankalp 992688641e update templates 2026-03-01 00:48:50 +05:45
sankalp c42e0635b8 update templates 2026-03-01 00:45:29 +05:45
sankalp 68f1b44eab fix: fixed secret key not generated 2026-03-01 00:27:47 +05:45
sankalp 7d76fb902c feat(src/djinit): add CLI and core utility modules
Introduce command-line interface and supporting modules for project initialization.

- New Features:
  - Add `cli.py` with Typer commands `secret` and `app`
  - Implement custom exception hierarchy in `utils/exceptions.py`
  - Provide secret key generation utilities in `utils/secretkey.py`
  - Add name validation logic in `utils/validators.py`
  - Initialize package with empty `__init__.py`

- Enhancements:
  - Update `pyproject.toml` to include new modules and console script entry points

- Bug Fixes:
  - (none)
2026-01-31 22:23:51 +05:45
sankalp 937caf600b feat: add djinit package with CLI tool to generate Django projects 2025-10-29 13:28:16 +05:45