diff --git a/Robot/LoginAsStudent.robot b/Robot/LoginAsStudent.robot new file mode 100644 index 00000000..70e437e3 --- /dev/null +++ b/Robot/LoginAsStudent.robot @@ -0,0 +1,41 @@ +*** Settings *** +Documentation Bzzt ~ Boop Test that is verifying the opening of Google.com Checks if the installation is correct. + + +Library SeleniumLibrary + +*** Variables *** +${studentUsername} test20@test.com +${studentPassword} 123456 + +*** Keyword *** +#This is the automated function for making the robot click at a location +#working on this +Click at Location + [Arguments] ${Locator} + Mouse Down ${Locator} + Mouse Up ${Locator} + + +*** Test Cases *** +# Opens a browser with a given Url "localhost:8000" with a specific driver "Chrome" + +Open Home Page + Open Browser http://localhost:8000/ chrome + Maximize Browser Window + +Move to Login Page +#This is the click function at a given xpath, more specifically the button the goto the login page + + Mouse Down xpath:/html/body/div/div/a[1] + Mouse Up xpath:/html/body/div/div/a[1] + +Attempt to Login With Credentials +#passes the password variables into the xpath locations for username box and password box respectively. Then it clicks the login + + Sleep 2s + Input Text //*[@id="emailTxt"] ${studentUsername} + Input Text //*[@id="passwordTxt"] ${studentPassword} + + Mouse Down //*[@id="loginBtn"] + Mouse Up //*[@id="loginBtn"] diff --git a/Robot/log.html b/Robot/log.html new file mode 100644 index 00000000..7a2558a6 --- /dev/null +++ b/Robot/log.html @@ -0,0 +1,2192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Opening Robot Framework log failed

+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Robot/logInAsAdmin.robot b/Robot/logInAsAdmin.robot new file mode 100644 index 00000000..bf37696a --- /dev/null +++ b/Robot/logInAsAdmin.robot @@ -0,0 +1,42 @@ +*** Settings *** +Documentation Bzzt ~ Boop Test that is verifying the opening of Google.com Checks if the installation is correct. + + +Library SeleniumLibrary + +*** Variables *** +${adminUsername} test@test.com +${adminPassword} 123456 + + +*** Keyword *** +#This is the automated function for making the robot click at a location +#working on this +Click at Location + [Arguments] ${Locator} + Mouse Down ${Locator} + Mouse Up ${Locator} + + +*** Test Cases *** +# Opens a browser with a given Url "localhost:8000" with a specific driver "Chrome" + +Open Home Page + Open Browser http://localhost:8000/ chrome + Maximize Browser Window + +Move to Login Page +#This is the click function at a given xpath, more specifically the button the goto the login page + + Mouse Down xpath:/html/body/div/div/a[1] + Mouse Up xpath:/html/body/div/div/a[1] + +Attempt to Login With Credentials +#passes the password variables into the xpath locations for username box and password box respectively. Then it clicks the login + Sleep 2s + + Input Text //*[@id="emailTxt"] ${adminUsername} + Input Text //*[@id="passwordTxt"] ${adminPassword} + + Mouse Down //*[@id="loginBtn"] + Mouse Up //*[@id="loginBtn"] diff --git a/Robot/loginAsInstructor.robot b/Robot/loginAsInstructor.robot new file mode 100644 index 00000000..c7ac4e5b --- /dev/null +++ b/Robot/loginAsInstructor.robot @@ -0,0 +1,41 @@ +*** Settings *** +Documentation Bzzt ~ Boop Test that is verifying the opening of Google.com Checks if the installation is correct. + + +Library SeleniumLibrary + +*** Variables *** +${instructorUsername} test4@ggc.edu +${instructorPassword} 123456 + +*** Keyword *** +#This is the automated function for making the robot click at a location +#working on this +Click at Location + [Arguments] ${Locator} + Mouse Down ${Locator} + Mouse Up ${Locator} + + +*** Test Cases *** +# Opens a browser with a given Url "localhost:8000" with a specific driver "Chrome" + +Open Home Page + Open Browser http://localhost:8000/ chrome + Maximize Browser Window + +Move to Login Page +#This is the click function at a given xpath, more specifically the button the goto the login page + + Mouse Down xpath:/html/body/div/div/a[1] + Mouse Up xpath:/html/body/div/div/a[1] + +Attempt to Login With Credentials +#passes the password variables into the xpath locations for username box and password box respectively. Then it clicks the login + + Sleep 2s + Input Text //*[@id="emailTxt"] ${instructorUsername} + Input Text //*[@id="passwordTxt"] ${instructorPassword} + + Mouse Down //*[@id="loginBtn"] + Mouse Up //*[@id="loginBtn"] diff --git a/Robot/output.xml b/Robot/output.xml new file mode 100644 index 00000000..68d3825d --- /dev/null +++ b/Robot/output.xml @@ -0,0 +1,443 @@ + + + + + +${alphabet} +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +Returns a list containing given items. +${alphabet} = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] + + + +${randomizerAlphabet} +random.randint(0,26) +Evaluates the given expression in Python and returns the result. +${randomizerAlphabet} = 13 + + + +${randLetter} +${alphabet} +${randomizerAlphabet} +Returns the value specified with an ``index`` from ``list``. +${randLetter} = n + + + +${serialNum} +random.randint(0,10000) +Evaluates the given expression in Python and returns the result. +${serialNum} = 6583 + + + +${mockEmail} +${randLetter}${serialNum}${email} +Makes a variable available everywhere within the scope of the current suite. +${mockEmail} = n6583mock@ggc.edu + + + + + + +http://localhost:8000/ +chrome +Opens a new browser instance to the optional ``url``. +Opening browser 'chrome' to base url 'http://localhost:8000/'. + + + +Maximizes current browser window. + + + + + + +xpath:/html/body/div/div/a[2] +Simulates pressing the left mouse button on the element ``locator``. +Simulating Mouse Down on element 'xpath:/html/body/div/div/a[2]'. + + + +xpath:/html/body/div/div/a[2] +Simulates releasing the left mouse button on the element ``locator``. +Simulating Mouse Up on element 'xpath:/html/body/div/div/a[2]'. + + + + +//*[@id="emailTxt"] +${mockEmail} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'n6583mock@ggc.edu' into text field '//*[@id="emailTxt"]'. + + + +//*[@id="cfmEmailTxt"] +${mockEmail} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'n6583mock@ggc.edu' into text field '//*[@id="cfmEmailTxt"]'. + + + +//*[@id="passwordTxt"] +${mockPassword} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'fakePass123' into text field '//*[@id="passwordTxt"]'. + + + +//*[@id="cfmPasswordTxt"] +${mockPassword} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'fakePass123' into text field '//*[@id="cfmPasswordTxt"]'. + + + +//*[@id="studentIdTxt"] +${mockStudentNum} +Types the given ``text`` into the text field identified by ``locator``. +Typing text '900100000' into text field '//*[@id="studentIdTxt"]'. + + + +//*[@id="fnameTxt"] +${mockFirstName} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Mock Human' into text field '//*[@id="fnameTxt"]'. + + + +//*[@id="lnameTxt"] +${mockLastName} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Last Name' into text field '//*[@id="lnameTxt"]'. + + + +//*[@id="phone"] +${mockPhone} +Types the given ``text`` into the text field identified by ``locator``. +Typing text '7700000090' into text field '//*[@id="phone"]'. + + + +//*[@id="addressTxt"] +${mockAddress} +Types the given ``text`` into the text field identified by ``locator``. +Typing text '1000 University Parkway' into text field '//*[@id="addressTxt"]'. + + + +//*[@id="cityTxt"] +${mockCity} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Lawrenceville' into text field '//*[@id="cityTxt"]'. + + + +//*[@id="stateTxt"] +${mockState} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Georgia' into text field '//*[@id="stateTxt"]'. + + + +//*[@id="zipTxt"] +${mockZip} +Types the given ``text`` into the text field identified by ``locator``. +Typing text '30043' into text field '//*[@id="zipTxt"]'. + + + + + +xpath:/html/body/div/div/form/button +Simulates pressing the left mouse button on the element ``locator``. +Simulating Mouse Down on element 'xpath:/html/body/div/div/form/button'. + + + +xpath:/html/body/div/div/form/button +Simulates releasing the left mouse button on the element ``locator``. +Simulating Mouse Up on element 'xpath:/html/body/div/div/form/button'. + + + + + + +application +Biology Internship (BIOL 4800) +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'application' by label Biology Internship (BIOL 4800). + + + +//*[@id="bioBox"] +Selects the checkbox identified by ``locator``. +Selecting checkbox '//*[@id="bioBox"]'. + + + +xpath:/html/body/div/div/div/div[2]/input +Simulates pressing the left mouse button on the element ``locator``. +Simulating Mouse Down on element 'xpath:/html/body/div/div/div/div[2]/input'. + + + +xpath:/html/body/div/div/div/div[2]/input +Simulates releasing the left mouse button on the element ``locator``. +Simulating Mouse Up on element 'xpath:/html/body/div/div/div/div[2]/input'. + + + + + + +proposedinternsemester +Fall +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'proposedinternsemester' by label Fall. + + + +proposedinternyear +2022 +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'proposedinternyear' by label 2022. + + + +major +Biochemistry +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'major' by label Biochemistry. + + + +expectedGraduationSemester +Fall +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'expectedGraduationSemester' by label Fall. + + + +expectedGraduationYear +2022 +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'expectedGraduationYear' by label 2022. + + + +//*[@id="gpaTxt"] +3.50 +Types the given ``text`` into the text field identified by ``locator``. +Typing text '3.50' into text field '//*[@id="gpaTxt"]'. + + + +//*[@id="programGPATxt"] +3.50 +Types the given ``text`` into the text field identified by ``locator``. +Typing text '3.50' into text field '//*[@id="programGPATxt"]'. + + + +//*[@id="hoursTxt"] +13 +Types the given ``text`` into the text field identified by ``locator``. +Typing text '13' into text field '//*[@id="hoursTxt"]'. + + + +//*[@id="professionTxt"] +Testing +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Testing' into text field '//*[@id="professionTxt"]'. + + + +//*[@id="ecNameTxt"] +I Love You Momma +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'I Love You Momma' into text field '//*[@id="ecNameTxt"]'. + + + +//*[@id="ecAddressTxt"] +Momma's Address +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Momma's Address' into text field '//*[@id="ecAddressTxt"]'. + + + +//*[@id="ecCityTxt"] +Momma's City +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Momma's City' into text field '//*[@id="ecCityTxt"]'. + + + +//*[@id="ecStateTxt"] +Momma's State +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Momma's State' into text field '//*[@id="ecStateTxt"]'. + + + +//*[@id="ecZipCodeTxt"] +30043 +Types the given ``text`` into the text field identified by ``locator``. +Typing text '30043' into text field '//*[@id="ecZipCodeTxt"]'. + + + +//*[@id="ecPhone"] +770-000-0001 +Types the given ``text`` into the text field identified by ``locator``. +Typing text '770-000-0001' into text field '//*[@id="ecPhone"]'. + + + +//*[@id="ecEmailTxt"] +iLoveMama@gmail.com +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'iLoveMama@gmail.com' into text field '//*[@id="ecEmailTxt"]'. + + + +//*[@id="mentorNameTxt"] +Cengiz & Rahaf +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Cengiz & Rahaf' into text field '//*[@id="mentorNameTxt"]'. + + + +//*[@id="mentorCellTxt"] +770-000-0000 +Types the given ``text`` into the text field identified by ``locator``. +Typing text '770-000-0000' into text field '//*[@id="mentorCellTxt"]'. + + + +//*[@id="mentorOfficeTxt"] +H-1210 +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'H-1210' into text field '//*[@id="mentorOfficeTxt"]'. + + + +//*[@id="mentorEmailTxt"] +cgunnay@ggc.edu +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'cgunnay@ggc.edu' into text field '//*[@id="mentorEmailTxt"]'. + + + +internsite +Covenant Health Pharmacy +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'internsite' by label Covenant Health Pharmacy. + + + +isstudentemployedatsite +No +Selects options from selection list ``locator`` by ``labels``. +Selecting options from selection list 'isstudentemployedatsite' by label No. + + + +//*[@id="firstTxt"] +Testing +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Testing' into text field '//*[@id="firstTxt"]'. + + + +//*[@id="secondTxt"] +Testing +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Testing' into text field '//*[@id="secondTxt"]'. + + + +//*[@id="thirdTxt"] +Testing +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'Testing' into text field '//*[@id="thirdTxt"]'. + + + +//*[@id="signatureTxt"] +${mockEmail} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'n6583mock@ggc.edu' into text field '//*[@id="signatureTxt"]'. + + + +//*[@id="printedTxt"] +${mockEmail} +Types the given ``text`` into the text field identified by ``locator``. +Typing text 'n6583mock@ggc.edu' into text field '//*[@id="printedTxt"]'. + + + +//*[@id="submitBtn"] +Simulates pressing the left mouse button on the element ``locator``. +Simulating Mouse Down on element '//*[@id="submitBtn"]'. + + + +//*[@id="submitBtn"] +Simulates releasing the left mouse button on the element ``locator``. +Simulating Mouse Up on element '//*[@id="submitBtn"]'. + + + + +Automated signup and creation of a mock Chemistry Intern and all its credentials + + + + +All Tests + + + + +signUpChem + + + + + diff --git a/Robot/report.html b/Robot/report.html new file mode 100644 index 00000000..53070036 --- /dev/null +++ b/Robot/report.html @@ -0,0 +1,2461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Opening Robot Framework report failed

+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Robot/signUpChem.robot b/Robot/signUpChem.robot new file mode 100644 index 00000000..4aa06a26 --- /dev/null +++ b/Robot/signUpChem.robot @@ -0,0 +1,134 @@ +*** Settings *** +Documentation Automated signup and creation of a mock Chemistry Intern and all its credentials +Suite Setup Setup + +#@ symbol in robot represents a list +Library SeleniumLibrary +Library Collections + +*** Variables *** +${serialNum} +${mockFirstName} Mock Human +${mockLastName} Last Name +${email} mock@ggc.edu +${mockEmail} ${serialNum}${email} +${mockPassword} fakePass123 +${mockStudentNum} 900100000 +${mockPhone} 7700000090 +${mockAddress} 1000 University Parkway +${mockCity} Lawrenceville +${mockState} Georgia +${mockZip} 30043 + +*** Keywords *** +# +Setup + ${alphabet} Create List a b c d e f g h i j k l m n o + ... p q r s t u v w x y z + ${randomizerAlphabet} Evaluate random.randint(0,26) + ${randLetter} Get From List ${alphabet} ${randomizerAlphabet} + ${serialNum} Evaluate random.randint(0,10000) + Set Suite Variable ${mockEmail} ${randLetter}${serialNum}${email} + +#grabs all of the xpaths for the signup boxes and passes mock info into them +Input New User Credentials at Signup +#Email + Input Text //*[@id="emailTxt"] ${mockEmail} +#Confirm email + Input Text //*[@id="cfmEmailTxt"] ${mockEmail} +#Password + Input Text //*[@id="passwordTxt"] ${mockPassword} +#Confirm password + Input Text //*[@id="cfmPasswordTxt"] ${mockPassword} +#StudentID + Input Text //*[@id="studentIdTxt"] ${mockStudentNum} +#First name + Input Text //*[@id="fnameTxt"] ${mockFirstName} +#Last name + Input Text //*[@id="lnameTxt"] ${mockLastName} +#Phone number + Input Text //*[@id="phone"] ${mockPhone} +#Address + Input Text //*[@id="addressTxt"] ${mockAddress} +#City + Input Text //*[@id="cityTxt"] ${mockCity} +#State + Input Text //*[@id="stateTxt"] ${mockState} +#ZIP + Input Text //*[@id="zipTxt"] ${mockZip} + +*** Test Cases *** +Open Home Page + Open Browser http://localhost:8000/ chrome + Maximize Browser Window +Select Signup + Mouse Down xpath:/html/body/div/div/a[2] + Mouse Up xpath:/html/body/div/div/a[2] + Input New User Credentials at Signup +#Click on signup + Mouse Down xpath:/html/body/div/div/form/button + Mouse Up xpath:/html/body/div/div/form/button +Select Signup as ITEC + Select From List By Label application Biology Internship (BIOL 4800) + Select Checkbox //*[@id="bioBox"] + Mouse Down xpath:/html/body/div/div/div/div[2]/input + Mouse Up xpath:/html/body/div/div/div/div[2]/input +Complete The Signup at Bio Page +#Selecting Fall from the drop down at http://localhost:8000/bio + Select From List By Label proposedinternsemester Fall +#selects fall 2022 from the drop down on http://localhost:8000/bio + Select From List By Label proposedinternyear 2022 +#Concentration Dropdown + Select From List By Label major Biochemistry +#Expected Graduation Date + Select From List By Label expectedGraduationSemester Fall +#Expected Grad year + Select From List By Label expectedGraduationYear 2022 +#Overall GPA + Input Text //*[@id="gpaTxt"] 3.50 +#Program GPA + Input Text //*[@id="programGPATxt"] 3.50 +#Completed Bio Hours + Input Text //*[@id="hoursTxt"] 13 +#Intended Profession + Input Text //*[@id="professionTxt"] Testing + + +#Emergency Contact Info Section +#parent or legal guardian field + Input Text //*[@id="ecNameTxt"] I Love You Momma +# Mailing address + Input Text //*[@id="ecAddressTxt"] Momma's Address +#City + Input Text //*[@id="ecCityTxt"] Momma's City +#State + Input Text //*[@id="ecStateTxt"] Momma's State +#ZipCode + Input Text //*[@id="ecZipCodeTxt"] 30043 +#Cont Phone + Input Text //*[@id="ecPhone"] 770-000-0001 +#Pref Email + Input Text //*[@id="ecEmailTxt"] iLoveMama@gmail.com + +#Mentor Fields + Input Text //*[@id="mentorNameTxt"] Cengiz & Rahaf +#Mentor Cell + Input Text //*[@id="mentorCellTxt"] 770-000-0000 +#Mentor Office + Input Text //*[@id="mentorOfficeTxt"] H-1210 +#Mentor Email + Input Text //*[@id="mentorEmailTxt"] cgunnay@ggc.edu +#Approved Intern Committee Sites + Select From List By Label internsite Covenant Health Pharmacy +# + Select From List By Label isstudentemployedatsite No +#Edu comp + Input Text //*[@id="firstTxt"] Testing + Input Text //*[@id="secondTxt"] Testing + Input Text //*[@id="thirdTxt"] Testing + + Input Text //*[@id="signatureTxt"] ${mockEmail} + Input Text //*[@id="printedTxt"] ${mockEmail} + + Mouse Down //*[@id="submitBtn"] + Mouse Up //*[@id="submitBtn"] diff --git a/Robot/signUpITEC.robot b/Robot/signUpITEC.robot new file mode 100644 index 00000000..88a73a0f --- /dev/null +++ b/Robot/signUpITEC.robot @@ -0,0 +1,113 @@ +*** Settings *** +Documentation Automated signup and creation of a mock student and all its credentials +Suite Setup Setup + +#@ symbol in robot represents a list +Library SeleniumLibrary +Library Collections + +*** Variables *** +${serialNum} +${mockFirstName} Mock Human +${mockLastName} Last Name +${email} mock@ggc.edu +${mockEmail} ${serialNum}${email} +${mockPassword} fakePass123 +${mockStudentNum} 900100000 +${mockPhone} 7700000000 +${mockAddress} 1000 University Parkway +${mockCity} Lawrenceville +${mockState} Georgia +${mockZip} 30043 + +*** Keywords *** +# +Setup + ${alphabet} Create List a b c d e f g h i j k l m n o + ... p q r s t u v w x y z + ${randomizerAlphabet} Evaluate random.randint(0,26) + ${randLetter} Get From List ${alphabet} ${randomizerAlphabet} + ${serialNum} Evaluate random.randint(0,10000) + Set Suite Variable ${mockEmail} ${randLetter}${serialNum}${email} + +#grabs all of the xpaths for the signup boxes and passes mock info into them +Input New User Credentials at Signup +#Email + Input Text //*[@id="emailTxt"] ${mockEmail} +#Confirm email + Input Text //*[@id="cfmEmailTxt"] ${mockEmail} +#Password + Input Text //*[@id="passwordTxt"] ${mockPassword} +#Confirm password + Input Text //*[@id="cfmPasswordTxt"] ${mockPassword} +#StudentID + Input Text //*[@id="studentIdTxt"] ${mockStudentNum} +#First name + Input Text //*[@id="fnameTxt"] ${mockFirstName} +#Last name + Input Text //*[@id="lnameTxt"] ${mockLastName} +#Phone number + Input Text //*[@id="phone"] ${mockPhone} +#Address + Input Text //*[@id="addressTxt"] ${mockAddress} +#City + Input Text //*[@id="cityTxt"] ${mockCity} +#State + Input Text //*[@id="stateTxt"] ${mockState} +#ZIP + Input Text //*[@id="zipTxt"] ${mockZip} + +*** Test Cases *** +#Open Home Page +Signup ITEC Student + Open Browser http://localhost:8000/ chrome + Maximize Browser Window +#Select Signup from Home + Mouse Down xpath:/html/body/div/div/a[2] + Mouse Up xpath:/html/body/div/div/a[2] + Input New User Credentials at Signup +#Click on signup Button to confirm + Mouse Down xpath:/html/body/div/div/form/button + Mouse Up xpath:/html/body/div/div/form/button +#Select Signup as ITEC Option + Select From List By Label application Information Technology Internship (ITEC 4900) + Select Checkbox //*[@id="itBox"] + #Click sign up button via xpaths + Mouse Down xpath:/html/body/div/div/div/div[3]/input + Mouse Up xpath:/html/body/div/div/div/div[3]/input +#Signup at ITEC Page +#Mentor Phone + Input Text //*[@id="phonenumberTxt"] 770-999-9999 +#Student Academic info +#Selecting Fall from the drop down at http://localhost:8000/itec + Select From List By Label proposedinternsemester Fall +#selects fall 2022 from the drop down on http://localhost:8000/itec + Select From List By Label proposedinternyear 2022 +#Expected Graduation Date + Select From List By Label expectedGraduationSemester Fall +#Expected Grad year + Select From List By Label expectedGraduationYear 2022 +#Student Concentration + Select From List By Label major Software Development +#Student Classification + Select From List By Label classification Senior +#Overall GPA + Input Text //*[@id="gpaTxt"] 3.50 +#Program GPA + Input Text //*[@id="itecGPATxt"] 3.50 +#Mentor Fields + Input Text //*[@id="mentorNameTxt"] Cengiz & Rahaf +#Describe your interests + Input Text //*[@id="textArea"] I love playing Piano and singing +#What internship are you looking for? + Input Text //*[@id="interestTxt"] I would be open to anything +#Programming or Software Development focused internship? + Select From List By Label focusonsoftdev Yes +#Company Intern experience? + Select From List By Label proposedList Yes +#Signature and review + Input Text //*[@id="signatureTxt"] Testing Rules + Input Text //*[@id="printedTxt"] Testing Rules +#Click submit + Mouse Down //*[@id="submitBtn"] + Mouse Up //*[@id="submitBtn"] diff --git a/Robot/validateNavigation.robot b/Robot/validateNavigation.robot new file mode 100644 index 00000000..927c386d --- /dev/null +++ b/Robot/validateNavigation.robot @@ -0,0 +1,3 @@ +*** Settings *** +Documentation Test that buttons take you to the correct Html locations + diff --git a/app/controllers/applications.js b/app/controllers/applications.js index 7bd184d7..a2ba818d 100644 --- a/app/controllers/applications.js +++ b/app/controllers/applications.js @@ -135,6 +135,7 @@ function filterApplications(req, res, cb) { ID: bioApp.userstudentid, FirstName: bioApp.userfname, LastName: bioApp.userlname, + PhoneNumber: bioApp.phonenumber, 'BIO GPA': bioApp.programgpa, Concentration: bioApp.major, 'Expected Graduation': bioApp.expectedGraduationSemester + ' ' + bioApp.expectedGraduationYear, @@ -144,7 +145,7 @@ function filterApplications(req, res, cb) { appArray.push(bioJson); }); - fields = ['ID', 'FirstName', 'LastName', 'BIO GPA', 'Concentration', + fields = ['ID', 'FirstName', 'LastName', 'PhoneNumber', 'BIO GPA', 'Concentration', 'Expected Graduation', 'Semester', 'Year']; cb(null, { @@ -170,6 +171,7 @@ function filterApplications(req, res, cb) { ID: itecApp.userstudentid, FirstName: itecApp.userfname, LastName: itecApp.userlname, + PhoneNumber: itecApp.phonenumber, 'ITEC GPA': itecApp.itecgpa, Concentration: itecApp.major, 'Expected Graduation': itecApp.expectedGraduationSemester + ' ' + itecApp.expectedGraduationYear, @@ -180,7 +182,7 @@ function filterApplications(req, res, cb) { appArray.push(itecJson); }); - fields = ['ID', 'FirstName', 'LastName', 'ITEC GPA', 'Concentration', + fields = ['ID', 'FirstName', 'LastName', 'PhoneNumber', 'ITEC GPA', 'Concentration', 'Expected Graduation', 'Programming', 'Semester', 'Year']; cb(null, { @@ -234,6 +236,7 @@ function write(fileName, csv, req, res) { } }); } +//passes in comma seperated file function download(csvPath, req, res) { res.download(csvPath, function (err) { @@ -686,6 +689,7 @@ module.exports.postItecApplication = function (req, res) { itecapp.userstudentid = req.user.studentid; itecapp.userfname = req.user.fname; itecapp.userlname = req.user.lname; + itecapp.userphone = req.user.phone; itecapp.useraddress = req.user.address; itecapp.usercity = req.user.city; itecapp.userstate = req.user.state; @@ -718,6 +722,7 @@ module.exports.postBioApplication = function (req, res) { bioapp.userstudentid = req.user.studentid; bioapp.userfname = req.user.fname; bioapp.userlname = req.user.lname; + bioapp.userphone = req.user.phone; bioapp.useraddress = req.user.address; bioapp.usercity = req.user.city; bioapp.userstate = req.user.state; diff --git a/app/controllers/editApplications.js b/app/controllers/editApplications.js index aef057d1..ae40522e 100644 --- a/app/controllers/editApplications.js +++ b/app/controllers/editApplications.js @@ -37,6 +37,7 @@ module.exports.updateBioApp = function(req, res) { newBioapp.userstudentid = req.user.studentid; newBioapp.userfname = req.user.fname; newBioapp.userlname = req.user.lname; + newBioapp.userphone = req.user.phone; newBioapp.useraddress = req.user.address; newBioapp.usercity = req.user.city; newBioapp.userstate = req.user.state; @@ -68,6 +69,7 @@ module.exports.updateItecApp = function(req, res) { newItecapp.userstudentid = req.user.studentid; newItecapp.userfname = req.user.fname; newItecapp.userlname = req.user.lname; + newItecapp.userphone = req.user.phone; newItecapp.useraddress = req.user.address; newItecapp.usercity = req.user.city; newItecapp.userstate = req.user.state; diff --git a/app/controllers/editprofile.js b/app/controllers/editprofile.js index 76b5ab03..3e8278f5 100644 --- a/app/controllers/editprofile.js +++ b/app/controllers/editprofile.js @@ -29,6 +29,7 @@ module.exports.getEditProfile = function(req, res) { HTTP Req: POST URL: '/editprofile' */ + module.exports.updateProfile = function(req, res) { User.update({'local.email' : req.user.email}, { 'local.studentid' : req.body.studentid, @@ -38,7 +39,8 @@ module.exports.updateProfile = function(req, res) { 'local.city' : req.body.city, 'local.state' : req.body.state, 'local.zipcode' : req.body.zipcode, - 'local.discipline' : req.body.discipline + 'local.discipline' : req.body.discipline, + 'local.phone' : req.body.phone }, function(err) { if (err) { res.flash('failure', 'An error has occured, your profile could not be updated.'); diff --git a/app/controllers/export.js b/app/controllers/export.js index 0ed66564..ffc75227 100644 --- a/app/controllers/export.js +++ b/app/controllers/export.js @@ -124,6 +124,7 @@ module.exports.exportExport = function (req, res) { ID: bioApp.userstudentid, FirstName: bioApp.userfname, LastName: bioApp.userlname, + PhoneNumber: bioApp.userphone, 'BIO GPA': bioApp.programgpa, Concentration: bioApp.major, 'Expected Graduation': bioApp.expectedGraduationSemester + ' ' + bioApp.expectedGraduationYear, @@ -133,7 +134,7 @@ module.exports.exportExport = function (req, res) { appArray.push(bioJson); }); - fields = ['ID', 'FirstName', 'LastName', 'BIO GPA', 'Concentration', + fields = ['ID', 'FirstName', 'LastName', 'PhoneNumber', 'BIO GPA', 'Concentration', 'Expected Graduation', 'Semester', 'Year']; var csv = json2csv({ data: appArray, fields: fields }); @@ -155,6 +156,7 @@ module.exports.exportExport = function (req, res) { ID: itecApp.userstudentid, FirstName: itecApp.userfname, LastName: itecApp.userlname, + PhoneNumber: itecApp.userphone, 'ITEC GPA': itecApp.itecgpa, Concentration: itecApp.major, 'Expected Graduation': itecApp.expectedGraduationSemester + ' ' + itecApp.expectedGraduationYear, @@ -165,7 +167,7 @@ module.exports.exportExport = function (req, res) { appArray.push(itecJson); }); - fields = ['ID', 'FirstName', 'LastName', 'ITEC GPA', 'Concentration', + fields = ['ID', 'FirstName', 'LastName', 'PhoneNumber', 'ITEC GPA', 'Concentration', 'Expected Graduation', 'Programming', 'Semester', 'Year']; var csv = json2csv({ data: appArray, fields: fields }); @@ -531,6 +533,7 @@ module.exports.postItecApplication = function (req, res) { itecapp.userstudentid = req.user.studentid; itecapp.userfname = req.user.fname; itecapp.userlname = req.user.lname; + itecapp.userphone = req.user.phone; itecapp.useraddress = req.user.address; itecapp.usercity = req.user.city; itecapp.userstate = req.user.state; @@ -563,6 +566,7 @@ module.exports.postBioApplication = function (req, res) { bioapp.userstudentid = req.user.studentid; bioapp.userfname = req.user.fname; bioapp.userlname = req.user.lname; + bioapp.userphone = req.user.phone; bioapp.useraddress = req.user.address; bioapp.usercity = req.user.city; bioapp.userstate = req.user.state; diff --git a/app/controllers/support.js b/app/controllers/support.js new file mode 100644 index 00000000..f9c63cbc --- /dev/null +++ b/app/controllers/support.js @@ -0,0 +1,18 @@ +/* + Controller functions containing the logic for the support routes + Authors : Matthew Rosario +*/ + +/* + HTTP Req: GET + URL: '/support' +*/ +module.exports.getSupport = function(req, res) { + if (req.isAuthenticated()) { + res.render('support.ejs', { + user: req.user + }); + } else { + res.render('support.ejs'); + } +}; \ No newline at end of file diff --git a/app/models/bio.js b/app/models/bio.js index dd2e6c9e..0245d987 100644 --- a/app/models/bio.js +++ b/app/models/bio.js @@ -11,7 +11,7 @@ var bioSchema = mongoose.Schema({ }, phonenumber: { type: String, - required: false + required: true }, emergencycontactname: { type: String, @@ -213,6 +213,10 @@ var bioSchema = mongoose.Schema({ type: String, required: false }, + userphone: { + type: String, + required: false + }, useraddress: { type: String, required: false diff --git a/app/models/document.js b/app/models/document.js index d2d1272f..bf3004eb 100644 --- a/app/models/document.js +++ b/app/models/document.js @@ -1,5 +1,6 @@ var mongoose = require('mongoose'); + var documentSchema = mongoose.Schema({ user: { user_id : { diff --git a/app/models/itec.js b/app/models/itec.js index 2f515c61..d90cc6ac 100644 --- a/app/models/itec.js +++ b/app/models/itec.js @@ -23,7 +23,7 @@ var itecSchema = mongoose.Schema({ }, phonenumber: { type: String, - required: false + required: true }, classification: { type: String, @@ -175,6 +175,10 @@ var itecSchema = mongoose.Schema({ type: String, required: false }, + userphone: { + type: String, + required: false + }, useraddress: { type: String, required: false diff --git a/app/models/user.js b/app/models/user.js index 27d8c4b1..6e62738e 100644 --- a/app/models/user.js +++ b/app/models/user.js @@ -39,6 +39,10 @@ var userSchema = mongoose.Schema({ type: String, required: true }, + phone: { + type: String, + required: true + }, address: { type: String, required: true diff --git a/app/routes/index.js b/app/routes/index.js index 29bd65b9..c77c4b06 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -24,6 +24,8 @@ var ctrlMongoToCsv = require('../controllers/mongoToCsv'); var ctrlUpload = require('../controllers/documentUpload'); var ctrlDelete = require('../controllers/documentDelete'); var ctrlSiteNotes = require('../controllers/sitenotes'); +var ctrlSupport = require('../controllers/support'); +//var ctrlMultiDownload = require('../controllers/ '); @@ -187,10 +189,10 @@ module.exports = function (app, passport) { app.get('/site/contacts/:siteid/:documentid', isLoggedIn, isAdminOrInstructor, ctrlSites.deleteSiteContact); app.get('/site/edit/:siteid', isLoggedIn, isAdminOrInstructor, ctrlSites.getSiteToEdit); app.get('/site/:siteid', isLoggedIn, isAdminOrInstructor, ctrlSites.getSiteDetails); - app.post('/addSite', isLoggedIn, isAdmin, ctrlSites.postAddSite); + app.post('/addSite', isLoggedIn, isAdminOrInstructor, ctrlSites.postAddSite); app.post('/site/:siteid', isLoggedIn, isAdminOrInstructor, ctrlSites.addSiteContact); - app.post('/site/edit/:siteid', isLoggedIn, isAdmin, ctrlSites.updateSite); - app.post('/site/delete/:siteid', isLoggedIn, isAdmin, ctrlSites.deleteSite); + app.post('/site/edit/:siteid', isLoggedIn, isAdminOrInstructor, ctrlSites.updateSite); + app.post('/site/delete/:siteid', isLoggedIn, isAdminOrInstructor, ctrlSites.deleteSite); app.get('/site/:siteId/export/contacts', makeCSVDirectory, isLoggedIn, isAdminOrInstructor, ctrlSites.exportContacts); /* Promote page */ @@ -204,6 +206,9 @@ module.exports = function (app, passport) { /* FAQ page */ app.get('/faq', ctrlFAQ.getFAQ); + /* Support Page */ + app.get('/support', ctrlSupport.getSupport); + /* Help page */ app.get('/help', ctrlHelp.getHelp); app.get('/admininstructorhelp', ctrlHelp.getAdminInstructorHelp); diff --git a/config/passport.js b/config/passport.js index e3c178e5..5f8aa062 100644 --- a/config/passport.js +++ b/config/passport.js @@ -23,6 +23,7 @@ var User = require('../app/models/user'); studentid: user.local.studentid, fname: user.local.fname, lname: user.local.lname, + phone: user.local.phone, address: user.local.address, city: user.local.city, state: user.local.state, @@ -83,6 +84,7 @@ var User = require('../app/models/user'); newUser.local.studentid = req.body.studentid; newUser.local.fname = req.body.fname; newUser.local.lname = req.body.lname; + newUser.local.phone = req.body.phone; newUser.local.address = req.body.address; newUser.local.city = req.body.city; newUser.local.state = req.body.state; diff --git a/development/css/main.css b/development/css/main.css index 70f9561f..16b3d375 100644 --- a/development/css/main.css +++ b/development/css/main.css @@ -15,7 +15,7 @@ body { .scrollable { overflow-y: scroll; height: 100px; - resize: none; /* Remove this if you want the user to resize the textarea */ + resize: none; /*Remove this if you want the user to resize the textarea */ } .otherLabel { diff --git a/documentation/Installing Robot/InstallingRobot_Selenium_ChromeDriver.pdf.docx b/documentation/Installing Robot/InstallingRobot_Selenium_ChromeDriver.pdf.docx new file mode 100644 index 00000000..1e260673 Binary files /dev/null and b/documentation/Installing Robot/InstallingRobot_Selenium_ChromeDriver.pdf.docx differ diff --git a/documentation/fall2021/Client_Requirements.docx b/documentation/fall2021/Client_Requirements.docx index 5c8466fb..009b2c0f 100644 Binary files a/documentation/fall2021/Client_Requirements.docx and b/documentation/fall2021/Client_Requirements.docx differ diff --git a/documentation/fall2021/InternApp-fall-2021-IP-agreement.docx b/documentation/fall2021/InternApp-fall-2021-IP-agreement.docx new file mode 100644 index 00000000..0c8b75e3 Binary files /dev/null and b/documentation/fall2021/InternApp-fall-2021-IP-agreement.docx differ diff --git a/documentation/fall2021/~$ient_Requirements.docx b/documentation/fall2021/~$ient_Requirements.docx new file mode 100644 index 00000000..646773bb Binary files /dev/null and b/documentation/fall2021/~$ient_Requirements.docx differ diff --git a/views/.vs/ProjectSettings.json b/views/.vs/ProjectSettings.json deleted file mode 100644 index f8b48885..00000000 --- a/views/.vs/ProjectSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "CurrentProjectSetting": null -} \ No newline at end of file diff --git a/views/.vs/VSWorkspaceState.json b/views/.vs/VSWorkspaceState.json deleted file mode 100644 index 8d395b47..00000000 --- a/views/.vs/VSWorkspaceState.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ExpandedNodes": [ - "" - ], - "SelectedNode": "\\home.ejs", - "PreviewInSolutionExplorer": false -} \ No newline at end of file diff --git a/views/.vs/config/applicationhost.config b/views/.vs/config/applicationhost.config deleted file mode 100644 index 5441f24f..00000000 --- a/views/.vs/config/applicationhost.config +++ /dev/null @@ -1,1022 +0,0 @@ - - - - - - - -
-
-
-
-
-
-
-
- - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
- -
-
- -
-
-
- - -
-
-
-
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/views/.vs/slnx.sqlite b/views/.vs/slnx.sqlite deleted file mode 100644 index eab3be06..00000000 Binary files a/views/.vs/slnx.sqlite and /dev/null differ diff --git a/views/.vs/views/v15/.suo b/views/.vs/views/v15/.suo deleted file mode 100644 index 69e338d7..00000000 Binary files a/views/.vs/views/v15/.suo and /dev/null differ diff --git a/views/adminhome.ejs b/views/adminhome.ejs index 355b34bf..36ebb578 100644 --- a/views/adminhome.ejs +++ b/views/adminhome.ejs @@ -22,7 +22,7 @@
- +
diff --git a/views/applications.ejs b/views/applications.ejs index 3676a753..e9502912 100644 --- a/views/applications.ejs +++ b/views/applications.ejs @@ -35,7 +35,7 @@ a.three:hover {font-size:150%;}

Select your filters

- +
@@ -137,11 +137,9 @@ a.three:hover {font-size:150%;} Student ID Major Application Status - Program Proposed Semester Year Expected Graduation View Details - Delete Record @@ -173,9 +171,10 @@ a.three:hover {font-size:150%;} <%= application.applicationstatus %> - - - <%= application.userdiscipline %> + <%= application.proposedinternsemester + " " + application.proposedinternyear %> @@ -187,18 +186,12 @@ a.three:hover {font-size:150%;} - - - - <% }); %>
- -


@@ -237,6 +230,7 @@ a.three:hover {font-size:150%;} } + - <%siteList.forEach(function(site) { %> - - <% site.contacts.forEach(function(contact) { %> - - <% }); %> + <%siteList.forEach(function(site) { %> + + <% site.contacts.forEach(function(contact) { %> + <% }); %> - - - + -
+ } + + +
- + \ No newline at end of file diff --git a/views/support.ejs b/views/support.ejs new file mode 100644 index 00000000..9e6a9693 --- /dev/null +++ b/views/support.ejs @@ -0,0 +1,61 @@ + + + + + + Support + <% include partials/headerimports %> + + +<% include partials/nav.ejs %> +
+
+

Have Questions?

+
+
+

Dr. Lissa Pollacia - IT

+
+

Professor of Information Technology

+ + +
+

Dr. Latanya P. Hammonds - BIO

+
+

Associate Professor of Biology

+ +
+ +

For more information, please refer to the FAQ section in the Help menu.

+<% include partials/footerimports %> + + \ No newline at end of file