Victor Hernandez bef41ccb07 Allow user to change type and end date for a given experience. | vor 4 Jahren | |
---|---|---|
css | vor 4 Jahren | |
img | vor 4 Jahren | |
js | vor 4 Jahren | |
old_code | vor 4 Jahren | |
processes | vor 4 Jahren | |
README.md | vor 4 Jahren | |
card.html | vor 4 Jahren | |
categoryBreakdown.php | vor 4 Jahren | |
error.php | vor 4 Jahren | |
footer.php | vor 4 Jahren | |
funciones.php | vor 4 Jahren | |
header.php | vor 4 Jahren | |
home.php | vor 4 Jahren | |
index.php | vor 4 Jahren | |
nameOfTheQuestionnair.xlsx | vor 4 Jahren | |
questionBreakdown.php | vor 4 Jahren | |
questionnaires.php | vor 4 Jahren | |
respuestas.php | vor 4 Jahren | |
respuestasData.php | vor 4 Jahren | |
siCategoria.php | vor 4 Jahren | |
siPreguntas.php | vor 4 Jahren | |
siSubCategoria.php | vor 4 Jahren | |
special.php | vor 4 Jahren | |
special2.php | vor 4 Jahren | |
special4.php | vor 4 Jahren | |
special5.php | vor 4 Jahren | |
subcategoryBreakdown.php | vor 4 Jahren | |
test.php | vor 4 Jahren | |
testFrontEnd.php | vor 4 Jahren | |
unauthorized.php | vor 4 Jahren | |
users.php | vor 4 Jahren | |
viewExperience.php | vor 4 Jahren | |
viewMoment.php | vor 4 Jahren | |
viewQuestionnaire.php | vor 4 Jahren |
This web app serves as a backend management system for the client, Juan Lugo (juan.ramirez3@upr.edu) which integrates both the Android and iOS apps. Some of the functionalities include creating experiences where students can enroll in through the mobile apps, creating questionnaires (“repertoires” of questions), creating moments out of those questionnaires, and creating milestones that can be used to track any trend on students’ answers. Questionnaires and moments can be imported through an Excel sheet with a specified format or created from scratch directly from the ‘experience’ page. Moments, milestones and questions can be edited at will through the use of a calendar and two other pages. Results can be accessed through an “export” button and inspected through numerous different charts in the ‘results’ page. More, smaller functionalities and features lie within the web app.
This guide is a project-wide overview of how each script communicates with each other and should be used to navigate through each different file in the project. More in-depth explanations of how each function and chunks of code work can be found in the files themselves. As this was developed mostly by Víctor Hernández (victor.hernandez17@upr.edu) backed by database overseen by Carlos Corrada (carlos.corrada2@upr.edu), any questions can be made to any of the aforementioned developers’ emails.
* <- Means name may change
** <- Means input validation still hasn't been done
*** <- Means styling still hasn't been finished
**** <- Means not in use anymore
Files used mostly for layout and importing styles and common images.
header.php
footer.php
Files that the user gets to interact with (the “actual” frontend).
index.php
> Login / landing page. Provides a brief overview of the project and contact info.home.php
> Provides a mechanism to create new Experiences. Also displays all of the user’s Experiences. Provides a link to access all of the user’s Questionnaires. Provides a link to Sign Out.viewExperience.php
> Provides all the info about a user’s Experience. Has a calendar of events (that includes the start date, the end date, the Milestones, and the Moments). Lists the Questionnaires, Moments and Milestones (provides mechanism to create all of these too). Provides a mechanism to change the Experience’s title and description.viewQuestionnaire.php
***
> Provides all the info about a user’s Questionnaire. Lists all of its Questions, along with a “Delete” button to delete a given Question (this affects the Moments and the Results). Provides a mechanism to add a new Question to the Questionnaire.viewMoment.php
***
> Provides all the info about a user’s Moment. Lists all of its Questions, along with a “Remove” button to remove a given Question from the Moment. Provides a mechanism to add a new Question to the Moment (from the Questionnaire it’s associated to).questionnaires.php
****
> Lists all of the user’s Questionnaires. Provides a mechanism to create a new one from scratch (the same one as in viewExperience.php
). Provides a mechanism to import a new one from a .csv
file (along with a “Download Template” button so that the user follows the suggested guidelines). Also provides a mechanism to “Duplicate” a given Questionnaire from one Experience to another (so that the user can reuse them in different Experiences).respuestas.php
*
> Lists all of the Results of a given experience (i.e. the scaled answers), along with mean, stdev and percent change (between pre-post, pre-tania, post-tania). Can filter through subcategories, categories and individual students.error.php
> Lets user know there has been an error. Mostly occurs when the user’s session has expired (which is a 1 hour limit). Redirects to login.php
.unauthorized.php
> Lets user know that his email is unauthorized to use TANIA and makes sure $_SESSION
variables are unset/destroyed. Redirects to login.php
. NOTE: The user’s email (and only the user’s email) has to be in the DB table researcher
to be considered “registered”. During first login, callback.php
is in charge of retrieving the data from user’s Google account.users.php
> Lets administrators add users and decide which other users are administrators.../enrollInExp.php
> Landing page for the students. Presents the necessary steps for a student to participate in an experience, along with TANIA logo, links to CDCC page, etc.Files used for database connection, login logic and other configurations.
dbh.inc.php
> Database configuration file. Provides a $connection
variable that is used throughout all other scripts.config.php
> Google OAuth2 configuration file.callback.php
> After the user logs in through Google, it receives the user’s data and sets $_SESSION
variables, as well as $dbUserData
variable.checkLogin.php
> Checks if the appropriate $_SESSION
variables are set so that the user can continue in the page. If they are not set (or if invalid), it redirects user to error.php
or unauthorized.php
.Files used for database transactions. Most are named in <action><Entity>.php
where the action
is done over an entity
. Some are used for visualizations in other pages such as respuestas.php
. Another is used for the calendar in viewExperience.php
, and so on.
export.php
**
> Exports the Results from respuestas.php
in .csv
format.logout.php
> Logs user out (unsets/destroys $_SESSION
variables).special.php
*
> Populates dropdown (in viewExperience.php
) with a Questionnaire’s Questions (by specifying Questionnaire ID)special2.php
*
> Gathers Moments, Milestones and other details from a given Experience, sending them out in JSON so that the Calendar (in viewExperience.php
) gets populated with events (by specifying Experience ID).special4.php
*
> Changes the StartDate of a given calendar event (Moment or Milestone) by specifying 1) the “event ID” and “event Type” separated by a ‘-’, 2) the corresponding Experience ID, and 3) the event’s new StartDate (in viewExperience.php
).special5.php
*
> Spits out JSON data for “Answer Rate” histogram, which indicates how many people have answered each moment (i.e. 5 people answered moment 1, while 7 people answered moment 3, etc.)special6.php
*
> I THINK THIS IS NOT BEING USED…funciones.php
*
> Functions used by siCategoria.php
, siPreguntas.php
and siSubCategoria.php
.respuestasData.php
*
> Used asynchronously by respuestas.php
when changes in the table are made.siCategoria.php
*
> Used asynchronously by respuestas.php
when changes in the table are made.siPreguntas.php
*
> Used asynchronously by respuestas.php
when changes in the table are made.siSubCategoria.php
*
> Used asynchronously by respuestas.php
when changes in the table are made.insertExperience.php
updateExperience.php
insertQuestionnaire.php
updateQuestionnaire.php
importQuestionnaire.php
**duplicateQuestionnaire.php
insertMoment.php
updateMoment.php
insertMilestone.php
updateQuestion.php
insertQuestionToQuestionnaire.php
addExistingQuestionToMoment.php
removeQuestionFromMoment.php
deleteQuestionnaire.php
deleteMoment.php
deleteQuestion.php
addUser.php
makeManager.php
categoryBreakdown.php
> This script fetches how many people, for every category, have answered a given score and spits out a JSON with an array of category ID, category name, score and count.questionBreakdown.php
> This script fetches how many people, for every question, have answered a given score and spits out a JSON with an array of question ID, question premise, score and count.subcategoryBreakdown.php
> This script fetches how many people, for every subcategory, have answered a given score and spits out a JSON with an array of subcategory ID, subcategory name, score and count.css/
> Compiled CSS from SASS files in folder scss/
.scss/
> Uncompiled SASS files.img/
> Provides the photos used for header.php
, index.php
, home.php
and enrollInExp.php
.js/
> Folder that contains the javascript code for each “View” PHP script. The names are the same as their corresponding PHP scripts.Used sparingly for testing backend and frontend code before moving it to a working script.
test.php
testFrontEnd.php
Old files used for the alpha version of TANIA (EMA/MARLE) which are not in use currently. Created mostly by Coralys Cubero (coralys.cubero@upr.edu) from August 2018 to February 2019.
old_code/
processes/old_code3
../old_code2
jQuery
> Mainly used for asynchronous requests in the server (in home.php
, viewExperience.php
and respuestas.php
* ) as well as other features inside of Bootstrap.jQuery UI
> Used for inputs of type date
and datetime
in home.php
and viewExperience.php
.Bootstrap
> Mainly used for styling purposes.FullCalendar
> Used for the calendar in viewExperience.php
.Chart.js
> Used for the charts in respuestas.php
*.