Makerspace management system https://members.artifactory.org.au
  • Python 46.6%
  • HTML 30.7%
  • JavaScript 22%
  • CSS 0.7%
Find a file
2026-05-07 01:26:59 +08:00
.github/workflows
.vscode More minor linting 2026-03-12 04:16:20 +08:00
alembic Make tool list sortable, hide filter, add permission group, add tool duplication 2026-05-06 16:12:32 +08:00
blueprints Edit upcoming sessions, fix filter collapsing accordion 2026-05-07 01:01:16 +08:00
helpers
migrations
providers Highlight non members in locker list 2026-05-07 01:26:59 +08:00
scripts Add pledge scope and padding 2026-04-22 19:19:14 +08:00
slack_blocks Add pledge scope and padding 2026-04-22 19:19:14 +08:00
static Highlight non members in locker list 2026-05-07 01:26:59 +08:00
tasks Tool database, Clean up button colours 2026-05-06 00:47:57 +08:00
templates Search locker assignments 2026-05-06 17:42:25 +08:00
util Remove markdown and replace datetimes in app notifications 2026-05-07 00:42:26 +08:00
.gitignore
.gitmodules Add helpers for edge auth, add failed scans to db for #217 2026-03-31 15:36:59 +08:00
.pre-commit-config.yaml
.python-version
alembic.ini Bump to 0.11.0 2026-03-20 03:13:49 +08:00
api_test_client.py
app.py Tool database, Clean up button colours 2026-05-06 00:47:57 +08:00
auth.py Add beginning of permissions framework 2026-05-01 12:29:08 +08:00
celery_app.py Tool database, Clean up button colours 2026-05-06 00:47:57 +08:00
celeryconfig.py Add Xero link and mapping 2026-04-22 16:54:39 +08:00
CHANGELOG.md Highlight non members in locker list 2026-05-07 01:26:59 +08:00
config.py
docker-compose.yml Increase healthcheck ping for rabbitmq 2026-04-14 17:13:03 +08:00
generate_pwa_icons.py
gunicorn.conf.py
log_config.py Fix slack event RSVPs, reduce logging for oauth 2026-04-14 15:06:38 +08:00
maintenance_tasks.py Make event update task instance aware 2026-04-14 17:12:35 +08:00
models.py Make tool list sortable, hide filter, add permission group, add tool duplication 2026-05-06 16:12:32 +08:00
nav.py Make tool list sortable, hide filter, add permission group, add tool duplication 2026-05-06 16:12:32 +08:00
openapi.yaml Add helpers for edge auth, add failed scans to db for #217 2026-03-31 15:36:59 +08:00
pyproject.toml Bump to 0.11.4 2026-05-04 01:44:32 +08:00
README.md
reverse_announcement_whoopsie.py
run_server.py
shared_cache.py
sonar-project.properties
test_endpoints_load.py
uv.lock Bump to 0.11.4 2026-05-04 01:44:32 +08:00

Member Portal

💡Warning This code is actively changing and is not ready for use outside of the Artifactory

An application that bundles together useful tools for running a makerspace/community shed.

Features

Training & Inductions

Safety inductions are essential to managing a shared community workspace. Tracking them typically involves a bunch of coloured stickers on name badges or a whole load of markdown tables on a wiki.

  • Inductions are split into "levels". These levels are defined at an organisational level and can help members understand the risk associated with particular tools along with how the training process may differ based on the induction level. As an example the Artifactory uses a three tiered "traffic light" system.
  • Users can view their own inductions, a timeline of when they were completed, potential inductions they can achieve in the future, and associated documentation for tools they're already trained on.
  • Trainers can manage inductions, track training statistics across the workshop to identify popular areas, and view a log of training completed by others to keep everyone abreast of what's going on.

Volunteer Hours & Tokens

Community organisations require an amazing amount of volunteer time to function. Encouraging attendees and members to contribute with a carrot approach seems to work better than a stick.

  • Volunteer time is split into "buckets" like "cleaning" and "donation sorting"
  • Members can submit volunteer hours, track their personal contribution statistics, view rewards, and manage time debt. (Time debt is a concept the Artifactory introduced to ensure occasional/new attendees got into the swing of volunteering. "If we spend one hour training you we ask that you spend one hour contributing around the space")
  • Volunteers can submit hours for others and with greater granularity/less guard rails.
  • Committee members can approve volunteer hour submissions from non volunteers, view overall analytics including top volunteers and badge streaks, and manage token buckets. This allows committee members to get a deeper understanding of how volunteer time is being spent.

Events

Managing events is pretty easy when the features you're looking for are supported by Google Calendar. Once you're looking for things like permissions/RSVPs it all kinda just collapses into a pile of different calendars etc.

  • Members can browse upcoming events, RSVP to events, bookmark events for their calendar, and subscribe to personalised ICS calendar feeds.
  • Event managers can create events with support for recurring series, varying RSVP deadlines/types/prices, day pass requirements, and visibility restrictions.
  • Event calendars can be embedded in external sites with theming controls that let them match the host site rather than looking like an iframe from 2015. (Looking at you Google)

Announcements

Managing updates across various categories and interest levels is an interesting challenge. How do you strike the balance between showing everyone everything and notification fatigue?

  • Members can view announcements, subscribe to announcement categories, and acknowledge announcements when required.
  • Committee members can create announcements with support for markdown, image attachments, and tools that tie in to the training system specifically. (Acknowledging training changes). Announcements can be limited to specific user groups and inductions.
  • Announcements can also be treated as "incidents" with basic status updates. This allows affected users to track things like workshop closures as they progress (power outages, pandemic related shutdowns, major tool outages etc)

Membership & Invoices

Coming soon!

Donations/Pledges

Fundraising for new improvements is vital to organisations that rely primarily on donations. The portal includes a fundraising/crowdfunding platform that allows attendees to put their money where their mouth is. This means that changes to the workshop are made based on what the community wants.

  • Members can browse approved donation projects, track funding progress, view their donation history, and make or update donations.
  • Committee members can approve or deny proposed projects, generate invoices for pledges, view project statistics and audit logs, and manage project details.

Documents & Agreements

Signed documents are the only way agreements stay true to their intent when the people following them change year to year.

  • Documents are split into two categories. General documents are things like workshop waivers where many people need to sign their own copy over time. Specific documents are for things like tool loans where only one copy of the document should exist.
  • Members can view and sign documents and agreements available to them.
  • Committee members can manage document availability, track who has signed which documents, and create documents with a reasonable level of granularity. Signing as specific roles can be gated to specific groups ("Member of X subcommittee") or specific users ("John Doe as tool owner")

Concessions

Supporting disadvantaged members of our communities is a core goal of many organisations. Tracking and managing concession eligibility can be a time consuming undertaking. Doing so while respecting the privacy of attendees and minimising data security issues makes the whole thing more complex.

  • Members can apply for concession recognition under a variety of categories and with various levels of proof. These include uploading documents, having committee members sight documents in person, and providing details so the organisation can verify statuses directly.
  • Committee members can verify concession statuses, view documents (with specific audit logs), and send verification requests to Services Australia. Uploaded documents are only kept for the minimum amount of time required to verify concession eligibility.

Lockers

  • Members can apply for storage lockers and view their existing assignments.
  • Volunteers can view assigned lockers with a customisable layout that reflects varying physical locker configurations.
  • Committee members can manage allocations and applications.

Camera Feeds

There's nothing quite like looking at a workshop before coming in to get you in the mood for making.

  • Attendees/Members/Volunteers can view camera feeds with a granular permissions system
  • Committee members can manage permissions, and register any camera supported by go2rtc

Workflows

Organisation processes are second nature once you've been around for a while but can be difficult for newcomers to understand.

  • Members can track their progress through specific workflows/processes
  • Committee members can manage workflows. This includes a granular system that ties into every other aspect of the portal. You can create an onboarding workflow that holds an attendees hand through the entire portal.

Notifications

  • Members can control how they receive notifications with support for Slack, email, and in app notifications from the portal itself. Other systems within the portal (like training and announcements) will seamlessly deliver styled notifications as required.
  • Committee members view existing notifications and send once off notifications/communication as required. There's a robust mail merge/templating engine to make repeated notifications a breeze.

Profile and Contact Management

  • Users can manage their own information (name, gender, pronouns, age, address, contact information, emergency contact information etc) as well as link a variety of 3rd party accounts for easy authentication.
  • Committee members can manage contacts, view membership history, add contact notes, view contact timelines with support for external applications and global events, and access demographic reports including age and gender statistics.

Food orders

Group food orders are a common late night occurrence but juggling order DMs from multiple people is needlessly frustrating when you're standing at the kebab shop counter at 1am.

  • Users can save their preferred order for registered businesses and submit choices for food orders they're invited to. (directly, via url, or QR code)
  • Volunteers can initiate new food orders, invite users, and submit orders for others
  • Management Committee can administer food businesses

Training booking

System in flux, docs once settled

Material management

System in flux, docs once settled

Technical Features