No description
https://members.artifactory.org.au
- Python 48.2%
- HTML 33.8%
- JavaScript 17.4%
- CSS 0.6%
| .github/workflows | ||
| .vscode | ||
| blueprints | ||
| helpers | ||
| migrations | ||
| providers | ||
| slack_blocks | ||
| static | ||
| tasks | ||
| templates | ||
| util | ||
| .gitignore | ||
| .gitmodules | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| api_test_client.py | ||
| app.py | ||
| auth.py | ||
| celery_app.py | ||
| celeryconfig.py | ||
| CHANGELOG.md | ||
| config.py | ||
| docker-compose.yml | ||
| generate_pwa_icons.py | ||
| gunicorn.conf.py | ||
| log_config.py | ||
| maintenance_tasks.py | ||
| models.py | ||
| nav.py | ||
| pyproject.toml | ||
| README.md | ||
| run_server.py | ||
| shared_cache.py | ||
| sonar-project.properties | ||
| uv.lock | ||
Member Portal
TODO
URL Routes
Main Portal Routes
/
- Description: Home page/index page
- Authentication: Optional (logged out users see a prompt to log in)
- Features: N/A
/privacy
- Description: Privacy policy page
- Authentication: Public (accessible without login)
- Features: Displays privacy policy
/training
- Description: Training tracker page
- Authentication: Requires
tidyhq.linkedpermission (data is currently sourced from TidyHQ) - Features:
- Displays machine training status by category
- Shows training progress charts
- Lists all machines and user's training status
- Segments:
#verify-tool-{tool_id}- Open a modal that indicates whether a user can use the tool- `#doc-{tool_id} - Open a modal with attached training documentation if present
#{category}- Expand the accordion section for a specific category (e.g.,#3D,#laser)
/invoices
- Description: Invoice management page
- Authentication: Requires
tidyhq.linkedpermission - Features:
- Lists outstanding invoices
- Shows paid invoices
- Displays deductible invoices by financial year
- Calculates total outstanding and overdue amounts
/membership
- Authentication: Requires
tidyhq.linkedpermission - Description: Membership information page
- Features: Displays user's membership details and subscriptions
/slack
- Authentication: Requires
slack.linkedpermission - Description: Slack channels page
- Features:
- Lists available Slack channels
- Shows channel join buttons with interaction tokens
- Displays channel messages
/pledges
- Authentication: Requires
tidyhq.linkedpermission - Description: Donation projects listing page
- Features:
- Lists approved donation projects
- Shows project statistics and funding progress
- Displays user's donations to each project
- Sorts projects (incomplete first, then by date)
- Segments:
#pledge-{project_id}- Expand the details section for a specific project
/pledges/<project_id>
- Authentication: Requires
tidyhq.linkedpermission - Description: View project details page
- Parameters:
project_id(UUID) - The project ID - Features:
- Good when you want to promote a specific project
- Shows project details
- Displays funding statistics
- Shows user's donation history
- Allows making/updating donations
/events
- Authentication: Requires login (any authenticated user)
- Description: Events listing page
- Features: Displays upcoming events
/tokens
- Authentication: Requires
tidyhq.linkedpermission - Description: Volunteer hours and tokens page
- Features:
- Displays stats about personal volunteering across the workshop
Authentication Routes (/auth)
/auth/login/select
- Description: Provider selection page for login
- Features: Shows available OAuth providers (Slack, TidyHQ, GitHub, Facebook, Apple, Google) if configured
/auth/link
- Description: Link additional OAuth providers to existing account
- Authentication: Requires login
- Features: Shows provider selection for linking accounts
/auth/profile
- Description: User profile page
- Authentication: Requires login
- Features: Displays user's linked accounts and profile information
Committee Portal Routes (/committee)
/committee/
- Description: Committee portal index page
- Authentication: Requires
volunteerorcommitteegroup - Features: Dashboard for committee members/volunteers
/committee/tokens
- Description: Committee volunteer hours overview
- Authentication: Requires
volunteerorcommitteegroup - Features:
- Overall volunteer statistics
- Top volunteers list
- Volunteer badge streaks
- Volunteers with debt
- Charts and analytics
/committee/training
- Description: Committee training management page
- Authentication: Requires
tidyhq.committeeorslack.group_trainerspermission - Features: Training overview and management for committee
- Segments:
#contact-{contact_id}- Open and scroll to a specific contact in the contacts tab#category-{category_name}- Switch to tools tab and open the category modal for a specific category#induction-{category}-{machine_id}- Switch to tools tab, open the category modal, and scroll to a specific machine/induction
/committee/induction-docs
- Description: Searchable list of all training documentation
- Authentication: Requires
tidyhq.committeeorslack.group_trainerspermission
/committee/induction-docs/{tool_id}
- Description: Individual page for a single tool induction
- Authentication: Requires
tidyhq.committeeorslack.group_trainerspermission
/committee/pledges
- Description: Committee donation projects management page
- Authentication: Requires
tidyhq.committeepermission - Features:
- Lists all projects (including pending and denied)
- Shows project statistics
- Allows project approval/denial
- Invoice generation
- Segments:
#pledge-{project_id}- Scroll to and open the modal for a specific project
/committee/pledges/<project_id>/audit-log
- Authentication: Requires
tidyhq.committeepermission - Description: View audit log for a project
- Parameters:
project_id(UUID) - The project ID - Features: Shows project modification history
/admin/tidyhq
- Description: TidyHQ contacts administration page
- Authentication: Requires
tidyhq.committeepermission - Features: Main admin interface for managing TidyHQ contacts
- Segments:
#contact-{contact_id}- Search for and open the contact modal for a specific contact
/admin/tidyhq/contact/<contact_id>/memberships
- Authentication: Requires
tidyhq.committeepermission - Description: View contact's memberships
- Parameters:
contact_id(string) - TidyHQ contact ID - Features: Displays all memberships for a specific contact
/admin/tidyhq/contact/<contact_id>/invoices
- Authentication: Requires
tidyhq.committeepermission - Description: View contact's invoices
- Parameters:
contact_id(string) - TidyHQ contact ID - Features: Displays all invoices (outstanding, paid, and deductible) for a specific contact
/admin/tidyhq/contact/<contact_id>/invoices/<invoice_id>
- Authentication: Requires
tidyhq.committeepermission - Description: View specific invoice details
- Parameters:
contact_id(string) - TidyHQ contact IDinvoice_id(string) - Invoice ID
- Features: Displays detailed invoice information for a specific contact
Authentication & Permissions
Permission Groups
tidyhq.linked- User has linked TidyHQ accountslack.linked- User has linked Slack accounttidyhq.committee- User is a committee member (TidyHQ group)slack.group_trainers- User is in Slack trainers group
Authentication Flow
- User visits protected route
- If not logged in, redirected to
/auth/login/select - User selects OAuth provider
- Redirected to provider's OAuth page
- Provider redirects back to
/auth/callback/<provider> - System creates/links account and sets session
- User redirected to originally requested page