Accessible to authorized user.
This is the first step anyone is required to complete.
Url: mSignup/user. (app.js)
Router: /signup. (routes.js)
This creates a temporary token and sends a verification email to the user.
At this point eh user status is unverified
`the temporay tokens and accounts can be removed from content manager page after 24H.`
Before the user can signup for mentorship or post on a forum, they need to follow
the link from their verification email.
If an account doesnt get verified after 24h it will be deleted.
`Once they click the verified link, their account status will be **verified**`
Step by step of the whole process of signup/mentor match/setup.
Types of account status:
unverified : temporary account. Only last 24h if it remains unverified (use email verification).
verified : basic account, lets the user access the forum, libraries etc.
//NOT USED ANYMORE:
menteeIncomplete: status while a user has selected to become a mentee and is filling the form.
(used for save function).
mentorIncomplete: status while a user has selected to become a mentor and is filling the form.
(used for save function).
menteeInTraining : status of a mentee once the forms have been filled up and
is doing the training modules.
mentorInTraining : status of a mentor once the forms have been filled up and
is doing the training modules.
menteeSeeking : Once a menteeInTraining has completed the training and the
application/(school email has been verified "Not yet added").
`At this the mentee will can request to be matched with mentors from the timeline.`
mentee : Once a mentee has reviewed and accepted a mentor match. The program starts here.
mentor : Once a mentor has finished all required training and police check/application
verification has been completed.
mentorFull : status if a mentor as the max number of mentee permited OR as set his
account to not receive new/any mentees.
#### MenteeSeeking
Once approved the system will send request to the best matched mentors.
Matching point system:
first checks for matching data :
Gender -> true/false
Field/Study -> true/false
Disabilities -> true/false
Then it applies the point values for each:
| If True | mentee | mentor |
|---|---|---|
| high | +10 | +5 |
| low | +6 | +3 |
| none | +4 | +2 |
| If False | mentee | mentor |
|---|---|---|
| high | -6 | -3 |
| low | -4 | -2 |
| none | 0 | 0 |
example :
Mentor: gender -> low
(male)
Field/Study -> high
(Computer Science)
Disabilities -> none
(Physical)
Mentee: gender -> high
(male)
Field/Study -> high
(Design)
Disabilities -> none
(learning)
first we check if their information matches:
-gender : True
-Field/study : False
-Disabilities: : False
Then we assign points based on their matching preferences:
-gender : (true)
mentee has high preference -> +10
mentor has low preference -> +3
-Field/study : (false)
mentee has high preference -> -6
mentor has high preference -> -3
-Disabilities : (false)
mentee has none preference -> +0
mentor has none preference -> +0
Calculate the total (+10, +6, -6, -3)
**This match gets a score of +7**
- Install mongodb
The version is :
$ mongod --version db version v3.2.8 git version: ed70e33130c977bda0024c125b56d159573dbaf0 OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015 allocator: tcmalloc modules: none build environment: distmod: 2008plus-ssl distarch: x86_64 target_arch: x86_64
-
Make folder C:\data\db
-
Install git bash on your computer
-
Make sure node package manager is present (ex: "npm -v" should output the version number)
-
install ruby -> https://rubyinstaller.org/
-
use command "gem install sass"
-
use the command "npm install" in the project directory to pull all dependencies
-
Associate mongodb in git bash path by opening up Environment variables on windows (help: http://www.computerhope.com/issues/ch000549.htm)
-
Once open, add mongos path to the PATH section, so I appended "C:\MongoDB\bin" to the end (all new variable are seperated by a ;)
-
Use "gulp" to run everything, if the command is not found -> Use npm install -g gulp
we do this because the gulp file needs that path association to actually run the database
A crucial part of the process is to actually test out the application. We use protractor for this.
- run
npm install -g protractor - then
webdriver-manager update - and (in another terminal, we need this to be always open) run
webdriver-manager start - now in a new terminal navigate to /tests, and run
protractor conf.js --suites makemm - This will run an automated test. Checkout the folder to see/make new tests