Mobile App¶
Overview¶
Nigall provides a JWT-based REST API at /api/mobile/v1/ for mobile clients covering authentication, Discover, event detail, RSVP, and ticket wallet—complementing the responsive web app.
Purpose¶
Support native or hybrid mobile experiences for browsing events, submitting RSVPs, and displaying tickets without reimplementing business logic.
Who should use it¶
- Mobile app developers
- Attendees using official/companion apps
- QA testing mobile flows
Benefits¶
- Token auth with
/auth/login/and/auth/me/ - Discover and search parity with web catalog
- Ticket list endpoint for wallet UI
Limitations: Survey questions not yet on mobile RSVP; full registration/checkout remains web-primary.
Navigation path¶
Web equivalents for testing:
| Mobile endpoint | Web equivalent |
|---|---|
| Discover | /events/discover/ |
| Event detail | /events/<pk>/<tag>/ |
| RSVP | /events/<pk>/<tag>/rsvp/ |
| Tickets | /attendees/registrations/<pk>/ticket/ |
Prerequisites¶
- Mobile client with JWT storage
- User account for authenticated endpoints
- RSVP-type events for mobile RSVP POST
Step-by-step — Mobile authentication¶
POST /api/mobile/v1/auth/login/with credentials.- Store access token securely.
GET /api/mobile/v1/auth/me/to verify session.
Step-by-step — Browse and RSVP¶
GET /api/mobile/v1/events/discover/— paginated public events.GET /api/mobile/v1/events/<pk>/<tag>/— detail (private events require auth as host).POST /api/mobile/v1/events/<pk>/<tag>/rsvp/— RSVP payload (RSVP events only).GET /api/mobile/v1/tickets/— user's tickets.
[SCREENSHOT: Mobile ticket wallet mock]
Field descriptions¶
| Endpoint | Auth | Returns |
|---|---|---|
auth/login |
No | JWT tokens |
auth/me |
JWT | User profile |
events/discover |
JWT | Public events list |
events/search |
JWT | Search results |
events/categories |
JWT | Category facets |
events/<pk>/<tag>/ |
JWT | Event detail |
events/<pk>/<tag>/rsvp/ |
JWT | RSVP create/update |
tickets/ |
JWT | Registration tickets |
Business rules¶
| Rule | Detail |
|---|---|
| RSVP only on API | Registration checkout not in mobile API |
| Private events | Detail restricted; host checks on server |
| Survey questions | Not exposed on mobile RSVP yet |
| Token expiry | Per JWT settings in deployment |
Validation rules¶
- Same RSVP capacity/waitlist rules as web
- Invalid tag → 404
User permissions¶
JWT identifies user; server enforces same rules as web session.
Workflow¶
Examples¶
iOS companion: Discover tab + ticket QR fullscreen.
Android: Push deep link to event detail API.
Best practices¶
- Refresh token before event day
- Cache ticket QR offline after fetch
- Fall back to web for registration/payment
Tips¶
- Categories endpoint for filter chips
- Search query param on
events/search/
Common mistakes¶
| Mistake | Result | Fix |
|---|---|---|
| POST RSVP on registration event | Error/wrong flow | Open web registration |
| Missing survey on mobile | Expected gap | Use web for custom questions |
FAQs¶
Full registration on mobile?
Not in current API — use web /attendees/register/.
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| 401 | Expired JWT | Re-login |
| Empty tickets | No confirmed regs | Complete web registration |
Related features¶
Screenshot placeholders¶
[SCREENSHOT: Mobile discover list][SCREENSHOT: Mobile RSVP form][SCREENSHOT: QR ticket fullscreen]
Administrator notes¶
- Configure CORS and JWT secret in production
- Rate limit login endpoint
Developer/API notes¶
App: mobile_api
URLs: mobile_api/urls.py
Views: mobile_api/views.py
See also: Known Limitations