membersystem/README.md
Benjamin Bach 4254baf09d Changes to payment models (#32)
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: data.coop/membersystem#32
Reviewed-by: valberg <valberg@orn.li>
Co-authored-by: Benjamin Bach <benjamin@overtag.dk>
Co-committed-by: Benjamin Bach <benjamin@overtag.dk>
2024-08-03 17:55:32 +00:00

2.1 KiB

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

  1. 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.

  2. Migrate

    make migrate
    
  3. 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

  1. 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.

  2. Run migrate

    hatch run dev:migrate
    
  3. 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