This is The Bristol Cable's membership system. We are actively looking for people/organisations who are interested in using the system or want to get involved.
If you are interested/have any questions please contact will@thebristolcable.org, I'd love to hear from you!
This system was originally created for South London Makerspace and repurposed by The Bristol Cable.
- GoCardless for direct debits
- MailChimp for newsletters
- Mandrill for transactional emails
- Discourse with SSO for forums
You need:
- Docker >= 19.03.8
- Docker Compose >= 1.28.0
- Node.js >= 12.16.1
NOTE: Lower non-major versions probably work but haven't been tested
The example env var file is enough to look around the system, but you'll need to create a sandbox GoCardless account to do any payment flows.
cp .env.example .env
npm install
npm run build
docker-compose build
# Initialise database
docker-compose up -d db
docker-compose run --rm app npm run typeorm migration:run
# Do the rest
docker-compose up -d
Go to: http://localhost:3001
docker-compose run --rm app node built/tools/new-user
Need some test data? Download it here: coming soon
docker-compose run --rm -T app node built/tools/database/import.js < <import file>
npm start
This runs everything with watchers for file changes to the app/css/assets.
The system is built around modular apps. If you're looking to add functionality to the site the best way to do this would by adding an app to the site rather than modifying it's base. This means you're unlikely to mess anything up.
As an example, let's add a login page.
Stub out your app structure within app/
, this will include:
apps/
login/
views/
index.pug
app.js
config.js
Check out these files to get an idea of how each of these should be structure.