Benjamin Bach
4254baf09d
All checks were successful
continuous-integration/drone/push Build is passing
Flagging incoming changes, no actions required. This is stuff I consider "MVP", as in what we need urgently to send out payment links to members and receive payments via Stripe. - [x] Allow products, orders etc - [x] Define several products per membership type - [x] Possibility to create a membership BEFORE it's paid - [x] Mark memberships active when payments are received - [x] Create membership history for each member (via Django admin) - [x] Efficiently mark members in a list and choose "create <membership type> for current year with an unpaid order" (Django Admin actions) - [x] Order payment page w/ Stripe integration - [ ] Send email with order payment link - [ ] Send payment confirmation emails - [x] Re-generate migrations Co-authored-by: valberg <valberg@orn.li> Reviewed-on: #32 Reviewed-by: valberg <valberg@orn.li> Co-authored-by: Benjamin Bach <benjamin@overtag.dk> Co-committed-by: Benjamin Bach <benjamin@overtag.dk> |
||
---|---|---|
requirements | ||
src | ||
.dockerignore | ||
.drone.yml | ||
.env.example | ||
.gitignore | ||
.pre-commit-config.yaml | ||
docker-compose.yml | ||
Dockerfile | ||
entrypoint.sh | ||
Makefile | ||
pyproject.toml | ||
README.md | ||
requirements.txt |
data.coop member system
Development setup
There are two ways to setup the development environment.
- Using the Docker Compose setup provided in this repository.
- Using hatch in your host OS.
Using Docker Compose
Working with the Docker Compose setup is made easy with the Makefile
provided in the repository.
Requirements
- Docker
- docker compose plugin
Setup
-
Setup .env file
An example .env file is provided in the repository. You can copy it to .env file using the following command:
cp .env.example .env
The default values in the .env file are suitable for the docker-compose setup.
-
Migrate
make migrate
-
Run the development server
make run
Building and running other things
# Build the containers
make build
# Create a superuser
make createsuperuser
# Create Django migrations (after this, maybe you need to change file permissions in volume)
make makemigrations
Using hatch
Requirements
- Python 3.12 or higher
- hatch (Recommended way to install is using
pipx install hatch
) - A running PostgreSQL server
Setup
-
Setup .env file
An example .env file is provided in the repository. You can copy it to .env file using the following command:
cp .env.example .env
Edit the .env file and set the values for the environment variables, especially the database variables.
-
Run migrate
hatch run dev:migrate
-
Run the development server
hatch run dev:server
Updating requirements
We use hatch-pip-compile. That means we have a set of loosely defined dependencies
in pyproject.toml
and then we can keep the exactly pinned version in our requirements.txt
(auto-generated).
To generate requirements.txt
and requirements/requirements-dev.txt
, run the following command:
# Build requirements.txt etc
make requirements
# Build Docker image with new Python requirements
make build