Rationale and Inspiration

As is seen with the recent school shootings, such as the Parkland school shooting, school safety is of utmost importance. For student safety, many schools employ a "sign-out" system, where students leaving the classroom must write down their name, the date, and the time at which they leave and arrive back in the classroom. In the case of an emergency, this student data is helpful for emergency authorities as the location of students in a given time period is known. However, there are several problems with the current system. Primarily, written records of student data Sis unreliable, inefficient, and uneconomical. Secondly, retrieving information from disorganized written records is cumbersome and slow. Speed of information is critical in emergency situations. The issues with the current system for school safety inspired the creation of SignOut. SignOut is a web-based SaaS application that allows students to record data whenever they leave the classroom. It is simple: login to the website on a smartphone, enter the student ID and destination. This information is automatically compiled and posted in a database to permit easy retrieval of data by administrators. With SignOut, student data is easily manageable, shareable, and accessible from anywhere, anytime. There are already some solutions in the market to simplify school safety. However, many of these options are not as effective as SignOut. For example, in Montgomery High School, certain rooms (such as the media center) have a laptop for students to enter their student ID. Yet, retrieval of this information is complicated. In addition, having a laptop that constantly runs this program is uneconomical and also inconveniently bulky. SignOut builds upon existing technologies by allowing powerful data management and user experiences. The significance and impact of SignOut are unequivocal. SignOut makes it easier for students to record information when they leave the classroom. The project also makes it easier for administrators and authorities to retrieve students data. From the website, administrators can specify what information they are looking for (student ID, location, time period, etc.) and the program returns all the records and student data. From this rapid and efficient system of recording and managing student information, student safety is secured. All problems with the pen-and-paper system are removed. SignOut is quick, economical, and effective. In emergency situations, SignOut is a great resource to ensure student safety. Should powerful systems such as SignOut be employed in schools, society progresses to keep the schools and our students safe.

Engineering Goals

There are several engineering goals when considering the creation of SignOut. The first goal is to improve student use of recording systems. As observed in Montgomery High School, students do not diligently record their name, date, and time of departure & arrival in the written "sign-out" system. The explanation for this is simple - writing down all of that information is cumbersome. The first engineering goal is to address this problem. A major aim of SignOut is to provide a seamless user experience. This means that students can easily record their student information by going on the website, and within seconds the data is securely stored in a database. To accomplish this goal, the front-end design of the webpage should be intuitive to users and appealing in order to establish user utilization of the product and user retention. Thus, more students will accurately record the information and the software will be more useful for safety authorities. The second engineering goal is to improve the retrieval process of student data. A major problem with the pen-and-paper "sign-out" system is that it is hard for the authorities to retrieve student data. In SignOut, when students record data, the information should be stored in a database. Then, when administrators need to retrieve student data, they can login to the SignOut website to retrieve the data from the database. In addition, the SignOut web application is aimed to promote readability of data. The website formats the data in charts, tables, and graphs for the administrator to be able to draw conclusions in real time. Therefore, information can be retrieved quickly and efficiently, which is critical in emergency situations. The third engineering goal is to institute a powerful, scalable, and efficient infrastructure. This aim addresses data management and architecture within the database and web server. The database and tables should be organized to promote the speed and accessibility of data.

How I built it (Development Procedure and Methods)

The procedure to create SignOut is outlined below. SignOut follows the data science life cycle involving data acquisition, architecture, and modeling. Primarily, student data must be acquired. This includes the student ID, location, departure time, and arrival time. To do this, an intuitive webpage will be created involving Bootstrap and CSS elements. The student can input their ID and location online, and when the data is submitted the departure/arrival time is automatically captured. When the student clicks submit, the data is sent from the front end to the web server. This involves a standard HTTP POST method. Programmed in Node.js and Express.js, the server architecture allows for this data to be received and written to a PostgreSQL database, where the data is managed and stored. Interactions between the database and the Javascript-based web server are carried out with node-pg, a JavaScript module that queries from the database within the server using SQL. Thus, the information recorded by the student on the website is written in the database. Next, when school administrators or emergency authorities need to view the student records of when they were outside of the classroom, they can login to the SignOut website. Data architecture is utilized in this step. First, to present the student records, the appropriate data must be pulled from the database. Again, using Express.js and node-pg methods in the web server, the data can be pulled from the database in JSON format. Next, the data will be served in JSON format to the HTML page using Express.js standard HTTP GET methods. The data will be received and parsed on the front end using jQuery AJAX (Asynchronous JavaScript and XML) functions. Finally, the data will be formatted and presented using HTML, CSS, and a responsive graphing API called Google Charts. Such front end elements and APIs are helpful in creating dynamic and powerful visuals to present the raw data from the server in a readable, intuitive, and helpful format. As a result, the data science process is complete with data modeling on the webpage. Administrators would be able to view the student records that they requested on the webpage in real time. Since this whole application is web-based, the time and location accessibility of the student records is enhanced. SignOut is powerful and useful because the data and student records are accessible, manageable, and readable.

Challenges I ran into

I ran into challenges with sending a server response and using data extraction/array manipulation to provide data for the bar chart. The database served the data in a complicated format, so I needed to parse the data and organize it to send to the front-end. On the front-end, I needed to create methods to insert the data into the bar graph after the data is parsed.

Accomplishments that I'm proud of

I was able to develop a fully-functioning cloud-based web application, that too full stack!

What I learned

I honed in on how to create a full-stack application with CRUD and HTTP methods, with standard web development and cloud computing tech and services such as jQuery AJAX, HTML, CSS, PostgreSQL (database), node-pg (database management), Javascript, Google Charts API, Node.js and Express.js server framework, and data science principles such as data acquisition, extraction, manipulation, cleaning, organization/infrastructure and visualization.

What's next for SignOut NJRSF - School Safety with SaaS & Data Science

The limitations of SignOut includes not being able to POST from mobile, but GET log and analytics is permitted. This could be due to the fact that the server is not remote, as it should ideally be in a web application. To fix this, and ensure database security, avoid data leaks, and provide for database management, migration to AWS RDS and EC2 is a good solution. In addition, the future and next step for security is bio-identification (fingerprint, face id, etc.). This removes the chance of incorrect or misused data. For this, a fingerprint API on phones could be implemented into the application and used as a bio-identification.

Share this project: