Table of Contents
Work Plan
Set Up and Registration
Team
The creation of the set up and registration page will proceed in two phases. The first phase will be completed by Mitch, Carter, and Alex. The second phase may not encompass the entire team, depending whether some team members have changed responsibilities.
Design Outline
The first phase will be the creation of the HTML page that will capture the users data. The user data taken by the form will be their full name, class year, student ID, school they attend, and their email address. Before submitting the form, the user will have to check a box indicating that they agree to the terms and conditions of the site. The data entered by the user will be transferred and stored on a back-end database.
Once the first phase is complete, team members may change responsibilities to take on higher priority tasks. If no tasks are available, one or more of them will start of phase two. Phase two will utilize the W&L and Rollins student ID database to ensure that student ID's entered onto the registration page match the full name, class year, and email of the user. This task will involve establishing links to both W&L and Rollins' internal databases–a difficult logistical problem–as it will involve contacting the schools IT administrators, explaining the situation, gaining approval from the schools, and working with each schools database manager to set up a link between their databases and the ChemTutor servers.
Student User Login
Team
Our team have broken down our features to three main areas:
- Student User Login Page (Pan)
- Forgot Password (Tina)
- My Progress Page (Ruinan)
Pan will make the appearance of the login form enjoyable using HTML and CSS. Ruinan will explore the various ways ChemTutor can display the progress. He will first look at how other website does the my progress page (self-service, Leet Code, and etc). Upon having an idea of what the interface should look like, Ruinan will then create the static mock up, and the connection to the database and etc.
Design Outline
- Phase 1: Research During the first phase, Pan and Tina will discuss with the “set up” group about how to fetch and compare the password from an ID entered. Tina will also discuss with them how to hash and store a new set of ID+password. Then, she will research ways to send out email from the ChemTutor website. Ruinan will research ways to create pie charts (javaScript pi charts, maybe?). How to connect to the database, and communicating with the registration team to make sure all the information needed is in the database.
- Phase 2: Mock up In the second phase, Pan will make a good-looking login page using servelet. There will be a link to the forgot password page. Tina will make a “enter your email” page, which will send the user's ID and link to reset password page to this email address. Next, Tina will create a reset password page and record the ID with this new password. Ruinan will create the static mock up for his my progress page. This process includes a static web page that have the various clickable modules. And within each modules, there will be problem set questions. The problem sets are also clickable, but they will only show how a static webpage since it is not connected to the database yet. Ruinan will also create a static pie chart or other displaying tools in this phase.
- Phase 3: Implementation In the last phase, Ruinan will implement the static mock up pages he has created. And Pan will join to help after she finished her parts. Ruinan will connect the static webpage with the database and display the correct information that is needed. Ruinan will also test the webpage to see whether the information displayed is accurate and correct.
Math Formula Presentation
Team
For each team member we have listed the main first role of each person. Initially we are going to focus on finding an open source software code to implement the feature of math formula presentation. There are many various already built programs we can use thus we have divided up some of the parts here to help streamline the process of finding our main framework for our feature. It is important we each understand our own role, but we will need to be ready to understand each others' roles when proceeding to other parts of the project.
- George Barker: explore the possibilities of MathJax in implementing our functionality
- Rinn: explore the possibilities of MathML in implementing our functionality
- Coletta: explore other programs able to implement our functionality and possible combinations
Design Outline
- Exploratory Phase: We need to look at MathJax and MathML and determine whether one or another program is the best program for our needs. We will need to discuss further questions with our client to determine more accurately the needs of our program. This will help in choosing the programs we would like to consider, as well as aid in the next step in determing which program to actually choose and eventually implement.
- Selection Phase: Here we will use the results of our exploratory phase plan to determine an open source framework or multiple frameworks to work with on our feature. There are several issues we will need to consider in the choosing phase. We want to be able to convert a sentence in the following format: 'Solve for x in the following equation. Remember to include the correct number of significant figures in your answer.\nx/5.904 + x/6.0 = 5.803'. This is not a very complicated equation and we need to be sure that the program we implement is relevant for an intro level chemistry practice problem. In addition to the previous example of representing fractions, we need to be able to represent trig functions. The technologies to implement this representation may not need to be too intensive. During exploratory phase we will contact our client to figure out more specifically how intensive of a program we need. It may also be important to easily incorporate new symbols and expressions, perhaps as the scope of chemtutor expands. We also must be aware of the input to our framework. We should find a framework that can take the above example and easily convert it to a professional math formula.
- Implementation Phase: This is the part where we will use the python scripts developed by our client and transform the output of those scripts to a professional looking question that will be displayed to the student by the program. We will need to consider details here. We will need to consider the details of what we are receiving as input from our client. What is our client capable of doing to make our formulas properly display. Also how can we minimize the work required to do so on everyone's end. It will be essential for the previous two steps to be done correctly for implementation to go smoothly. Some considerations in this phase are making sure the special math text is properly scalable and fit smoothly into regular text.
Periodic Table
Team
Since our project heavily relies on the appearance of the webpage and the periodic table, we just divided the many features listed in the box-notes evenly amongst ourselves. Other than that, all three of us are going to meet up to work on the project and handle our corresponding responsibilities. Lastly, all three of us are going to work on improving the final appearance of the periodic table. We will review and analyze everything at the end together as a team.
Design Outline
Our design involves the appearance of the periodic table in the webpage and the integration of the periodic table with various different exercises along with other minor adjustments. We will also be adding the options of user color selection, partial view of the periodic table (individual elements, a single category of elements, or the entire periodic table). Furthermore, exercises and users themselves will be able to restrict view in terms of the chemical name of the elements (the chemical symbols will always be displayed). Our project does not have an exploratory phase since we already have a base to work on. Therefore, for the most part, we will be adding, updating and adjusting the HTML and CSS codes for adding/updating features relating to the appearance of the table. For features like changing colors of categories, partial views of the table, font colors, font sizes etc., we will have to adjust the HTML and CSS along with the JavaScript code.
Practice Modules
Team
For now, I (Alex W) am the only person working on the practice modules. The Practice Modules are high-priority because they will help us understand the design of the application as a whole- thus it is important for other groups to finish their features first so we can put a lot of energy into to this feature. This is how I divided up the different parts of the project in the design outline:
Design Outline
- HTML/CSS of a slide: Just working on the front-end looks of an individual slide to make sure it matches the examples on the Chem Tudor mock-up.
- Storing Questions/Answers: Begin back-end of the project. How will we store the questions, answers options, and answers corrections?
- Attaching Question to Slide: Assigning questions to slides, and making sure that they are in random order.
- User Input/Verification: Includes back-end part of what happens when user clicks on an answer (comparing their answer to the correct one, keeping track of correct answers, etc.) and front-end (the appearance of the green check or red x, the appearance of the next button, the final result slide).
One thing that we will also need to incorporate is multi-step problems. However, I believe that we should first finish the program for just single-step problems and then go back and modify for multi-step problems if we have time.
Graph Exercises
Team
Team members: Chris Surran, Roby Mize, and JD Wilson
- Work Allocation (SUBJECT TO CHANGE)
- Surran - Work on creating static pages and CSS
- Mize - Work on retrieving information from python and displaying data
- JD - Work on creating forms to track progress.
The graph exercises are integral to the functionality of ChemTutor, as they provide the exercises that will help users learn. The graph exercises, along with the practice modules, are the hands-on learning experiences that many users will ultimately visit the page for. We can begin to work on the graph exercises immediately, as we have the Python scripts that can generate the graphs correct graphs and do not really rely on any other group to complete another part first. Our graph exercises can be incorporated into the overall application at almost any point, but must work with the data tracking group to ensure their tracker understands how to follow a user's progress on the graph exercises.
Design Outline
- First, we will need to decide if we want graphing problems to extend the work done on the other practice modules.
- Then, we will work on getting a static version of the page completed.
- This will include an example question.
- Will also need to use css to style the page.
- Next, we will work on getting a dynamic version of the page working.
- We will need to decide which of the two types of graph problems we will want to display.
- Can be done at random or have some other algorithm for making the decision.
- Then we will need to choose from question subtypes associated with that category (ie what happens when you change b vs. what happens when you change m?).
- Retrieve the selected question from python script and then display graph from said question.
- Need to know more about how these are generated before we can proceed.
- Make a form that contains the other answer choices and also display the graphs associated with those choices.
- Store user response in order to track their process through the module.
- Display the users score at the end of the module.
- Can include whatever information here that we wish
- Which questions they got wrong
- What they put vs what was the right answer
- % correct
- How this compares to their past test results.