Today we will discuss how the registration, email verification and profile creation for CollegeGuide came to be.
Account Registration
The account registration was designed using a combination of checks from the backend and frontend. On the frontend is a commonly used registration forum with a username, email and password.
The username and email has to be unique to ensure student do not use one email for multiple accounts to overload the system. Every email must be a college email. Currently, DCU and Maynooth emails are supported. In order to ensure the user own the email, a verification is sent (discussed in the next section). The password must be at least 10 characters long, with a capital letter, number and special character to strengthen security. Django handles password hashing in the backend database. Below is an example of a user inputting a password too short.
The backend ensures that no two emails are duplicate, and returns an error with a “Email or username already exists!” message displayed to the user.
Email Verification
When the user creates an account, they will be directed to the email verification page to confirm they own the email. A security code will be sent to them via email which will contain a one-time code for them to enter in the website to confirm their identity.
Profile Creation
Finally, you are directed to a profile creation page where you can put in some information about your profile and what is your college, programme and year. Here is a part of the form:
Conclusion
Initially, we only had a registration and profile creation form. After some consideration, we decided to also add an email verification in order to ensure students cannot just use another student’s email. As features such as the Partner Matcher was developed, we progressively added content here, from extra validation checks for emails and passwords, to populating the profile creation form with interests, skills and preferred project roles.
In other words, this is more of a continuously developed are of the project, which can be said about any component of the system. There are always tweaks and changes we do here and there to ensure everything is always up to date with newly introduced components. And of course, every significant change is listed in the Gitlab commits!