Accepted
FeedForward needs a secure and user-friendly authentication system. We considered several options:
Key factors in this decision: - FeedForward is designed as an independent application, not tightly integrated with institution systems - Different institutions have different identity management systems - Need for a flexible approach that works for various deployment scenarios - Need to support different user roles (students, instructors, administrators) - Need for email communication with users for other app features
We have chosen to implement a custom authentication system with email verification, with these key components:
This approach allows: - Institution independence (no integration with specific SSO systems required) - Confirmation that users have valid email addresses (important for system communications) - Automated approval for instructors from trusted institutions - Administrative control over instructor accounts from non-whitelisted domains - Student invitation workflow by instructors (students cannot self-register)
Instructor Registration: - Self-registration via signup page - Email domain checked against domain whitelist - Auto-approval for whitelisted domains (e.g., curtin.edu.au, ecu.edu.au) - Manual admin approval required for non-whitelisted domains - Email verification required for all instructors
Student Registration: - No self-registration allowed - Instructors upload student email lists or invite individual students - System creates basic accounts and sends invitation emails - Students complete registration by setting name and password - Email remains fixed to ensure roster matching
Admin Management: - Initial admin created via setup script - Domain whitelist management - Manual approval of instructors from non-whitelisted domains - Ability to promote existing users to admin role
The system maintains a database table of allowed domains with configuration for auto-approval: - Domain name (e.g., "curtin.edu.au") - Auto-approval flag (true/false) - Creation and update timestamps
While custom authentication is the initial approach, the system is designed to potentially add SSO options in the future:
This gives us a solid starting point while leaving the door open for more sophisticated authentication methods as needs evolve.