GithubHelp home page GithubHelp logo

23ccozad / stem-chronos Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 9.59 MB

A Google Chrome extension helping students at the Downingtown STEM Academy easily access their daily schedule.

HTML 18.37% JavaScript 57.73% CSS 23.90%

stem-chronos's Introduction

stem-chronos

STEM Chronos is a Google Chrome extension helping students at the Downingtown STEM Academy easily access their daily schedule.

The extension can be previewed and downloaded for free from the Chrome Web Store: https://chrome.google.com/webstore/detail/stem-chronos/gpmmebokjcjjnjkljpjliaepcchkmbda

How STEM Chronos Works

Our Chrome Extension is only the front-end of the Chronos system. Each night before school, one of the developers uses a back-end interface to enter in the schedule information for the next day. The back-end interface translate that data into an XML file using PHP. The STEM Chronos extension uses XMLHttpRequests to access these XML files, and JavaScript/JQuery code within the extension parses that data to be displayed through the front-end interface. HTML and CSS was used to develop the front-end interface.

Ongoing Work

STEM Chronos has come a long way since its inception during April 2018. It started as a primitive Chrome extension with a lacking front-end interface and little strucutre in place to store schedule data. Today, it's interface is colorful and intutive, with a set strucutre for data storage on the back-end.

However, there are two challenges we still face with the extension. When the extension was first launched to the student body, we discovered that the Wi-Fi network at the Downingtown STEM Academy is extremley slow, and it would regularly take 10 to 15 seconds for the extension to load the schedule. The biggest contributor to the long loading times was the retrieve the XML file with schedule information. To resolve this issue, we allowed the extension to cache the XML file. At this point, the extension is only slow when Chrome or the user decides to refresh the XML file in the cache, which is still somewhat of an issue. This also limits us from making schedule changes on the fly. For example, if a two-hour early dismissal is announced at 10 AM due to an impending snowstorm (this doesn't happen often, but it's possible), the extension will not update the schedule until the cache is refreshed.

Another challenge we face is support for daily schedules for teachers that teach across the "schedule line". That is, if a teacher teaches some classes for seniors or juniors and some classes for freshmen or sophomores, we currently have no way to show their schedule. We understand that this only affects their lunch periods, in terms of the times of classes which they teach and we know how to solve this issue, but it will be a cumbersome and time-consuming fix, only adding to the 2,500 lines of code that comprise the front-end and back-end of Chronos.

Our GitHub Repo

I initially developed this extension on my school-issued Mac, and I uploaded all of my front-end work into the folder "STEM-Chronos" in the repo. Within that folder is everything I have built for the STEM Chronos front-end, from the GIFs that are displayed on snow days to the packages uploaded to the Chrome Web Store for distribution. What I have not included is any back-end files or information, since parts of it are secure and only to be accessed or seen by the developers. I run the back-end interface and XML files from my personal website.

Thank You

Thank You to all of the students and staff who have downloaded this extension. It's been extremley gratifying to see how a combination of my keystrokes has created a system integral to the school community.

stem-chronos's People

Contributors

23ccozad avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.