HeaderSIS.jpg

IS480 Team wiki: 2016T1 MARKSmen Midterm

From IS480
Jump to navigation Jump to search
Marksmen-logo.jpg


Marksmen-homelogo.png home

Marksmen-Aboutuslogo.png about us

Marksmen-projectoverviewlogo.png project overview

Marksmen-projmgmtlogo.png project management

Marksmen-documentationlogo.png documentation


Marksmen MidTermWikiHeader.jpeg


Project Progress Summary

Marksmen ProjectProg-Summary.jpeg
Midterm Slides Deployed Site
Marksmen midterm-presentation-slides.png Marksmen deployment-site.png


project highlights
  • 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


project status
Marksmen ProjectStatus Midterm.jpeg
Marksmen ModuleCompletion.jpeg


planned project schedule
Marksmen Acceptance Planned.jpeg
actual project schedule
Marksmen Actual.jpeg


project metrics
Marksmen Workload-metric.jpg
Marksmen Feature-metric.jpg
Marksmen Bug-metrics.jpg



project risks
Marksmen-midterm-risk.png



technical complexity
Asynchronous IO
Situation:

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.

Marksmen tech complexity 1.002.jpeg

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.

Marksmen Firebase1.jpeg

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.

Marksmen LoadinitialDateCode.png

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.

Marksmen Firebase2.jpeg

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

Marksmen Quality-of-prod.png


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
testing
MarksmenMidtermTesting.jpeg
UT1 UT2
Marksmen-Uat-logos-01.png Marksmen-Uat-logos-02.png



reflections
team reflections
Marksmen mid-term-Reflections.jpeg