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.
- Prod URL:
https://members.hacksthlm.se - Test URL:
https://mm.s2.hacksthlm.se - Source: membermatters/membermatters on GitHub
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 how to make posts
- figure out how to configure stuff good
- [ ] 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
- Branch off
develop:git checkout developgit pull origin developgit checkout -b feature/your-feature-name - Make your changes, commit with clear messages:
git commit -m "feat: add Swish payment integration" - Push and open a PR against
develop:git push origin feature/your-feature-name - In the PR description: what changed, why, and how to test it.
- Request review from at least one person in the responsibility table.
- 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.
- Broker address: (TBD)
- Topics follow the pattern
membermatters/doors/<door-id>/... - Refer to upstream docs: MemberMatters 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.