IS480 Team wiki: 2016T1 MARKSmen Midterm
Contents
Project Progress Summary
- Spent 4 weeks to familiarise ourselves with javascript, angular JS, and firebase.
- Developed the code challenge, one of the primary functions to be used in volume.
- Performed UT1 with professor Steppe, with the dual purpose of preparing him to use Classmentors in 2 sections of SMU IS303, and to get feedback about the portal. Feedback was largely positive and also very helpful.
- Students from Secondary Schools and Junior Colleges all around Singapore began using Classmentors as a portal to register for IDA Ace of Coders.
- Students from 4 sections of SMU IS303 began using Classmentors to complete in-class assignments.
- Decided to push forward team activities as a larger focus of the application's functionality.
- Implemented the first team activites, with team formation and team MCQ participation.
- Performed UT2 with 36 students, each performing the persona of both a student and an educator using classmentors.
Project Management
Utilising a non-relational database such as firebase has many perks, but with it comes certain downsides in querying. Take for example our formation of ranking tables within a cohort.
The code above shows a completely serial form of querying firebase. Each call for each of the cohort’s events and each of the event’s participants are blocking. This leads to a query-processing model as shown below.
One common response to this would be multithreading, but given that our backend is also written in javascript – which is by nature single threaded, we have to work with alternative solutions. The amended code looks something like this.
By launching new queries for event participants the moment an event data promise is resolved, we are able to mimic a multi-threaded environment. This code is highly concurrent, although not parallel, with a single thread handling requests concurrently by multiplexing and sequencing all js logic in a single stream of execution. The new query-processing model looks like this.
This change has lowered the load and processing time of the cohort ranking table from close to 30s to approximately slightly over a second after initial boot.
Quality of Product
Intermediate Deliverables
Topic of Interest | Link |
---|---|
Project Management | Minutes |
Metrics | |
Risk Management | |
Change Management | |
Project Overview | Project Overview |
Team's Motivation | |
Project Documentation | Scenario |
Prototypes | |
Diagrams | |
Technologies | |
Testing | Testing Documentation |