Updates

Update 3 – We’ve Struck Gold

The quest of the three adventurers has led to some exciting discoveries, but only after long and arduous trials.

The process for getting the front end and back end communicating took some time to refine, but our team finally has it down. While the process requires some knowledge of different UNIX, Node.js and MongoDB commands, we have now created an instructions document (with pictures) to speed the process up.

After getting that part down, we began digging into data. Our primary project goal right now is to find attendance data, print out reports with that data, and ultimately help the IntelliChoice team have an easier time working with students and giving out scholarships.

We have just achieved step 1! If you look below, you will see a lot of jumbled characters, but those characters represent the data we need to begin printing out attendance charts. This means that we have created a data set and successfully extracted data from it, which is a huge step in the right direction. Next on our list, print out some attendance!

Update 2 – Research

We have begun work on our project! We are starting off by creating attendance sheets that can be exported by PDF from the webpage. We found a tool called pdfkit that is open source to aid us in this task. Our primary goals coming up are to work with the database to extract the exact attendance information, and then we will go from there!

To read more about pdfkit, check out it’s source files: PDFKit

EDIT: After careful consideration, we switched to wkhtmltopdf as it better suits our needs.

Update 1 – Getting Up to Date

We are not the first to embark on this journey. Before us, other brave souls ventured into the EPICS class and worked with IntelliChoice to create a working database system. While these wonderful people excelled, they have left it up to us to carry the torch, but before we can carry it, we have to understand how it works.

As a team, we are in the process of refining our semester goals, creating a project plan, and learning the necessary skills to be able to make a positive impact for our sponsor, IntelliChoice. We hope to provide top of the line support and creation in database management to help aid them in aiding our community. Through spreading educational opportunity, we can create a better world for many!

Some of the things that we are learning include JavaScript, Node.js, and other scripting and markup languages. By focusing on these things now, we will be up to the task of understanding the current code and updating it for future expansion.

Step 5 – Future

During the last week of school for the attendees of IntelliChoice, we plan to hold a small testing event with the Ethiopia Branch nearby in Garland, Texas. With the help of this test, we will be able to identify any bugs and functionality problems early on that could impede the transition of every other branch in Texas and Arizona. Any bugs found with the Ethiopian branch will be handled by the initial EPICS team! After the transition of the other branches, a new Epics team will carry on the work and complete online learning modules, one-on-one online tutoring, and a statistics page using the data gained from attendance percentages.

Step 3 – Attendance

Our second main deliverable for the improvement of the Intellichoice website was the addition of an online attendance system for the different Intellichoice branches to use. Initially, all recording of attendance was with pen and paper which then had to be transferred by hand onto a CSV File. This process proved to be sluggish and inefficient, causing any form of data collection to be a strain on the volunteers. Branch managers are volunteering their time to help kids learn math, so it was our job to allow them to focus solely on that. With the addition of this attendance system, every student can have a working account with an attendance record that is easily accessed through the MongoDataBase.
Here you can see a simple video of the easy checklist and sorting functions to allow for an effortless system of finding and recording all students who arrive at the branch:


All data is easily accessible by the branch manager, so any corrections to past attendance if something is wrong or incorrect can be done on-site without having to contact a website administrator:

Step 2 – File Cleanup

One of the things we have done for this project is consider our code quality. We inherited a decently hefty codebase that was complicated and not well documented. One of the things that we ran into was that the main server code was stored entirely in a file called “index.js”: all two-thousand lines of it.

This really was not optimal to work in.

We decided, then, that this would need a change. We decided on a structure where the files for the website itself would be served in a different file, the API calls would go into their own directory structure with many files by category, and commonly used functions would be moved to their own files. All these files would then be required() into the main server file so that the functionality would not change. Our users would see no difference aside from a minor speedup, but new developers to the project would have a much easier time doing their development and taking knowledge of our codebase.

Step 1 – Registration

Over the past month, along with many different features, we have had one goal for the main improvement of the website and the general goal of our group. Before today, registration of students throughout all of the branches was scattered and mixed. Correct and accurate data is extremely important not just because of support for the student attendance program soon to be rolled out, but to support statistics of volunteer/student ratio to allow for simplified allocation of resources.
Main features completed to support this is full data modification access for managers of branches to fix address, email, and name info of students and parents, a list of active students on the branch for managers to view, popups when a manager has pending new students, and managers ability to easily register students on-site.
Next step: The Attendance System!

Bug Fixing and Learning Polymer

Getting dropped into the middle of a work-in-progress can be one of the hardest things in CS. Besides having to learn the language, you also need to learn the structural setup of the code done by the person before you in order to understand what you are working with. So far, these first couple weeks have been all about learning the basics of Polymer’s HTML and JavaScript! We have split into sub-groups and have been working on bugs throughout the website as well as improving the efficiency of the user’s experience.