Difference between revisions of "Membermatters"
(added notes from ivan and anca's meeting) |
m (→TODO) |
||
| (27 intermediate revisions by 5 users not shown) | |||
| Line 5: | Line 5: | ||
= to create a new user = | = to create a new user = | ||
* https://backers.sudoroom.org/register | * https://backers.sudoroom.org/register | ||
= to check the logs from the docker instance = | |||
* https://backers.sudoroom.org/logs/django.log | |||
= github = | = github = | ||
* [https://github.com/sudoroom/MemberMatters/compare/db0724495a09731ec18db2ebe353931a08c256e2.. | * [https://github.com/sudoroom/MemberMatters/compare/db0724495a09731ec18db2ebe353931a08c256e2..d6ce52564e8ae64975690107efbc2f1907ac1fb8 the changes juul made to add sendmail as an option] | ||
* [https://github.com/sudoroom/MemberMatters/compare/d6ce52564e8ae64975690107efbc2f1907ac1fb8..00918eda47d88d090c29c976410ae8036579d7ea the changes rechner and jake made to build our docker for postgres] | |||
* [https://github.com/sudoroom/MemberMatters/tree/sudoroom we are using the sudoroom branch in our docker] | * [https://github.com/sudoroom/MemberMatters/tree/sudoroom we are using the sudoroom branch in our docker] | ||
* we also need to edit frontend/src/i18n/en-AU/index.ts to change "mobile number" to "Phone Number (or X)" (it builds to /usr/src/app/frontend/dist/spa/assets/index.*.js ) | |||
* we are working on mounting the docker image with git on the server, so we can make changes to production and try them | * we are working on mounting the docker image with git on the server, so we can make changes to production and try them | ||
* we should set up a schedule for rebasing in changes from upstream, then shoving our changes back on top. then we can deploy to docker directly from our github fork | |||
= we are not spam = | = we are not spam = | ||
| Line 23: | Line 29: | ||
= certbot = | = certbot = | ||
* juul used pipx to install, and then had to manually make a systemd job to check it twice a day | * juul used pipx to install, and then had to manually make a systemd job to check it twice a day | ||
= Help us build and test = | |||
* prioritized bugs: https://github.com/orgs/sudoroom/projects/1/views/1 | |||
* submit a bug: https://github.com/sudoroom/MemberMatters/issues | |||
== Making a dev environment == | |||
(this assumes you already have git installed and docker setup!) | |||
# `cd` to a directory you want to put the repo | |||
# `git clone https://github.com/sudoroom/MemberMatters.git` | |||
# `git checkout -b branch-name` to make a new branch based of the default (sudoroom) | |||
# `touch /usr/app/django.log` (this is where the logs will go, and not creating it as a file seemed to create it as a dir which docker hated) | |||
# 'echo "MM_ENV=Development" > ./docker/.env` - I am not sure if this needs to go into the docker directory, or just exist? .env files are .gitignored anyway, but it looks like this is used by docker to set some environment vars in the docker-compose.yml | |||
# `cd ./docker` | |||
# `docker pull` (this make take a while) | |||
# `docker compose up -d` to start your docker image | |||
# `docker ps` will list your running containers processes that are created by the docker yaml file | |||
# `docker stop $(docker ps -q)` will stop all the containers by doing `docker stop` on all of the running containers (the -q flag lists by ID) | |||
== Some in-progress notetaking == | |||
# doing all that, and then going to localhost:8000 takes me to the BMS login page instead of sudoroom's. possibly, since on my setup i ran `docker pull membermatters/membermatters` initially before following the rest of those setups, that is what broke it - i would think that the config files (the database?) would supercede that | |||
# there is also a dev.env file at the top of the repo that might be worth checking out. possible you could `docker run --env_file /path/to/dev.env` and it would use that env instead of the one in the [https://github.com/sudoroom/MemberMatters/blob/481e4bc8f4a3f614e05fcc98af74c9380c7a05a2/docker/docker-compose.yml#L33 docker-compose.yml] ? I don't know if there is a `docker compose` equivalent, need to keep poking at that | |||
some updates: | |||
RechnerFox made a github action to update prod from a staging instance after that was [https://github.com/sudoroom/MemberMatters/commit/88529eec2418afd56302e7deaa4ccf2b3471aa88 added by jake] | |||
2026-01-28: Martin and Nicholas did some work hacking on the vps to backup, delete, and recreate the database so we could start from scratch. This required doing a pg_dump of the existing db, and then entering the postgres docker container with exec, using pgsl -U membermatters. Then we renamed the existing database, and then went back to the [https://membermatters.org/en/latest/GETTING_STARTED.html getting started page of the mm docs and picking up after the "docker start" commands to load the initial data to the database. | |||
Then Martin added himself and Judy, both times it threw errors because the email wasn't setup. MM says you need postmark, but in our fork we have code to get around that, but requires the postmark api key to be blank and the email default to be changed. | |||
2026-01-30: Jake did those two fixes and confirmed he got a password reset email! | |||
2026-02-05: Martin double confirmed email setup by sending a welcome email to himself and started trying to configure the logos, which he got from looking at the old mm email when it was setup and seeing what url was embedded in that email. | |||
Django logs are doing a bunch of Warnings about not finding various /api stuff? | |||
Logo changes aren't loading to the page :( Looks like it is attempting to load but no dice. Confirmed a matching format (png) and square size within favicon specs when linking to one from the wiki's logo page, and then linked to the old one but neither seem to be taking. --- Possible this is still due to all the Not Found /api stuff? | |||
Nicholas suggested that was just some scrapers or bots hitting the page, tested with him trying to load /api/nicksun and that also showed in the logs the same warning. | |||
Site Logo worked! Martin and Nicholas poked around more with it, and the favicon doesn't seem to be used anywhere except emails? But doing a rectangular image for the logo works! It's one of the logos from the wiki - possible we should switch it to a WP upload for speed, not sure how much that matters. | |||
== Currently ( 2026-02-07 ) == | |||
Martin added two payment plans and tested one and put in his card and it worked! Got an email and got to next steps | |||
= Membership Plan Setup = | |||
== Adding a Membership Payment Plan == | |||
Left Side Bar > Admin Tools > Membership Plan > Plus Icon, make sure you click the checkbox for 'visible to members' | |||
== Adding a new tier to the existing payment plans == | |||
Click the plan you made, click ''that'' plus icon. | |||
The popup window shows up, Name your plan, CHANGE THE CURRENCY TO USD, and then add the amount | |||
Notes: Make sure you also click the checkbox for 'visible to members' - if you don't do this, you have to go to the django page to set it (ie its not changeable by in the front end) | |||
= MEMBERSHIP PROCESS- DISCUSSION = | = MEMBERSHIP PROCESS- DISCUSSION = | ||
ivan & anca working on this | ivan & anca working on this | ||
''I want to become a member!! Steps | martin and ivan talked a bit about this 2026-01-06: | ||
* subscription statuses can be: active (currently paying) / inactive (not paying) | |||
* member status can be: active (currently a member) / inactive (not a member, but possibly still paying as a dono or something) / new (unsure, maybe we use this as 'signed up, but still pending endorsements/waiting period? what's the order of operations?) / or account only (signed up but not paying/no payment info in MM) | |||
=== I want to become a member!! Onboarding Steps === | |||
# Hang Out, attend an event, join lists, discord | # Hang Out, attend an event, join lists, discord | ||
# I Like this! - Fill out the Intent to Join Form!!! | # I Like this! - Fill out the Intent to Join Form!!! | ||
| Line 33: | Line 89: | ||
# Get a mentor!! | # Get a mentor!! | ||
= | === Setup payment on Member Matters === | ||
# Create an account, verify via email | # Create an account, verify via email | ||
# I'm on Sudo Humans, what do I do? | |||
# I use PayPal, or checks, or Bitcoin. What do I do? | |||
= | === Get door access === | ||
# Get an email? | # Get an email? | ||
# How many door access systems will we have? | |||
= | === Need to Setup, Immediate Actions === | ||
# Set up membership tiers | # Set up membership tiers | ||
# Set up payment plans | # Set up payment plans | ||
= | === Pain points: We need to fix these issues ... later === | ||
# ''need to check for verification email from member matters'' | # ''need to check for verification email from member matters'' | ||
# ''free accounts need billing info'' | # ''free accounts need billing info'' | ||
# ''get access card process needs work'' | # ''get access card process needs work'' | ||
# ''members can see each others activities on member matters'' | # ''members can see each others activities on member matters'' | ||
# ''need to edit dashboard, landing page'' | # ''need to edit dashboard, landing page'' - Where do we want the post signup page to go to? | ||
# ''update welcome and alert emails'' | # ''update welcome and alert emails'' | ||
= TODO = | |||
# '' Contact Info (Constance Config) - some of that is still membermatters / defaults (notably the email!) | |||
# '' Post-Signup page: Where do we have them go afterwards? (Currently Martin disabled the Access Card page (Django setting, Signup, REQUIRE_ACCESS_CARD) , maybe that should be enabled and we can route them somewhere for...'how to get door access' info | |||
# '' Landing Page Cards (Request an Issue, some default template cards) - Should we add a paypal link for one time donations? | |||
# '' Where's the place to change the Membership Plan Tier? Martin tried to do this and didn't find an easy way to do it | |||
Latest revision as of 23:18, 7 February 2026
this is the notes for the membermatters installation
to create a new user
to check the logs from the docker instance
github
- the changes juul made to add sendmail as an option
- the changes rechner and jake made to build our docker for postgres
- we are using the sudoroom branch in our docker
- we also need to edit frontend/src/i18n/en-AU/index.ts to change "mobile number" to "Phone Number (or X)" (it builds to /usr/src/app/frontend/dist/spa/assets/index.*.js )
- we are working on mounting the docker image with git on the server, so we can make changes to production and try them
- we should set up a schedule for rebasing in changes from upstream, then shoving our changes back on top. then we can deploy to docker directly from our github fork
we are not spam
- emails sent by this system for people to validate their account, or reset their password, are important
- emails are being accepted by gmail (for now) but not by some other platforms, and maybe not for some gmail users?
- we should look for ways to find out why the emails are rejected by some servers
- we probably need to format the emails with plaintext and MIME to make them look normal to spam checkers
- Our server is postfix based, but yeah, postfix has very good logging on exactly what happens to each message. Though you as the sender can't know if it went into spam, only if it got outright rejected.
- emails to an MIT address were rejected by Microsoft: "Access denied, banned sending IP [198.199.116.180]. To request removal from this list please visit https://sender.office.com/ and follow the directions" and then Sean followed the directions and asked them to unblock our IP address
- we need to setup monitoring of emails that were outright rejected, and take action each time. Dealing with emails marked as spam will be more challenging unless people have access to the spam filter information on their receiving end.
- we need to encourage more and people to sign up to the new system as we make progress, AFTER setting up rejection monitoring
certbot
- juul used pipx to install, and then had to manually make a systemd job to check it twice a day
Help us build and test
- prioritized bugs: https://github.com/orgs/sudoroom/projects/1/views/1
- submit a bug: https://github.com/sudoroom/MemberMatters/issues
Making a dev environment
(this assumes you already have git installed and docker setup!)
- `cd` to a directory you want to put the repo
- `git clone https://github.com/sudoroom/MemberMatters.git`
- `git checkout -b branch-name` to make a new branch based of the default (sudoroom)
- `touch /usr/app/django.log` (this is where the logs will go, and not creating it as a file seemed to create it as a dir which docker hated)
- 'echo "MM_ENV=Development" > ./docker/.env` - I am not sure if this needs to go into the docker directory, or just exist? .env files are .gitignored anyway, but it looks like this is used by docker to set some environment vars in the docker-compose.yml
- `cd ./docker`
- `docker pull` (this make take a while)
- `docker compose up -d` to start your docker image
- `docker ps` will list your running containers processes that are created by the docker yaml file
- `docker stop $(docker ps -q)` will stop all the containers by doing `docker stop` on all of the running containers (the -q flag lists by ID)
Some in-progress notetaking
- doing all that, and then going to localhost:8000 takes me to the BMS login page instead of sudoroom's. possibly, since on my setup i ran `docker pull membermatters/membermatters` initially before following the rest of those setups, that is what broke it - i would think that the config files (the database?) would supercede that
- there is also a dev.env file at the top of the repo that might be worth checking out. possible you could `docker run --env_file /path/to/dev.env` and it would use that env instead of the one in the docker-compose.yml ? I don't know if there is a `docker compose` equivalent, need to keep poking at that
some updates: RechnerFox made a github action to update prod from a staging instance after that was added by jake 2026-01-28: Martin and Nicholas did some work hacking on the vps to backup, delete, and recreate the database so we could start from scratch. This required doing a pg_dump of the existing db, and then entering the postgres docker container with exec, using pgsl -U membermatters. Then we renamed the existing database, and then went back to the [https://membermatters.org/en/latest/GETTING_STARTED.html getting started page of the mm docs and picking up after the "docker start" commands to load the initial data to the database.
Then Martin added himself and Judy, both times it threw errors because the email wasn't setup. MM says you need postmark, but in our fork we have code to get around that, but requires the postmark api key to be blank and the email default to be changed. 2026-01-30: Jake did those two fixes and confirmed he got a password reset email! 2026-02-05: Martin double confirmed email setup by sending a welcome email to himself and started trying to configure the logos, which he got from looking at the old mm email when it was setup and seeing what url was embedded in that email.
Django logs are doing a bunch of Warnings about not finding various /api stuff? Logo changes aren't loading to the page :( Looks like it is attempting to load but no dice. Confirmed a matching format (png) and square size within favicon specs when linking to one from the wiki's logo page, and then linked to the old one but neither seem to be taking. --- Possible this is still due to all the Not Found /api stuff?
Nicholas suggested that was just some scrapers or bots hitting the page, tested with him trying to load /api/nicksun and that also showed in the logs the same warning.
Site Logo worked! Martin and Nicholas poked around more with it, and the favicon doesn't seem to be used anywhere except emails? But doing a rectangular image for the logo works! It's one of the logos from the wiki - possible we should switch it to a WP upload for speed, not sure how much that matters.
Currently ( 2026-02-07 )
Martin added two payment plans and tested one and put in his card and it worked! Got an email and got to next steps
Membership Plan Setup
Adding a Membership Payment Plan
Left Side Bar > Admin Tools > Membership Plan > Plus Icon, make sure you click the checkbox for 'visible to members'
Adding a new tier to the existing payment plans
Click the plan you made, click that plus icon. The popup window shows up, Name your plan, CHANGE THE CURRENCY TO USD, and then add the amount Notes: Make sure you also click the checkbox for 'visible to members' - if you don't do this, you have to go to the django page to set it (ie its not changeable by in the front end)
MEMBERSHIP PROCESS- DISCUSSION
ivan & anca working on this
martin and ivan talked a bit about this 2026-01-06:
- subscription statuses can be: active (currently paying) / inactive (not paying)
- member status can be: active (currently a member) / inactive (not a member, but possibly still paying as a dono or something) / new (unsure, maybe we use this as 'signed up, but still pending endorsements/waiting period? what's the order of operations?) / or account only (signed up but not paying/no payment info in MM)
I want to become a member!! Onboarding Steps
- Hang Out, attend an event, join lists, discord
- I Like this! - Fill out the Intent to Join Form!!!
- Attend the next meeting, and get endorsements
- Get a mentor!!
Setup payment on Member Matters
- Create an account, verify via email
- I'm on Sudo Humans, what do I do?
- I use PayPal, or checks, or Bitcoin. What do I do?
Get door access
- Get an email?
- How many door access systems will we have?
Need to Setup, Immediate Actions
- Set up membership tiers
- Set up payment plans
Pain points: We need to fix these issues ... later
- need to check for verification email from member matters
- free accounts need billing info
- get access card process needs work
- members can see each others activities on member matters
- need to edit dashboard, landing page - Where do we want the post signup page to go to?
- update welcome and alert emails
TODO
- Contact Info (Constance Config) - some of that is still membermatters / defaults (notably the email!)
- Post-Signup page: Where do we have them go afterwards? (Currently Martin disabled the Access Card page (Django setting, Signup, REQUIRE_ACCESS_CARD) , maybe that should be enabled and we can route them somewhere for...'how to get door access' info
- Landing Page Cards (Request an Issue, some default template cards) - Should we add a paypal link for one time donations?
- Where's the place to change the Membership Plan Tier? Martin tried to do this and didn't find an easy way to do it