Commit Graph

8 Commits

Author SHA1 Message Date
paul a3546b4c01 Security hardening: env-based config, CSRF protection, secure code generation, plus presenter management and email communications system
- Move all credentials from hardcoded to .env with python-dotenv (add .env.example template and .gitignore)
- Add CSRF token generation and validation on all state-changing requests
- Replace random.choices with secrets.choice for all secure code generation
- Add session cookie security headers (HttpOnly, Secure, SameSite)
- Add presenter management: assign/remove presenters to breakout sessions, presenter QR scanning
- Add email communications system: templates per event, custom email sending, sent email tracking
- Add staff/organizer profile pages with staff code display
- New DB tables: event_email_templates, sent_emails, user_communications
- New DB columns: staff.reminder_count/reminder_dates, breakout_session_organizers.presenter_code
- Expand English translation strings across all new features

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-26 20:34:48 +00:00
paul 934848b7f5 Add password reset flow, attendee profile enhancements, and spec
- Add forgot_password and reset_password templates and routes
- Enhance profile.html with photo crop/zoom functionality
- Add attendee type management to edit_attendee.html
- Update templates styling and layout consistency
- Document database schema in SPEC.md
- Add CLAUDE.md project guidance

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 19:52:42 +00:00
paul 335658f2bf Update templates and styles
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 15:21:10 +00:00
paul 3b14155594 Fix attendee_types.code uniqueness: per-event not global
Also update generate_type_code() to accept event_id parameter
for proper per-event uniqueness checking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 14:45:27 +00:00
paul 7485357a07 Add comprehensive spec.md with database schema documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 14:43:41 +00:00
paul c823345676 Rewrite profile photo crop/zoom logic
Display and crop were using inconsistent coordinate systems.
Display now uses: translate(translateX+offsetX, translateY+offsetY) scale(zoomLevel)
Crop uses: srcX = -(offsetX + translateX) / scale

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 15:13:49 +00:00
paul 64ab1d0412 Add attendee type management and staff codes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-25 07:17:47 +00:00
paul dec6446d7d Initial commit: conference app with Flask
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 14:53:41 +00:00