Skip to main content

A production-ready Django + Vue.js project generator

Project description

Django + Vue.js Project Generator

PyPI version npm version License: MIT

A CLI tool to scaffold production-ready Django + Vue.js full-stack applications with authentication, Docker, and CI/CD out of the box.

Features

  • Django Backend: DRF, JWT authentication, custom user model, PostgreSQL
  • Vue.js Frontend: Vue 3, Vite, Pinia, Vue Router with guards
  • Complete Auth System: Login, register, password reset, profile management
  • Todo CRUD Example: Full working example with create, read, update, delete
  • Docker Ready: Development and production Docker Compose configurations
  • CI/CD Pipeline: GitHub Actions with lint, test, and build stages
  • Code Quality: Pre-commit hooks with Black, Ruff, ESLint, Prettier
  • Celery + Redis: Background task processing (optional)
  • Production Ready: Nginx, Gunicorn, WhiteNoise for static files

Prerequisites

Before you start, ensure you have the following installed on your machine:

Component Required Version Purpose Check Command
Python 3.10+ Backend runtime python3 --version
Node.js 18+ Frontend runtime node --version
npm 9+ Package manager npm --version
Git Latest Version control git --version

Installation Instructions

Python 3.10+:

  • macOS: brew install python@3.11 or download from python.org
  • Ubuntu/Debian: sudo apt update && sudo apt install python3.11 python3.11-venv python3-pip
  • Windows: Download from python.org (check "Add to PATH")

Node.js 18+ & npm:

  • macOS: brew install node or use nvm
  • Ubuntu/Debian: curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt install -y nodejs
  • Windows: Download from nodejs.org

Git:

  • macOS: brew install git (or comes with Xcode)
  • Ubuntu/Debian: sudo apt install git
  • Windows: Download from git-scm.com

Optional (for Docker mode)

To run the project in Docker containers (recommended for production parity):

[!NOTE] If you don't have these tools, django-vue-start will warn you or attempt to handle dependencies (like creating a virtualenv) automatically where possible.

Quick Start

Method 1: Using npx (Recommended)

npx create-django-vue-app my_project
cd my_project
django-vue-start run dev

Method 2: Using pip

# Install the CLI tool
pip install django-vue-start

# Create a new project
django-vue-start new my_project

# Navigate and run
cd my_project
django-vue-start run dev

Method 3: Install npm package globally

npm install -g create-django-vue-app
create-django-vue-app my_project

Running Your Project

After creating a project:

cd my_project

# Start development servers (Django + Vue)
django-vue-start run dev

# Or with Docker
django-vue-start run dev --docker

Access your app:

CLI Commands

# Create new project
django-vue-start new [project_name]

# Run development servers
django-vue-start run dev          # Local mode (SQLite)
django-vue-start run dev --docker # Docker mode (PostgreSQL)

# Run migrations
django-vue-start run migrate

# Run migrations
django-vue-start run migrate

# Open Django shell
django-vue-start run shell

# Create Superuser (Admin)
cd backend
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
python manage.py createsuperuser

Project Generation Options

django-vue-start new [OPTIONS]

Options:
  --database [postgresql|sqlite|mysql]  Database backend
  --auth [jwt|session]                  Authentication type
  --celery / --no-celery                Include Celery
  --allauth / --no-allauth              Include social auth
  --skip-prompts                        Use defaults

Generated Project Structure

my_project/
├── backend/
│   ├── config/settings/     # Django settings
│   ├── core/                # Custom User model
│   ├── todos/               # CRUD example app
│   ├── .env                 # Environment variables
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── api/             # Axios with JWT
│   │   ├── components/      # AppHeader, AppFooter
│   │   ├── router/          # Vue Router
│   │   ├── stores/          # Pinia auth store
│   │   └── views/           # Pages (Login, Profile, Todos)
│   └── package.json
├── docker-compose.yml
└── README.md

Built-in Features

Authentication

  • User registration with email
  • Login/logout with JWT cookies
  • Profile editing (username, email)
  • Password change
  • Password reset via email

Todo CRUD Example

  • Create, read, update, delete todos
  • Toggle complete/incomplete
  • User-scoped (each user sees only their todos)

Documentation

Development

Setup for Contributors

# Clone
git clone https://github.com/abdullafajal/django-vue-start.git
cd django-vue-start

# Install
pip install -e .

# Test
pytest tests/ -v

Publishing

PyPI

pip install build twine
python -m build
twine upload dist/*

npm

npm publish --otp=YOUR_2FA_CODE

License

MIT License - see LICENSE file.

Credits

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

django_vue_start-1.1.2.tar.gz (35.2 kB view details)

Uploaded Source

Built Distribution

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

django_vue_start-1.1.2-py3-none-any.whl (63.5 kB view details)

Uploaded Python 3

File details

Details for the file django_vue_start-1.1.2.tar.gz.

File metadata

  • Download URL: django_vue_start-1.1.2.tar.gz
  • Upload date:
  • Size: 35.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for django_vue_start-1.1.2.tar.gz
Algorithm Hash digest
SHA256 97d29d4f74353c926dba0ea5769fbb17cd310d46bb8eb1a0fdf77bf6041b1024
MD5 0f227e60a836fcb33308f452f424ac36
BLAKE2b-256 7703f9f7c035f6ccdea5300d60dc3cff76ffe46e376436ffb3f9e66ec60e9554

See more details on using hashes here.

File details

Details for the file django_vue_start-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_vue_start-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2bdc0880dde2cc5bdc01ae8ef66620167c4ab49e8383b5e363c98aa73c3d458c
MD5 8b77148f6bf56cde13bd1518fa4c83aa
BLAKE2b-256 c7dfb3279aec18a4f58df42dd83ea63afa28c9d89d012bce11d090b8112a8d8a

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