Getting Started¶
Requirements¶
Python 3.14+
uv (package manager)
Installation¶
git clone https://github.com/erikvw/jasonstudio.git
cd jasonstudio
uv sync --dev
Environment Setup¶
Copy the example environment file and fill in your keys:
cp .env.example .env
At minimum you need DJANGO_SECRET_KEY and DJANGO_SALT_KEY set.
For local development the default SQLite database requires no DATABASE_URL.
See Configuration for the full list of environment variables.
Database Setup¶
uv run python manage.py migrate
uv run python manage.py createsuperuser
Initial Configuration¶
1. Photographer Profile¶
Log in to the Django admin at
/admin/Create a Photographer Profile linked to your superuser account
Set your business name, tax rate, payment terms, and payment instructions
2. Service Catalog¶
Set up your reusable services at /photographer/services/:
Service |
Unit Type |
Rate |
|---|---|---|
Photography |
Per Hour |
$150.00 |
Image Processing |
Per Image |
$2.00 |
Travel |
Per Km |
$0.55 |
Gallery Hosting |
Flat Fee |
$50.00 |
These appear as quick-add buttons when creating quotations.
3. Customers¶
Add customers at /photographer/customers/. Each customer gets a Django user account for logging in to view galleries and accept quotes.
Typical Workflow¶
Create services in the catalog (one-time setup)
Add a customer and create an event
Prepare a quotation from the service catalog
Customer accepts the quote → Order is auto-created
Upload photos to the event after the shoot
Customer makes selections (digital, print, reject)
Generate invoice and record payment
Customer downloads digital photos (30-day window)
Running the Server¶
uv run python manage.py runserver
Running Tests¶
uv run --dev pytest
Building Documentation¶
uv run --dev sphinx-build docs docs/_build/html