Opportunity IQ is built on KeystoneJS which runs on Node & Express, and uses MongoDB for storage. The templating language is Jade.
/routes/views/register.js
is where the registration / pricing logic is run.
/routes/views/register_success.js
determines whether or not to redirect the user to the registration success page or to an analysis that they have already begun.
/routes/views/analysis.js
is the home page of the app, where the user either creates a new assessment or continues on an existing one.
/routes/views/index.js
is the actual assessment.
/routes/views/printable.js
is where the logic for rendering the printout is contained.
/routes/views/password/forgotPass.js
is the password reset form, where the user requests a reset email.
/routes/views/password/resetPass.js
is where the user enters a new password and the users token is checked for authenticity.
/models/users.js
has the resetPassword method which is where the reset token is generated and stored to the users account.
/templates/emails/forgotten-password.js
is the template for the email sent out to the user that requested a password reset token.
Assessments are stored in a few seperated models. analysis.js
is the main assessment model. This stores two primary fields, "user", and "title", as well as the database "_id". Using these fields we load the related records for each answer (answer.js
). Each record in pages.js
is a question in the assessment flow.
OPIQ is currently hosted on Heroku.
The staging environment can always be found with the latest code at http://opiq-stage.herokuapp.com/
The production environment can be found at http://opiq.opportunityiq.com/
, which functions as a CNAME for http://opportunityiq.herokuapp.com/