Metadata-Version: 2.4
Name: django-shortcut
Version: 0.1.0
Summary: A command-line tool to initialize a production-ready Django REST Framework project with one command.
Author-email: Antigravity <antigravity@gemini.com>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# Django Shortcuts (`django-shortcuts`)

A command-line tool to initialize a production-ready Django REST Framework (DRF) project with a single command. 

This tool automates the process of setting up a virtual environment, installing dependencies, configuring settings (including database environment variables, CORS, and SimpleJWT authentication).

---

## Features

- 🐍 **Virtual Environment (`venv`)**: Automatically sets up, activates, and upgrades `pip`/`setuptools`/`wheel`.
- 📦 **Automated Dependencies**: Installs `django`, `djangorestframework`, `djangorestframework-simplejwt`, `django-cors-headers`, `django-environ`, and `pillow`.
- ⚙️ **Configured settings.py**: Environment variable support with `.env` loading, integrated CORS headers, and preconfigured static/media root directories.
- 🔐 **Authentication**: Out-of-the-box JWT configuration with `djangorestframework-simplejwt`.
- 🔧 **Git Integration**: Initializes a Git repository and sets up a standard `.gitignore` file.
- 📚 **Generated Documentation**: Provides a tailored `README.md` inside your new project folder with instructions to run and test.

---

## Local Installation & Development

To develop and test `django-shortcuts` locally:

1. Clone or download this repository.
2. Install the package locally in editable mode:
   ```bash
   pip install -e .
   ```

Now, the `dj-shortcuts` and `django-shortcuts` commands will be available globally on your system path.

---

## Usage

Create a new Django DRF project in a single command:

```bash
dj-shortcuts my_api_project
```

### Options

- `project_name` (Required): The name of your new Django project. Must be a valid Python identifier (no hyphens `-` or dots `.`).
- `-t`, `--target` (Optional): Specify a custom folder path where you want the project created. If not provided, it creates a folder named after the project in your current directory.

**Example:**
```bash
dj-shortcuts ecommerce_api -t C:\Users\mahed\Documents\projects\ecommerce_api
```

---

## Publishing to PyPI

To upload this tool to your PyPI account so you can install it anywhere via `pip install django-shortcuts` (or similar package name):

### 1. Install Build Tools
Make sure you have `build` and `twine` installed in your global python or target environment:
```bash
pip install build twine
```

### 2. Build the Package
From the root of the `django-shortcuts` directory (containing `pyproject.toml`), run:
```bash
python -m build
```
This generates a source distribution (`.tar.gz`) and a wheel file (`.whl`) inside the `dist/` directory.

### 3. Upload to PyPI
Upload the distributions to PyPI:
```bash
python -m twine upload dist/*
```
*Note: You will be prompted to enter your PyPI token/credentials.*

---

## License

This project is licensed under the MIT License.
