Online Form with Social Login
- Overview
There are a lot of SAAS for online forms. Some of them have the SSO features only at the enterprise tier. I would like to achieve the similar results (online form + social login) for a lower cost.
My budget is USD 50 per hour. I appreciate if you could give a quote. Thanks.
- Pages
The following is my rough ideas. I am open mind to other suggestions and would be happy to draw the wireframe.
2.1. Online Form
To-Do: Create a form similar to https://formexample.imfast.io/IXL_Fractions_AE_example.html, which incorporates the social credentials.
There is a sample page that I created on and downloaded from paperform.co (https://formexample.imfast.io/IXL_Fractions_AE_example.html)
I like the look and feel, as well as the responsive framework.
The form has 2 hidden fields: “course” and “module”. I would like to have these 2 variables to the server, so that the server will query the database and deliver different data for “IXL Question Set”.
Once I have the social login feature, the email should be populated with the social login email.
The online form will be embedded in iframe. The container website (canvas, more about this below) will use the same social login and will manage the user access control. I hope the online form will pick up the same social login credential.
2.2. Container Website
To-Do: None
The contain website is a LMS SAAS, called Canvas (canvas.instructure.com). It supports variable social login services.
Canvas’s embedded page supports iframe. It works well with the paperform, as I have tested.
I didn’t test if the social login credential will be passed into the iframe.
*** The online form will probably need to pop-up a window for the social login, if the credential is not passed from Canvas into the online form. ***
2.3. Landing Page
To-Do: Create a landing page with 3 social icons for login.
I need to enforce the same social login for Canvas and my online form, and I don’t want the users to login Canvas, not using social login.
Therefore, I would like to have a landing page, where 3 social login icons are clearly listed: Apple, Google and Microsoft.
In case, the user is currently on one of the session. The landing page will ignore the current session and ask the user to login again — no sure if it is doable.
If the social login is successful, the user will be forwarded to the respective Canvas login page, where the user will be automatically logged in.
- https://canvas.instructure.com/login/apple
- https://canvas.instructure.com/login/google
- https://canvas.instructure.com/login/microsoft
- Date Model
3.1 Users
I will just need to record the user info returned from the social login on the landing page: email, names, etc.
The authentication is handled by Canvas. I don’t need to worry about it.
- id
- name
3.2 Tasks
It is a table with the following columns. This table is populated by the admin, by importing a csv file, e.g.
The online form will input a value for “source” and “module”, and formulate the form fields with the returned data for “id”, “year” and “question_set”.
- id
- course
- module
- year
- question_set
3.3. Practice Records
Each submission of the online form will create a record for this table.
I should be able to view this table on the website and download into a csv file.
- id
- submission_time (UTC)
- Users.id
- Tasks.id
- scores (text field from “Finished points”)
- duration (converted to seconds, from “Time used (minutes)”
3.4 Joined View
I would like the server to display a joined view for the practice records, also available for downloading as a csv file.
- User.email
- Tasks.course
- Tasks.module
- Tasks.year
- Tasks.question_set
- Practice_Records.submission_time
- Practice_Records.scores
- Practice_Records.duration (displayed as hh:mm:ss)