class_management_system

Senior Project - Spring 2019
Log | Files | Refs | README

commit 008c813252d4e31016873725f66566ae53bbf4ee
parent 3cf2fc4224f8ec0a0b98a9080875527ed66ebe93
Author: John Kubach <johnkubach@gmail.com>
Date:   Fri,  5 Apr 2019 18:54:13 -0400

Merge branch 'kubach-testing'

- Update upload code to include all document tables.
- Initial frontend design

Diffstat:
Asrc/html/img/Rowan_University_seal.svg.png | 0
Asrc/html/index.html | 1145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/python/main.py | 104+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Msrc/scripts/archiver.sh | 11+++++++----
4 files changed, 1222 insertions(+), 38 deletions(-)

diff --git a/src/html/img/Rowan_University_seal.svg.png b/src/html/img/Rowan_University_seal.svg.png Binary files differ. diff --git a/src/html/index.html b/src/html/index.html @@ -0,0 +1,1144 @@ +<!DOCTYPE html> +<html> +<head> +<style> + +body, html +{ + background: #FFF3DD; + background-color: #FFF3DD; + height: 100%; + margin-left: auto; + margin-right: auto; + margin-top: 0px; + font-family: Arial; +} + +div +{ + height: 100px; + width: 1000px; + padding: 10px; + border: 5px solid #57150B; + border-top: 50px solid #57150B; + margin-top: 0px; + margin-left: auto; + margin-right: auto; +} + +.button +{ + background-color: #57150B; + border: none; + color: #FFDD4D; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + +.input +{ + background-color: #57150B; + border: none; + color: #FFDD4D; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + +h1 +{ + color: #57150B; + margin-left: auto; + margin-right: auto; +} +h2 +{ + color: #57150B; + margin-left: auto; + margin-right: auto; +} +h3 +{ + color: #57150B; + margin-left: auto; + margin-right: auto; +} +h4 +{ + color: #57150B; + margin-left: auto; + margin-right: auto; +} + +.tablink +{ + background-color: #57150B; + color: #FFCC00; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 14px 16px; + font-size: 17px; + width: 25%; +} + +.tablink:hover +{ + background-color: #FFCC00; + color: #57150B; +} + +.tabcontent +{ + color: #57150B; + display: none; + padding: 20px 20px; + height: auto; +} + +#Home {background-color: white;} +#Download {background-color: white;} +#Upload {background-color: white;} +#Status {background-color: white;} + +</style> +</head> + +<body> + +<button class="tablink" onclick="openPage('Home', this, '#57150B')" id="defaultOpen">Home</button> +<button class="tablink" onclick="openPage('Upload', this, '#57150B')">Upload</button> +<button class="tablink" onclick="openPage('Download', this, '#57150B')">Download</button> +<button class="tablink" onclick="openPage('Status', this, '#57150B')">Status</button> + +<!––The Home page––> +<div id="Home" class="tabcontent"> + <center> + <img src="img/Rowan_University_seal.svg.png" alt="Rowan University"> + <h1>Rowan Curricular Proposal Management System</h1> + </center> + + <h4>Sponsor: + <input type="text" name="cosponsor"><br> + </h4> + + <h4>Sponsor's Email Address: + <input type="text" name="cosponsor_email"><br> + </h4> + + <h4>Co-Sponsor: + <input type="text" name="cosponsor"><br> + </h4> + + <h4>Co-Sponsor's Email Address: + <input type="text" name="cosponsor_email"><br> + </h4> + + <h4>Effective Term Year: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="202040">202040 FALL 2020</option> + <option value="202020">202020 SPRING 2020</option> + <option value="201940">201940 FALL 2019</option> + <option value="201920">201920 SPRING 2019</option> + </select> + </h4> + + <h4>Proposing School/College: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="school_buisness">College of Buisness</option> + <option value="school_art">College of Com. & Creative Art</option> + <option value="school_education">College of Education</option> + <option value="school_engineering">College of Engineering</option> + <option value="school_humanity">College of Hum. & Soc. Sci.</option> + <option value="school_performing">College of Performing Arts</option> + <option value="school_math">College of Sci & Math</option> + <option value="school_honors">Honors College</option> + <option value="school_environment">School of Earth & Environment</option> + <option value="school_health">School of Health Professions</option> + </select> + </h4> + + <h4>Proposing Department: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="department_1">Accounting & Finance</option> + <option value="department_2">Art</option> + <option value="department_3">Biology</option> + <option value="department_4">Biomedical Engineering</option> + <option value="department_5">Chemical Engineering</option> + <option value="department_6">Chemistry & Biochemistry</option> + <option value="department_7">Civil & Environmental Eng.</option> + <option value="department_8">Communication Studies</option> + <option value="department_9">Computer Science</option> + <option value="department_10">Ed Services & Leadership</option> + <option value="department_11">Electrical & Computer Engin</option> + <option value="department_12">English</option> + <option value="department_13">Environmental Science</option> + <option value="department_14">Experiential Engineering Education</option> + <option value="department_15">Geography Pling & Sustainablty</option> + <option value="department_16">Geology</option> + <option value="department_17">Health & Exercise Science</option> + <option value="department_18">History</option> + <option value="department_19">Honors</option> + <option value="department_20">Interdiscipl. & Inclusive Edu</option> + <option value="department_21">Journalism</option> + <option value="department_22">Lang Lit & Sociocultural Edu</option> + <option value="department_23">Law/ Justice</option> + <option value="department_24">Management & Entrepreneurship</option> + <option value="department_25">Marketing & Buisness Info Sys</option> + <option value="department_26">Mathematics</option> + <option value="department_27">Mechanical Engineering</option> + <option value="department_28">Molecular & Cellular Biosci</option> + <option value="department_29">Music</option> + <option value="department_30">Nursing</option> + <option value="department_31">Philosophy-Religion</option> + <option value="department_32">Physics & Astronomy</option> + <option value="department_33">Political Science & Economics</option> + <option value="department_34">Psychology</option> + <option value="department_35">Public Relations-Advertising</option> + <option value="department_36">Radio/TV/Film</option> + <option value="department_37">Sci Tech Eng Art & Math = STEAM</option> + <option value="department_38">Sociology & Anthropology</option> + <option value="department_39">Theatre-Dance</option> + <option value="department_40">World Languages</option> + <option value="department_41">Writing Arts</option> + </select> + </h4> + + <h4>Curriculum Change Proposal Type: + <select onchange="fieldappear(this);"> + <option disabled selected value> -- select an option -- </option> + <option value="form_A">New Course</option> + <option value="form_B">Change to Existing Course</option> + <option value="form_C">New Degree/ Program</option> + <option value="form_D">Change to Existing Degree/ Program</option> + <option value="form_E">Accelerated Undergrad/ Grad Dual Degree Program</option> + <option value="form_F">Quasi Cerricular Proposal</option> + </select> + </h4> + + <a id="fadeableA" style="display: none;"> + + <br> + <h2>Course Information</h2> + + <h4>Course Subject: + <input type="text" name="course_subject"><br> + </h4> + + <h4>Credit Type: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="ct_fixed">Fixed</option> + <option value="ct_variable">Variable</option> + </select> + </h4> + + <h4>Grade Mode: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="gm_satisfactory">Satisfactory/Unsatisfactory</option> + <option value="gm_pass">Pass/No Credit</option> + <option value="gm_regular">Regular (A,B,C,etc.)</option> + </select> + </h4> + + <h4>Additional grade mode option/ include explenation: + <input type="text" name="additional_grade_mode"><br> + </h4> + + <h4>Course Number: + <input type="text" name="course_number"><br> + </h4> + + <h4>Student Credits: + <input type="text" name="student_credits"><br> + </h4> + + <h4>Faculty Credits: + <input type="text" name="faculty_credits"><br> + </h4> + + <h4>Course Title: + <input type="text" name="course_title"><br> + </h4> + + <h4>If student and faculty credits do not match please provide an explanation: + <input type="text" name="credit_explanation"><br> + </h4> + + <h4>Prerequisites (Include prefix(es) and title(s) unless there are none, then state NONE): + <input type="text" name="prerequisite"><br> + </h4> + + <h4>Co-Requisite(s): + <input type="text" name="corequisite"><br> + </h4> + + <h4> + <input type="checkbox" name="check1" value="rowan_core">Rowan Core<br> + </h4> + + <h4> + <input type="checkbox" name="check2" value="writing_intensive">Writing Intensive<br> + </h4> + + <h4>Course Description: + <input type="text" name="course_description"><br> + </h4> + + <h4> + <input type="checkbox" name="check3" value="writing_intensive">Could this be offered online or by Rowan Global now or in the future?<br> + </h4> + + <h4>Course Rationale: + <input type="text" name="course_rationale"><br> + </h4> + + <br> + <h2>Curricular Effect</h2> + + <h4>Elective/Required: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="elective">Elective</option> + <option value="required">Required</option> + </select> + </h4> + + <h4>Course Effect for Students: + <input type="text" name="course_effect_s"><br> + </h4> + + <h4>Course Effect on Other Courses: + <input type="text" name="course_effect_oc"><br> + </h4> + + <h4>Course Effect on Other Programs, Departments or Colleges: + <input type="text" name="course_effect_opdc"><br> + </h4> + + <br> + <h2>Essence of the Course</h2> + + <h4>Topical Outline/Content: + <input type="text" name="topical_oc"><br> + </h4> + + <h4>Evaluation of Students and Grading Procedure: + <input type="text" name="eosagp"><br> + </h4> + + <h4>Course Evaluation and Assessment: + <input type="text" name="ceaa"><br> + </h4> + + <br> + <h2>Resource Requirements</h2> + + <h4>Equipment Space Technology: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="est_sufficient">Current Resources are Sufficient</option> + <option value="est_needed">Additional Resources are Needed</option> + </select> + </h4> + + <h4>Staffing Resources: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="sr_sufficient">Current Resources are Sufficient</option> + <option value="sr_needed">Additional Resources are Needed</option> + </select> + </h4> + + <h4>Library Resources: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="lr_sufficient">Current Resources are Sufficient</option> + <option value="lr_needed">Additional Resources are Needed</option> + </select> + </h4> + + <br> + <h2>Results of Consultation</h2> + + <h4>Consultations Required: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="consultations_yes">Yes</option> + <option value="consultations_no">No</option> + </select> + </h4> + + <br> + <h2>Documents</h2> + <h3>-Program Guide (Required)</h3> + <h3>-Library Resource Form (Required)</h3> + <h3>-Assessment (Required)</h3> + <h3>-Consultation Letters</h3> + <h3>-Additional Supporting Documentation</h3> + </a> + + <a id="fadeableB" style="display: none;"> + + <br> + <h2>Course Information</h2> + + <h4>Course Subject: + <input type="text" name="course_subject"><br> + </h4> + + <h4>Course Number: + <input type="text" name="course_number"><br> + </h4> + + <h4>Course Title: + <input type="text" name="course_title"><br> + </h4> + + <br> + <h2>Curricular Effect</h2> + + <h4>Elective/Required: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="elective">Elective</option> + <option value="required">Required</option> + </select> + </h4> + + <h4>Course Effect for Students: + <input type="text" name="course_effect_s"><br> + </h4> + + <h4>Course Effect on Other Courses: + <input type="text" name="course_effect_oc"><br> + </h4> + + <h4>Course Effect on Other Programs, Departments or Colleges: + <input type="text" name="course_effect_opdc"><br> + </h4> + + <br> + <h2>Changes</h2> + + <h2>INSERT ADDING NEW COURSE CHANGE BOX WITH A FROM, TO, and EXPLENATION WHY</h2> + + <br> + <h2>Results of Consultations</h2> + + <h4>Consultations Required: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="consultations_yes">Yes</option> + <option value="consultations_no">No</option> + </select> + </h4> + + <br> + <h2>Documents</h2> + <h3>-Program Guide (Required)</h3> + <h3>-Library Resource Form</h3> + <h3>-Consultation Letters</h3> + <h3>-Additional Supporting Documentation</h3> + </a> + + <a id="fadeableC" style="display: none;"> + + <br> + <h2>Degree Program Information</h2> + + <h4>Degree Program Credentials: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="dpc_ba">B.A.</option> + <option value="dpc_bfa">B.F.A.</option> + <option value="dpc_bgs">B.G.S.</option> + <option value="dpc_bm">B.M.</option> + <option value="dpc_bs">B.S.</option> + <option value="dpc_bsn">B.S.N.</option> + <option value="dpc_cags">CAGS</option> + <option value="dpc_certif">Certif</option> + <option value="dpc_cogs">COGS</option> + <option value="dpc_cugs">CUGS</option> + <option value="dpc_edd">Ed.D.</option> + <option value="dpc_eds">Ed.S.</option> + <option value="dpc_gradcert">Grad. Cert.</option> + <option value="dpc_ma">M.A.</option> + <option value="dpc_mba">M.B.A.</option> + <option value="dpc_mem">M.E.M.</option> + <option value="dpc_med">M.Ed.</option> + <option value="dpc_mm">M.M.</option> + <option value="dpc_ms">M.S.</option> + <option value="dpc_msn">M.S.N.</option> + <option value="dpc_mst">M.S.T.</option> + <option value="dpc_phd">Ph.D.</option> + <option value="dpc_phdma">Ph.D. (including M.A.)</option> + <option value="dpc_phdms">Ph.D. (including M.S.)</option> + <option value="dpc_minor">Minor</option> + <option value="dpc_concentration">Concentration</option> + <option value="dpc_postbacc">Post-Bacc</option> + </select> + </h4> + + <h4>Degree Program Name: + <input type="text" name="degree_program_name"><br> + </h4> + + <h4>Date of BOT Academic Subcommittee Approval: + <input type="text" name="degree_program_name"><br> + </h4> + + <h4> + <input type="checkbox" name="check3" value="writing_intensive">Could this be offered online or by Rowan Global now or in the future?<br> + </h4> + + <h4>CIP Code Number: + <input type="text" name="cip_code_number"><br> + </h4> + + <h4>CIP Title: + <input type="text" name="cip_title"><br> + </h4> + + <h4>Scope and Size of Program: + <input type="text" name="saso_program"><br> + </h4> + + <h4>Related Curriculum Proposals Being Submitted Simultaneously: + <input type="text" name="rcpbss"><br> + </h4> + + <br> + <h2>Requirements for Admission & Graduation</h2> + + <h4>Admission: + <input type="text" name="admission"><br> + </h4> + + <h4>Graduation: + <input type="text" name="graduation"><br> + </h4> + + <h4>Student Status: + <input type="text" name="student_status"><br> + </h4> + + <br> + <h2>Rationale</h2> + + <h4>General Merit of Proposal: + <input type="text" name="merit_of_proposal"><br> + </h4> + + <h4>Relationship to Existing Programs of Offerings: + <input type="text" name="rtepoo"><br> + </h4> + + <br> + <h2>Program Description</h2> + + <h4>Administration: + <input type="text" name="administration"><br> + </h4> + + <h4>Program Evauation: + <input type="text" name="program_evaluation"><br> + </h4> + + <br> + <h2>Resource Requirements</h2> + + <h4>Equipment Space Technology: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="est_sufficient">Current Resources are Sufficient</option> + <option value="est_needed">Additional Resources are Needed</option> + </select> + </h4> + + <h4>Staffing Resources: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="sr_sufficient">Current Resources are Sufficient</option> + <option value="sr_needed">Additional Resources are Needed</option> + </select> + </h4> + + <h4>Library Resources: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="lr_sufficient">Current Resources are Sufficient</option> + <option value="lr_needed">Additional Resources are Needed</option> + </select> + </h4> + + <br> + <h2>Results of Consultations</h2> + + <h4>Consultations Requested: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="consultations_yes">Yes</option> + <option value="consultations_no">No</option> + </select> + </h4> + + <br> + <h2>Documents</h2> + <h3>-Program Guide (Required)</h3> + <h3>-Library Resource Form (Required)</h3> + <h3>-Assessment (Required)</h3> + <h3>-Consultation Letters</h3> + <h3>-Additional Supporting Documentation</h3> + </a> + + <a id="fadeableD" style="display: none;"> + + <br> + <h2>Degree Program Information</h2> + + <h4>Degree Program Credentials: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="dpc_ba">B.A.</option> + <option value="dpc_bfa">B.F.A.</option> + <option value="dpc_bgs">B.G.S.</option> + <option value="dpc_bm">B.M.</option> + <option value="dpc_bs">B.S.</option> + <option value="dpc_bsn">B.S.N.</option> + <option value="dpc_cags">CAGS</option> + <option value="dpc_certif">Certif</option> + <option value="dpc_cogs">COGS</option> + <option value="dpc_cugs">CUGS</option> + <option value="dpc_edd">Ed.D.</option> + <option value="dpc_eds">Ed.S.</option> + <option value="dpc_gradcert">Grad. Cert.</option> + <option value="dpc_ma">M.A.</option> + <option value="dpc_mba">M.B.A.</option> + <option value="dpc_mem">M.E.M.</option> + <option value="dpc_med">M.Ed.</option> + <option value="dpc_mm">M.M.</option> + <option value="dpc_ms">M.S.</option> + <option value="dpc_msn">M.S.N.</option> + <option value="dpc_mst">M.S.T.</option> + <option value="dpc_phd">Ph.D.</option> + <option value="dpc_phdma">Ph.D. (including M.A.)</option> + <option value="dpc_phdms">Ph.D. (including M.S.)</option> + <option value="dpc_minor">Minor</option> + <option value="dpc_concentration">Concentration</option> + <option value="dpc_postbacc">Post-Bacc</option> + </select> + </h4> + + <h4>Degree Program Name: + <input type="text" name="degree_program_name"><br> + </h4> + + <h4>Related Curriculum Proposals Being Submitted Simultaneously: + <input type="text" name="degree_program_name"><br> + </h4> + + <h4>Four or more changes: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="four_changes_yes">Yes</option> + <option value="four_chanes_no">No</option> + </select> + </h4> + + <br> + <h2>Degree Program Changes</h2> + + <h4>INSERT ADDING NEW COURSE CHANGE BOX WITH A FROM, TO, and EXPLENATION WHY</h4> + + <br> + <h2>Results of Consultations</h2> + + <h4>Consultations Requested: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="consultations_yes">Yes</option> + <option value="consultations_no">No</option> + </select> + </h4> + + <br> + <h2>Documents</h2> + <h3>-Program Guide (Required)</h3> + <h3>-Consultation Letters</h3> + <h3>-Additional Supporting Documentation</h3> + </a> + + <a id="fadeableE" style="display: none;"> + + <br> + <h2>Degree Program Information</h2> + + <h4>Undergraduate Degree Program Credential: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="dpc_ba">B.A.</option> + <option value="dpc_bfa">B.F.A.</option> + <option value="dpc_bgs">B.G.S.</option> + <option value="dpc_bm">B.M.</option> + <option value="dpc_bs">B.S.</option> + <option value="dpc_bsn">B.S.N.</option> + <option value="dpc_cags">CAGS</option> + <option value="dpc_certif">Certif</option> + <option value="dpc_cogs">COGS</option> + <option value="dpc_cugs">CUGS</option> + <option value="dpc_edd">Ed.D.</option> + <option value="dpc_eds">Ed.S.</option> + <option value="dpc_gradcert">Grad. Cert.</option> + <option value="dpc_ma">M.A.</option> + <option value="dpc_mba">M.B.A.</option> + <option value="dpc_mem">M.E.M.</option> + <option value="dpc_med">M.Ed.</option> + <option value="dpc_mm">M.M.</option> + <option value="dpc_ms">M.S.</option> + <option value="dpc_msn">M.S.N.</option> + <option value="dpc_mst">M.S.T.</option> + <option value="dpc_phd">Ph.D.</option> + <option value="dpc_phdma">Ph.D. (including M.A.)</option> + <option value="dpc_phdms">Ph.D. (including M.S.)</option> + <option value="dpc_minor">Minor</option> + <option value="dpc_concentration">Concentration</option> + <option value="dpc_postbacc">Post-Bacc</option> + </select> + </h4> + + <h4>Undergraduate Degree Program Name: + <input type="text" name="udpn"><br> + </h4> + + <h4>Graduate Degree Program Credential: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="dpc_ba">B.A.</option> + <option value="dpc_bfa">B.F.A.</option> + <option value="dpc_bgs">B.G.S.</option> + <option value="dpc_bm">B.M.</option> + <option value="dpc_bs">B.S.</option> + <option value="dpc_bsn">B.S.N.</option> + <option value="dpc_cags">CAGS</option> + <option value="dpc_certif">Certif</option> + <option value="dpc_cogs">COGS</option> + <option value="dpc_cugs">CUGS</option> + <option value="dpc_edd">Ed.D.</option> + <option value="dpc_eds">Ed.S.</option> + <option value="dpc_gradcert">Grad. Cert.</option> + <option value="dpc_ma">M.A.</option> + <option value="dpc_mba">M.B.A.</option> + <option value="dpc_mem">M.E.M.</option> + <option value="dpc_med">M.Ed.</option> + <option value="dpc_mm">M.M.</option> + <option value="dpc_ms">M.S.</option> + <option value="dpc_msn">M.S.N.</option> + <option value="dpc_mst">M.S.T.</option> + <option value="dpc_phd">Ph.D.</option> + <option value="dpc_phdma">Ph.D. (including M.A.)</option> + <option value="dpc_phdms">Ph.D. (including M.S.)</option> + <option value="dpc_minor">Minor</option> + <option value="dpc_concentration">Concentration</option> + <option value="dpc_postbacc">Post-Bacc</option> + </select> + </h4> + + <h4>Graduate Degree Program Name: + <input type="text" name="gdpn"><br> + </h4> + + <h4>Undergraduate CIP Code Number: + <input type="text" name="ucip_code_number"><br> + </h4> + + <h4>Undergraduate CIP Title: + <input type="text" name="ucip_title"><br> + </h4> + + <h4>Graduate CIP Code Number: + <input type="text" name="gcip_code_number"><br> + </h4> + + <h4>Graduate CIP Title: + <input type="text" name="gcip_title"><br> + </h4> + + <h4>Scope and Size of Program: + <input type="text" name="size_of_program"><br> + </h4> + + <h4>Related Curriculum Proposals Being Submitted Simultaneously: + <input type="text" name="rcpbss"><br> + </h4> + + <br> + <h2>Requirements for Admission & Graduation</h2> + + <h4>Admission: + <input type="text" name="admission"><br> + </h4> + + <h4>Graduation: + <input type="text" name="graduation"><br> + </h4> + + <h4>Student Status: + <input type="text" name="student_status"><br> + </h4> + + <br> + <h2>Rationale</h2> + + <h4>General Merit of Proposal: + <input type="text" name="merit_of_proposal"><br> + </h4> + + <br> + <h2>Program Description</h2> + + <h4>Program Curriculum: + <input type="text" name="administration"><br> + </h4> + + <h4>Administration: + <input type="text" name="administration"><br> + </h4> + + <h4>Program Evauation: + <input type="text" name="program_evaluation"><br> + </h4> + + <br> + <h2>Resource Requirements</h2> + + <h4>Equipment Space Technology: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="est_sufficient">Current Resources are Sufficient</option> + <option value="est_needed">Additional Resources are Needed</option> + </select> + </h4> + + <h4>Staffing Resources: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="sr_sufficient">Current Resources are Sufficient</option> + <option value="sr_needed">Additional Resources are Needed</option> + </select> + </h4> + + <h4>Library Resources: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="lr_sufficient">Current Resources are Sufficient</option> + <option value="lr_needed">Additional Resources are Needed</option> + </select> + </h4> + + <br> + <h2>Results of Consultations</h2> + + <h4>Consultations Requested: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="consultations_yes">Yes</option> + <option value="consultations_no">No</option> + </select> + </h4> + + <br> + <h2>Documents</h2> + <h3>-Program Guide (Required)</h3> + <h3>-Consultation Letters</h3> + <h3>-Additional Supporting Documentation</h3> + </a> + + <a id="fadeableF" style="display: none;"> + + <br> + <h2>Quasi Curricular Proposal</h2> + + <h4>Quasi Curricular Reason: + <select> + <option disabled selected value> -- select an option -- </option> + <option value="qcr1">Change the name of an existing degree or degree-related + program (BA/BS, MA/MS, Ph.D. or minor, concentration or + any other type of certificate).</option> + <option value="qcr2">Dissolve or suspend an existing degree</option> + <option value="qcr3">Create or dissolve a department, school or college, or + other academic unit</option> + <option value="qcr4">Move a department from one college to another college or + academic unit</option> + <option value="qcr5">Change the name or structure of a department, school or + college, or academic unit</option> + <option value="qcr6">Change curriculum approval processes</option> + </select> + </h4> + + <br> + <h2>Rationale</h2> + + <h4>General Merit of Proposal: + <input type="text" name="merit_of_proposal"><br> + </h4> + + <br> + <h2>Curricular Effect</h2> + + <h4>Course Effect on Other Programs, Departments or Colleges: + <input type="text" name="course_effect_opdc"><br> + </h4> + + <br> + <h2>Documents</h2> + <h3>-Program Guide</h3> + <h3>-Library Resource Form</h3> + <h3>-Assessment</h3> + <h3>-Consultation Letters (Required)</h3> + <h3>-Additional Supporting Documentation</h3> + </a> + +</div> + +<!––The Download page––> +<div id="Download" class="tabcontent"> + <center> + <h1>Download Page</h1> + + + <h3>Proposal</h3> + + <select> + <option value="p1">Proposal 1</option> + <option value="p2">Proposal 2</option> + <option value="p3">Proposal 3</option> + <option value="p4">Proposal 4</option> + </select> + + <h3>Cover Sheet</h3> + + <select> + <option value="v1">Version 1</option> + <option value="v2">Version 2</option> + </select> + + <h3>Library Form</h3> + + <select> + <option value="v1">Version 1</option> + <option value="v2">Version 2</option> + </select> + + <h3>Template</h3> + + <select> + <option value="v1">Version 1</option> + <option value="v2">Version 2</option> + </select> + + <h3>Supporting Documents</h3> + + <select> + <option value="v1">Version 1</option> + <option value="v2">Version 2</option> + </select> + + <h3>Program Guide</h3> + + <select> + <option value="v1">Version 1</option> + <option value="v2">Version 2</option> + </select> + + <h1> + <a href="#" class="button">Download</a> + </h1> + + </center> +</div> + +<!––The Upload page––> +<div id="Upload" class="tabcontent"> + <center> + <h1>Upload Page</h1> + </center> + + <h3>Proposal</h3> + + <select> + <option value="p1">Proposal 1</option> + <option value="p2">Proposal 2</option> + <option value="p3">Proposal 3</option> + <option value="p4">Proposal 4</option> + </select> + + <form> + <h3>Document Name</h3> + <input type="text" name="document_name"><br> + </form> + + <h3>Document Type</h3> + + <select> + <option value="cover_sheet">Cover Sheet</option> + <option value="library_form">Library Form</option> + <option value="template">Template</option> + <option value="supporting_document">Supporting Document</option> + <option value="program_guide">Program Guide</option> + </select> + + <h3>Attach Files</h3> + + <form action="" method=post enctype=multipart/form-data> + <p> + <input type=file name=file> + </p> + </form> + + <form> + <h3>Comments</h3> + <textarea name="comments" cols="100" rows="10"></textarea><br> + </form> + <center> + <h1> + <a href="#" class="button">Upload</a> + </h1> + </center> +</div> + + +<!––The Status page––> +<div id="Status" class="tabcontent"> + <center> + <h1>Status Page</h1> + </center> + + <h3>Proposal</h3> + + <select> + <option value="p1">Proposal 1</option> + <option value="p2">Proposal 2</option> + <option value="p3">Proposal 3</option> + <option value="p4">Proposal 4</option> + </select> + + <h3>Cover Sheet</h3> + + <h3>Library Form</h3> + + <h3>Template</h3> + + <h3>Supporting Documents</h3> + + <h3>Program Guide</h3> +</div> +</body> + + +<script> + +function openPage(pageName, elmnt, color) +{ + var i, tabcontent, tablinks; + tabcontent = document.getElementsByClassName("tabcontent"); + for (i = 0; i < tabcontent.length; i++) + { + tabcontent[i].style.display = "none"; + } + + tablinks = document.getElementsByClassName("tablink"); + for (i = 0; i < tablinks.length; i++) + { + tablinks[i].style.backgroundColor = ""; + } + + document.getElementById(pageName).style.display = "block"; + + elmnt.style.backgroundColor = color; +} + +document.getElementById("defaultOpen").click(); + +function fieldappear(that) +{ + if (that.value == "form_A") + { + document.getElementById("fadeableA").style.display = "block"; + document.getElementById("fadeableB").style.display = "none"; + document.getElementById("fadeableC").style.display = "none"; + document.getElementById("fadeableD").style.display = "none"; + document.getElementById("fadeableE").style.display = "none"; + document.getElementById("fadeableF").style.display = "none"; + } + else if (that.value == "form_B") + { + document.getElementById("fadeableA").style.display = "none"; + document.getElementById("fadeableB").style.display = "block"; + document.getElementById("fadeableC").style.display = "none"; + document.getElementById("fadeableD").style.display = "none"; + document.getElementById("fadeableE").style.display = "none"; + document.getElementById("fadeableF").style.display = "none"; + } + else if (that.value == "form_C") + { + document.getElementById("fadeableA").style.display = "none"; + document.getElementById("fadeableB").style.display = "none"; + document.getElementById("fadeableC").style.display = "block"; + document.getElementById("fadeableD").style.display = "none"; + document.getElementById("fadeableE").style.display = "none"; + document.getElementById("fadeableF").style.display = "none"; + } + else if (that.value == "form_D") + { + document.getElementById("fadeableA").style.display = "none"; + document.getElementById("fadeableB").style.display = "none"; + document.getElementById("fadeableC").style.display = "none"; + document.getElementById("fadeableD").style.display = "block"; + document.getElementById("fadeableE").style.display = "none"; + document.getElementById("fadeableF").style.display = "none"; + } + else if (that.value == "form_E") + { + document.getElementById("fadeableA").style.display = "none"; + document.getElementById("fadeableB").style.display = "none"; + document.getElementById("fadeableC").style.display = "none"; + document.getElementById("fadeableD").style.display = "none"; + document.getElementById("fadeableE").style.display = "block"; + document.getElementById("fadeableF").style.display = "none"; + } + else if (that.value == "form_F") + { + document.getElementById("fadeableA").style.display = "none"; + document.getElementById("fadeableB").style.display = "none"; + document.getElementById("fadeableC").style.display = "none"; + document.getElementById("fadeableD").style.display = "none"; + document.getElementById("fadeableE").style.display = "none"; + document.getElementById("fadeableF").style.display = "block"; + } + else + { + document.getElementById("fadeableA").style.display = "none"; + document.getElementById("fadeableB").style.display = "none"; + document.getElementById("fadeableC").style.display = "none"; + document.getElementById("fadeableD").style.display = "none"; + document.getElementById("fadeableE").style.display = "none"; + document.getElementById("fadeableF").style.display = "none"; + } +} + +</script> +\ No newline at end of file diff --git a/src/python/main.py b/src/python/main.py @@ -1,12 +1,47 @@ +""" +----------------------------------------------------------------------------- + +Rowan Computer Science Dept Spring 2019 Senior Project Team +Rowan Curricular Proposal Mangagement System for Jack Myers rowan + +Senior Team Members: +Team Lead: John Kubach + Scrum Master: Joshua Jackson + Developer: Alex Kulplin + Developer: Jeffrey Podwats + Developer: Alaina Smith + Developer: Kyle Butera + +----------------------------------------------------------------------------- + +Description: + This is the code for uploading necessary images to web page + + Last edit: 4/3/19 +----------------------------------------------------------------------------- +""" + +#==========================imports=============================================== +# Imports that are need will go in this box import os import subprocess -from flask import Flask, request, redirect, url_for, send_from_directory +import img2pdf +#========================end===================================================== + +#=================connection===================================================== +# This will connect the back front end to the database setting flask up box +from flask import Flask, request, redirect, url_for, send_from_directory, \ + render_template from flaskext.mysql import MySQL from werkzeug import secure_filename +#====================end========================================================== +#======================varibles for uploading===================================== UPLOAD_FOLDER = '/tmp/upload' ALLOWED_EXTENSIONS = set(['pdf', 'docx']) +#==========================end==================================================== +#=================================================================================== app = Flask(__name__) mysql = MySQL() app.config['MYSQL_DATABASE_USER'] = 'root' @@ -15,63 +50,63 @@ app.config['MYSQL_DATABASE_DB'] = 'curricular_management' app.config['MYSQL_DATABASE_HOST'] = 'localhost' mysql.init_app(app) -conn = mysql.connect() -cursor =conn.cursor() - -cursor.execute("SELECT * from proposal") -data = cursor.fetchone() - app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER +#===================end============================================================= +#=================Checks file to see if allowed===================================== +# def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS +#=======================end========================================================= + +#============================================================================= +# @app.route("/", methods=['GET', 'POST']) def index(): + conn = mysql.connect() + cursor = conn.cursor() if request.method == 'POST': file = request.files['file'] + doctype = request.form.get('doc_select') + uname = "Kubach" + + if doctype == "-a": + sql_query = """INSERT INTO assessement_form_revision (assessement_form_id, assessement_form_file_path, assessement_form_datetime) values (1, %s, NOW())""" + elif doctype == "-l": + sql_query = """INSERT INTO library_form_revision (library_form_id, library_form_file_path, library_form_datetime) values (1, %s, NOW())""" + elif doctype == "-s": + sql_query = """INSERT INTO supporting_document_revision (supporting_document_id, supporting_document_file_path, supporting_document_datetime) values (1, %s, NOW())""" + elif doctype == "-p": + sql_query = """INSERT INTO program_guide_revision (program_guide_id, program_guide_file_path, program_guide_datetime) values (1, %s, NOW())""" + elif doctype == "-c": + sql_query = """INSERT INTO consult_letter_revision (consult_letter_id, consult_letter_file_path, consult_letter_datetime) values (1, %s, NOW())""" + if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) if filename.endswith('.pdf'): - uname = "Kubach" - doctype = "-s" cmd = "./archiver.sh -n " + uname + " -f " + filename + " " + doctype - subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) - cursor.execute("INSERT INTO assessement_form_revision (assessement_form_id, assessement_form_file_path, assessement_form_datetime) values (1, 'test', NOW())") - res = cursor.fetchall() - - for x in res: - print(x) - if filename.endswith('.docx'): conv = "soffice --convert-to pdf /tmp/" + filename + " --outdir " + UPLOAD_FOLDER + " --headless" subprocess.call(conv, shell=True) - uname = "Kubach" - doctype = "-s" - cmd = "./archiver.sh -n " + uname + " -f " + filename.replace(".docx",".pdf") + " " + doctype - subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) - + cmd = "./archiver.sh -n " + uname + " -f " + filename.replace(".docx", ".pdf") + " " + doctype if filename.endswith('png'): conv = "convert" + filename + " --path " + UPLOAD_FOLDER + " --headless" subprocess.call(conv, shell=True) - - - return redirect(url_for('index')) - return """ - <!doctype html> - <title>Upload Cover Sheet</title> - <h1>Upload Cover Sheet</h1> - <form action="" method=post enctype=multipart/form-data> - <p><input type=file name=file> - <input type=submit value=Upload> - </form> - <p>%s</p> - """ % "<br>".join(os.listdir(app.config['UPLOAD_FOLDER'],)) + + newFilename = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + cursor.execute(sql_query, newFilename.stdout.readlines()[0].strip()) + conn.commit() + + return redirect(url_for('index', doctype=doctype)) + return render_template('index.html') + if __name__ == "__main__": app.run(host='0.0.0.0', port=5001, debug=True) +#============================================================================= +\ No newline at end of file diff --git a/src/scripts/archiver.sh b/src/scripts/archiver.sh @@ -12,20 +12,23 @@ EMPLOYEE="" # -c : [c]onsult letter # -n : uploader last [n]ame -while getopts ":n:f:sltpc" opt +while getopts ":n:f:alspc" opt do case "${opt}" in n) EMPLOYEE=${OPTARG};; f) FILE=${OPTARG};; - s) DOCTYPE="Cover_Sheet";; + a) DOCTYPE="Assessement_Form";; l) DOCTYPE="Lib_Form";; - t) DOCTYPE="Template";; + s) DOCTYPE="Supporting_Doc";; p) DOCTYPE="Pgrm_Guide";; c) DOCTYPE="Consult_Letter";; esac done shift $((OPTIND -1)) -mv $FILE $EMPLOYEE\_$DOCTYPE\_$TIMESTAMP +NEWFILE=$EMPLOYEE\_$DOCTYPE\_$TIMESTAMP.pdf + +mv $FILE $NEWFILE +echo $NEWFILE exit 0