A Django scaffold for a private online cross-stitch retreat community.
What’s built:
Later sections to flesh out: calendar, events, tasks, points, finish wall.
From inside this folder:
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# open .env and replace DJANGO_SECRET_KEY with a long random string.
# generate one with: python -c "import secrets; print(secrets.token_urlsafe(50))"
python manage.py makemigrations accounts
python manage.py makemigrations posts
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Then visit:
Via Django admin (recommended): log in at /admin/, go to Users, pick a
user, and add them to groups under “Groups.”
Via the command line:
python manage.py assign_role alice Host
python manage.py assign_role bob Helper
python manage.py assign_role bob Helper --remove
New signups automatically get the Member role. The superuser bypasses all role checks.
Roles are nested — higher roles inherit lower-role powers.
| Role | Can do |
|---|---|
| Admin | Everything. Manage users, edit any post, site settings. |
| Host | Create/edit/pin their own posts, delete their own posts. |
| Helper | (Reserved for approving points later.) Read-only for now. |
| Member | Read posts, leave comments, react to posts. |
This project is configured for Django 4.2, which runs on Python 3.8+.
If you upgrade to Python 3.10+ later, you can bump Django to 5.x by
editing requirements.txt and reinstalling.
events app with Event model and calendar viewFor production image storage, swap MEDIA_ROOT for Cloudinary or S3 —
storing user uploads on the web server doesn’t scale well.
Before going live:
DJANGO_DEBUG=False and proper DJANGO_ALLOWED_HOSTSDATABASESpython manage.py collectstatic and serve static files via a real web server