HeaderSIS.jpg

IS480 Team wiki: 2016T1 MonoChrome Finals

From IS480
Jump to navigation Jump to search
LogoBlackTall.png


NavHome.png   HOME

Icon5.png   OUR TEAM

NavProjectO.png   PROJECT OVERVIEW

NavPM.png   PROJECT MANAGEMENT

NavDoc.png   DOCUMENTATION


Screen Shot 2016-11-06 at 8.45.19 PM.png


Project Progress Summary


MonoCFinalProgress.png
Final Slides Deployed Site Video Pitch
PptPic.png MonoCDashboard.png MonoCVidPik.png

Project Highlights:

  • List of requirement changes
    • Added new 2 functions (Generate daily report, Configure settings)
  • UAT 4 is scheduled from 11 November to 14 November

Project Achievements:

  • Successful implementation of Reverse SSH, stable and working. (Technology that is built in-house, as there are no commercially available API for this)
  • Successful implementation of SNMP, our web application is able to monitor WiFi router health status too

Project Management

Project Status:

Screen Shot 2016-11-06 at 10.54.32 PM.png
S/N FEATURES STATUS CONFIDENCE LEVEL(0 - 1.0) COMMENT
1 Database Module Fully deployed and tested 100% 1 Completed
8 Dashboard Module II In progress 1 In progress
9 Database Collection Module II In progress 1 In progress
10 Mobile Responsive Module In progress 1 Will always revise the mobile responsiveness for every change in design
11 Optimization Module In progress 1 New scope proposed by Monochrome: Archiving; Half of Security Module moved to this new module.
12 Account Management Module In progress 1 "Register new user account" to be completed in Iteration 11
13 Dashboard Module III Scheduled for Future Development 1 To Be Completed
14 Downtime Scheduler Module Scheduled for Future Development 1 To Be Completed
15 Security Module Removed upon negtiation N.A Removed upon negtiation

Project Schedule (Plan Vs Actual):

PLANNED ACTUAL
MonoCTimelinev5.png

MonoCTimelinev6.png

Project Scope (Plan Vs Actual):

PLANNED ACTUAL
MonoCFunctionalities v3.png

MonoCFunctionalities v4.png

ITERATIONS PLANNED ACTUAL COMMENT
10 - Perform speed test, Configure settings for 4 groups & flapping threshold, Generate daily summary report Oct 2016 New scope proposed by Sponsor
12 UAT 4 Nov 2016 - Scheduled UAT 4 to 14 Nov due to sponsor unavailability

Compare the project plan during midterm with the actual work done at this point. Briefly describe a summary here. Everything went as plan, everything has changed and the team is working on a new project with new sponsors or the supervisor is missing. A good source for this section comes from the project weekly report.

Project Metrics:

Summary of analysis for the metrics collected. You may refer to another page for the details about the metrics and how it is collected.

Technical Complexity:

Area of Complexity Description
Pinging Servers One of the issues that surfaced while we were testing for fault tolerance came about due to the way fault tolerance was implemented.

Data from Raspberry Pis is sent through FluentD, a unified logging layer, which buffers and stores it locally in case of connectivity issues. This ensures that data is not lost even if a Raspberry Pi is disconnected from the internet.

However, an unexpected limitation came when a sensor was disconnected for an extended period of time. The buffer was full when the internet connection came back, and the sensor began sending it's stored records. The records were sent in chronological order, which meant that the data being inserted to the database initially was out of date. It took nearly a half hour for the buffer to completely sent.

The fact that the records were older meant that the sensor was labelled as "down" on the dashboard, it was technically alive and sending data.

To circumvent this issue, we developed a secondary architecture for data logging, which involved sending small packets of data to indicate that a sensor was "alive". These logs are not sent through Fluentd, thus elminating the buffering issue. The data in these logs is limited to a sensor's mac address and a timestamp, periodically inserted into the server's database. Their sole function is to indicate whether a Raspberry Pi is "alive" or "down". This information is displayed in conjunction with the Raspberry Pi's status.

With this new system, a scenario where a Raspberry Pi is sending its buffer would have a ping result indicating that the Raspberry Pi is still alive, despite its being labelled as "down".

SNMP Reasons why a Raspberry Pi might go "down" can be generalized into 3 categories: issues with the Raspberry Pi, issues with its router, or connectivity issues. The first can be easily discerned by the Raspberry Pi's status, but the latter two are more tricky. Routers often do not run the same operating systems as Raspberry Pis, making it harder to place custom scripts on them to allow collection of data.

The use of Simple Network Management Protocol (SNMP) allowed us to solve this issue. Assigning one of the Raspberry Pis to run the snmpwalk program provided access to information about the router, including CPU usage, temperature, RAM, etc. Users can then use this information to evaluate the status of the router, to determine if any issues with Raspberry Pis are due to the router as opposed to the rPi itself.

This is used in conjunction with a internet speed test. Similar to the abovementioned snmpwalk, a Raspberry Pi is assigned to periodically run the speed test, and the results are displayed on the dashboard. Poor speed test results could indicate that high downtime is due to poor internet connectivity, as opposed to issues with the Raspberry Pis or the router.

Quality of product

Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.

Project Deliverables:

List the artifacts produced for this project. The entire deliverable can be submitted in a separate thumb drive, web repository or place in the IS480 team wiki.


Stage Specification Modules
Project Management Meeting Minutes MonoChrome Meeting Minutes Page
Task Metrics & Bug metrics MonoChrome Metrics Page
Requirements Story cards CRUD Customer, Trend Analytic
Analysis Use case overall
System Sequence Diagram client, server
Business Process Diagram
Screen Shots CRUD Customer, Trend Analysis
Design ER Diagram 1, 2, 3
Class Diagram 1, 2, 3
Testing Test plan instructions
Handover Manuals User tutorial, Developer manual, Setup manual
Code client server
Deployment Diagram instructions

Not all parts of the deliverables are necessary but the evidence should be convincing of the scope.

Quality:

Explain the quality attributes (non functional) of your project deliverables. Have you designed the architecture, use a design pattern, etc? Does your architecture address scalability, performance, reliability, availability, fault tolerance, usability, etc. Does your design address maintainability, flexibility, configurability, etc. Be brief here but you can link to diagrams or code detail pages. Do not repeat the technical complexity part, link to it if necessary.

Deployment:

In an iterative approach, ready to use system should be available (deployed) for client and instructions to access the system described here (user name). If necessary, provide a deployment diagram link.

Testing:

Describe the testing done on your system. For example, the number of user testing, tester profile, test cases, survey results, issue tracker, bug reports, etc.

Reflection

Compile common lessons and reflection for the team and for each team member. Be brief.

Team Reflection:

Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki knowledge base and linked here.

Individual Reflection:

Ian's Reflection:

Yong Jin's Reflection:

Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.


BannerBlack-01.png