Skip to main content

MemberMatters

Status: PLEASE GOD HELP ME

MemberMatters is an open-source membership management platform used by HackSthlm for managing members, access control, billing, and space resources.


Test Creds

Role Username Password
Staff test@hacksthlm.se testuser123



TODO — Theming (HackSthlm)

Make it not look like android 5. Current priority: make it look nice. IT LOOKS SO ANDROID GOD

  • [ ] Replace default logo with HackSthlm logo (SVG preferred)
  • set up the email server to bypass postmark, since we already have our own mailserver
  • https://github.com/instructure/canvas-lms/wiki set up canvas lms
  • [Figure ]out Update primary/accent colors in src/frontend/src/quasar-variables.sasshow to matchmake HackSthlm paletteposts
  • [figure ]out Sethow siteto name,configure tagline,stuff and "about" blurb in Admin → Configuration → Site Settings
  • [ ] Replace favicongood
  • [ ] Update email templates (sender name, footer, logo)
  • [ ] Review and update all public-facing copy (welcome email, door unlock messages, etc.)
  • [ ] Dark mode
  • [ ] Mobile layout

Requests / Feature Backlog

Things we want but haven't built or configured yet.

# Request Priority Owner Notes
1 RFID door access integration High TBD Needs hardware mapping
2 Swish payment integration High TBD Check MemberMatters billing plugins
3 Discord welcome webhook on member approval Medium TBD  
4 storage box assignment Medium TBD  
5 Member-visible resource calendar Low TBD  
6 Two-factor Medium TBD  

Add requests as GitHub issues and link them here.


CI/CD Pipeline

Current Setup

[GitHub repo] → push to main
      ↓
[GitHub Actions]
  - Lint & test (frontend + backend)
  - Build Docker image
  - Push to registry (hacksthlm/membermatters)
      ↓
[Deploy trigger]
  -  / Watchtower /
      ↓
[shitbox - for now]

Working with the Git Repo

Repository

  • Upstream: https://github.com/membermatters/membermatters
  • HackSthlm fork: https://github.com/hacksthlm/membermatters (create if not done)

Initial Setup

# Clone the HackSthlm fork
git clone https://github.com/hacksthlm/membermatters.git
cd membermatters

# Add upstream remote to stay in sync with the official project
git remote add upstream https://github.com/membermatters/membermatters.git
git fetch upstream

Branch Strategy

Branch Purpose
main Production-ready — protected, requires PR
develop Integration branch for ongoing work
feature/<name> New features
fix/<name> Bug fixes
chore/<name> Config, deps, docs

Submitting a Pull Request

  1. Branch off develop:
    git checkout developgit pull origin developgit checkout -b feature/your-feature-name
    
  2. Make your changes, commit with clear messages:
    git commit -m "feat: add Swish payment integration"
    
  3. Push and open a PR against develop:
    git push origin feature/your-feature-name
    
  4. In the PR description: what changed, why, and how to test it.
  5. Request review from at least one person in the responsibility table.
  6. Squash-merge once approved.

Syncing with Upstream

Do this periodically to pull in upstream bug fixes and features:

git fetch upstream
git checkout develop
git merge upstream/main
# resolve conflicts if any, then push
git push origin develop

Who Is in Charge of What

Area Primary Backup Notes
Infrastructure / hosting TBD TBD  
Backend (Django) TBD TBD  
Frontend (Vue/Quasar) TBD TBD  
Theming / design TBD TBD  
Door / hardware access TBD TBD  
Billing & payments TBD TBD  


Connecting Infrastructure

Stack Overview

Docker Compose (Quick Start)

Reverse Proxy

MemberMatters runs on port 8000 internally. Point your proxy to it and terminate TLS there. Example Caddyfile snippet:

Door / Access Control (MQTT)

MemberMatters has built-in support for MQTT-based door controllers. Configure in Admin → Access Control.


Open Questions

Things that are unresolved and need a decision or more investigation.

# Question Status Owner
1 Which payment provider? Stripe (already supported) or Swish? Open
2 Self-hosted vs managed hosting — where does this run? Open
3 Do we maintain a fork long-term or contribute changes upstream? Open
4 Staging environment — do we want one? Open
5 SSO / login via HackSthlm accounts (OAuth)? Open
6 GDPR — where is member data stored, who has access, retention policy? Open
7 How do we handle the transition from the current membership system? Open

Last updated: <!-- date --> — ping #membermatters on Discord if anything is out of date.