|
|
||
|---|---|---|
| .dist-info/sboms | ||
| .forgejo/workflows | ||
| acl | ||
| agenda | ||
| api | ||
| avatar | ||
| chores | ||
| demo | ||
| deploy | ||
| docs | ||
| kwh | ||
| mailinglists | ||
| mainssensor | ||
| makerspaceleiden | ||
| memberbox | ||
| memberlist | ||
| members | ||
| motd | ||
| mqtt | ||
| navigation | ||
| nodered | ||
| pettycash | ||
| pettycredit | ||
| scripts | ||
| selfservice | ||
| servicelog | ||
| spaceapi | ||
| status | ||
| storage | ||
| sumup_connector | ||
| terminal | ||
| ufo | ||
| ultimaker | ||
| unknowntags | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| conftest.py | ||
| CONTRIBUTING.md | ||
| cron-midnight.sh | ||
| cron-monthly.sh | ||
| cron-pre-monthly.sh | ||
| cron-weekly.sh | ||
| example.env | ||
| INSTALL.md | ||
| LICENSE | ||
| loaddemo.ps1 | ||
| loaddemo.sh | ||
| manage.py | ||
| pyproject.toml | ||
| README.md | ||
| rollout-prod.sh | ||
| rundemo.sh | ||
| uv.lock | ||
Makerspace Leiden CRM
Welcome to our Makerspace Management System. This software helps our community manage participant access, equipment permissions, storage, and more.
Table of Contents
- Table of Contents
- Quick Start Guide
- For Developers
- Deployment Process
- Functional Requirements
- System Design
Quick Start Guide
System Requirements
Installation Options
- Create environment file:
cp example.env .env - Run the demo script:
sh loaddemo.sh
Accessing the System
After installation, visit:
http://localhost:8000/
You can log in using the test accounts created during installation. The loaddemo script will output these login details.
Testing the API
You can test the API with commands like:
curl -H "X-Bearer: Foo" -F tag=1-2-4 http://localhost:8000/acl/api/v1/getok4node/foonode
(This assumes your local settings contain the "Foo" password - see debug.py)
For Developers
Please see CONTRIBUTING.md for detailed information on how to contribute to this project, including code style, pre-commit setup, and submission guidelines.
Deployment Process
The deployment process is automated. When code is pushed to the main branch:
-
Tests run automatically - The system checks:
- Code quality (pre-commit checks)
- Database migrations are correct
- All tests pass
-
If tests pass - The system automatically deploys to the live server
-
If tests fail - Deployment is blocked. Fix the issues and try again.
Pull requests are also tested automatically, so you can verify your changes work before merging.
Functional Requirements
For Trustees (Administrators)
- Manage participant progression (from new participants to full access with 24/7 key)
- Track participant status (forms completed, standing in community)
- Manage instruction groups (who can teach others)
- Create and manage equipment/machines
- Manage RFID cards
- Generate reports on storage and permits
API Features
- Check permissions based on RFID tags
- Verify basic membership
- Verify equipment training status
- Verify specific permits
Self-Service Features
- New membership requests (no login required)
- Password reset
- Manage RFID cards (activate new cards, deactivate old ones)
- Record when you've given instruction to another member
Self-Service Bonus
- Report accidents
- Report equipment problems or activate lockouts
- Find participant storage bins
- Request storage permits for larger items
- Track spare parts ordering
Email Notifications
The system automatically sends emails in these situations:
-
User Detail Changes
- When users update their personal information
- Email sent to: Trustees
-
Training Records
- When someone adds instruction/training records
- Email sent to: Trustees and possibly members ("deelnemers")
-
Storage Space Changes
- When any changes are made to storage space
- Email sent to: All members ("deelnemers")
- Separate email to owner if the change was made by someone else
- Email to trustees if duration > 30 days or if extending an auto-approved 30-day permit
-
Storage Box Changes
- When any changes are made to storage boxes
- Email sent to: Trustees
- Separate email to owner if the change was made by someone else
Operational
In addition to the above, the system is designed to be easy to maintain and scale.
- Standard Django setup for easy maintenance
- Supports dozens of machines/equipment
- Handles hundreds of users
System Design
Outline of the current system design.
User Structure
- Standard Django user system
- Additional member-specific information (forms on file, emergency contacts)
- Possible to add more information
Key Components
-
Machines
- Equipment and access points (like doors)
- May require specific training
- May require signed waivers
- May require special permits
-
Permits
- Access categories (like door access)
- May build on other permits
-
Entitlements
- Specific permissions assigned to users
- Assigned by authorized members
- Issuers must have the entitlement themselves
- Instructors need appropriate permits to grant entitlements