Navigation & URL Structure¶
Overview¶
Nigall uses predictable URL prefixes per Django app. Event-scoped URLs always include both numeric event ID and 6-character event tag (e.g., /events/42/GKKILK/).
Purpose¶
Help users bookmark correct paths, build internal runbooks, and integrate deep links without broken routes.
Who should use it¶
- Organizers and operations staff
- Support and customer success
- Developers building integrations
Benefits¶
- Consistent
/events/<pk>/<event_tag>/pattern across modules - Clear separation of global hubs vs event-scoped management
- Easier troubleshooting when sharing links
Navigation path¶
Global entry points¶
| Label | URL | App |
|---|---|---|
| Home (redirect) | / → /events/ |
events |
| Event list | /events/ |
events |
| Discover | /events/discover/ |
events |
| Discover nearby | /events/discover/nearby/ |
events |
| Discover popular | /events/discover/popular/ |
events |
| My Events | /events/my-events/ |
events |
| Create Event | /events/create/ |
events |
| Organizer Dashboard | /events/dashboard/ |
events |
| Tools Hub | /events/tools/ |
events |
| Pricing | /pricing/ |
users |
| Django Admin | /admin/ |
Django |
Authentication¶
| Label | URL |
|---|---|
| Sign up | /accounts/signup/ |
| Sign in | /accounts/login/ |
| User profile | /users/profile/ |
Per-app hubs¶
| Module | Hub URL |
|---|---|
| Attendees | /attendees/ |
| Payments | /payments/my-payments/ |
| Communications | /communications/ |
| Program | /program/ |
| Speakers | /speakers/ |
| Exhibitors | /exhibitors/ |
| Vendors | /vendors/ |
| Sponsors | /sponsors/ |
| Talent | /talent/ |
| Venues | /events/venues/ |
| Volunteers | /events/volunteers/ |
Event-scoped pattern¶
/events/<int:pk>/<slug:event_tag>/<action>/
Examples:
- Detail: /events/42/GKKILK/
- Edit: /events/42/GKKILK/edit/
- Guest list: /events/42/GKKILK/guests/
- Module setup: /events/create/42/setup/attendees/
Prerequisites¶
- Authenticated session for organizer/management URLs
- Valid
pk+event_tagpair (tag is uppercase alphanumeric, 6 chars)
Step-by-step — Find any event management URL¶
- Open event → View Event.
- Note URL:
/events/<pk>/<tag>/. - Append module suffix from tables below.
- For module hubs, start from
/events/tools/and follow event-specific links.
Field descriptions¶
| Component | Description |
|---|---|
pk |
Integer primary key of Event |
event_tag |
6-char slug, auto-generated, uppercase |
step |
Module setup wizard key: exhibitors, vendors, attendees, sponsors, speakers, program, volunteers |
Business rules¶
| Rule | Detail |
|---|---|
| Tag required | URLs with wrong tag return 404 |
| Host shortcuts | Event detail shows host action buttons |
| Plan gating | Tools hub cards hidden without subscription |
| Staff | is_staff sees admin review URLs |
Validation rules¶
event_tagmust match stored value on event record- Private events require host/staff for management URLs
User permissions¶
Management URLs require event.host == request.user or is_staff unless noted as public (Discover, public program).
Workflow¶
Event-scoped URL reference¶
| Feature | URL |
|---|---|
| RSVP | /events/<pk>/<tag>/rsvp/ |
| Guest list | /events/<pk>/<tag>/guests/ |
| Attendee registrations | /attendees/events/<pk>/<tag>/registrations/ |
| Check-in dashboard | /attendees/events/<pk>/<tag>/checkin/ |
| Program | /program/events/<pk>/<tag>/ |
| Speaker dashboard | /speakers/events/<pk>/<tag>/dashboard/ |
| Exhibitor booths | /exhibitors/events/<pk>/<tag>/booths/ |
| Vendor stalls | /vendors/events/<pk>/<tag>/stalls/ |
| Sponsor pipeline | /sponsors/events/<pk>/<tag>/pipeline/ |
| Volunteers | /events/<pk>/<tag>/volunteers/ |
| Analytics (attendees) | /attendees/events/<pk>/<tag>/analytics/ |
Examples¶
Share registration link: /attendees/register/42/GKKILK/
Staff check-in station: /attendees/events/42/GKKILK/checkin/scan/
Best practices¶
- Always copy links from View Event to ensure correct tag
- Use Tools hub for cross-event module work
- Bookmark Organizer Dashboard for multi-event ops
Tips¶
- Event lookup:
/events/lookup/for search by title/tag - API base:
/api/mobile/v1/and/api/v1/(talent)
Common mistakes¶
| Mistake | Result | Fix |
|---|---|---|
| URL with ID only | 404 | Include event_tag |
| Lowercase tag | May fail | Use uppercase tag from event |
| Old tag after clone | Broken link | Use new instance URL |
FAQs¶
Why two identifiers?
Human-shareable tag plus stable numeric ID for APIs and admin.
Where is the dashboard?
/events/dashboard/ (organizer), not /events/organizer/ (docs alias — actual route is organizer_dashboard at /events/dashboard/).
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| 404 on event URL | Wrong tag | Copy from event detail |
| Module link missing | Toggle off or plan gate | Enable module; upgrade plan |
Related features¶
Screenshot placeholders¶
[SCREENSHOT: Tools hub with module cards][SCREENSHOT: Event detail host action bar][SCREENSHOT: Browser URL bar showing pk and tag]
Administrator notes¶
- Reverse name
events:organizer_dashboard→/events/dashboard/ - Configure
ALLOWED_HOSTSand HTTPS for production deep links
Developer/API notes¶
| Prefix | Purpose |
|---|---|
/api/mobile/v1/ |
JWT mobile API |
/api/v1/accounts/<uuid>/ |
Talent CRM REST |
/payments/webhook/ |
Stripe webhooks |
/communications/webhooks/ses/ |
Email delivery events |
Related: Roles & Permissions · Platform Overview