HeaderSIS.jpg

Difference between revisions of "Final wiki"

From IS480
Jump to navigation Jump to search
Line 44: Line 44:
 
##Each of the 4 charts presented here are the key performance indicators healthcare practitioners would look out for.We want our  charts to help them in their decision making and based on feedback from our users we have happy to have met that goal.
 
##Each of the 4 charts presented here are the key performance indicators healthcare practitioners would look out for.We want our  charts to help them in their decision making and based on feedback from our users we have happy to have met that goal.
 
#Real users
 
#Real users
##We were lucky to get healthcare practitioners as testers for our User test.One of the main takeway was that the system is far from maturity.Hospitals would want a realistic setting instead of current ramdonmess.However,they are interested and have shown interest to take on this project for further development.  
+
##We were lucky to get healthcare practitioners as testers for our User test.One of the main takeaway was that the system is far from maturity.Hospitals would want a realistic setting instead of current randomness.However,they are willing and have shown interest to take on this project for further development.  
  
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Project Management</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Project Management</font></div>==

Revision as of 07:30, 20 November 2014

Code Blue 1.jpg
Home The Team Project Overview Project Management Project Documentation Project Resources

Project Progress Summary

Download our Final presentation slides: Final_codeblue slides

Step 1: Go to deployed site: dynamicqueuemanagement-smusis.rhcloud.com/
Step 2: Login with your given credential.

Project Highlights

  1. Following are the summary of the new scope added during the course of project.
    1. Login -Login feature is to allow user to have control over their setting and data. Previously without this feature, users of the system ended up overriding previous settings.
    2. User management(admin) - This includes the basic CRUD features(Create,read,update and delete). This feature is to allow our client to give access to users whom are interested in the product.
    3. Treatment Configuration(admin) - This is allow the admin to key in the tests that will be populated in user's dropdown as well as to select tests that he/she wants to appear as default in user's profile.This is to ensure users do not re-enter tests name and enters in legitimate tests.
    4. Datatable view of text file - Instead of uploading text file for data feeding,this new in-built excel type data table in our system allows users to copy paste data in.This feature would no longer require our client to share sensitive data file to users.Everything is in-built now !
    5. Run all strategies-comparison report -Previously,users could only run one strategy at a time with their parameters.That means they have to run 4 different simulations if they wanted to pick the best out of the 4 strategies. We wanted to enable users to run all the strategies at a single button and show them the results of it.Users can then pick the best strategy at a glance.
    6. Favourites - During a dialogue session with our client,we realised our client typically uses a particular setting over a period of time to run simulations.In order to save her from entering in the parameters such us test types and data reapeatedly ,the favourites feature was created to help her save time.One click and all the previous data be populated accordingly.
    7. Seeds configuration checkbox - Seeds play a big part in simulation as it affects the reproducibility and fairness of simulation results. With the seeds currently being hardcoded, this new feature gives users to fix/unfix random seeds.
  2. Significant time spent in database changeover and in exploring visualisation libraries
    1. Database was changed from MySQL to MongoDB - the reason for this changeover was we realised the bulk of the data we are storing are non-relational in nature, and therefore, it does make more sense in using a document-oriented database over a relational database. In addition, as the amount of data that will be stored are large, there is also the significance performance saving in terms of each write and read operations.
    2. Due to the steep learning of D3 data visualization library, team explores other alternatives such as Highchart, Chart.js, nvd3, Google Chart before finally settling on C3.js for data visualization.
  3. User interface went 4 major overhauls
    1. After each user test and internal review,we get feedback and suggestions to improve the flow.Right from the start,our aim was to give the best UI possible to our client.From portal based UI to step by step approach UI during midterms,we have finally designed a aesthetically pleasing UI that relates with users intuitively.Users can jump tabs and run simulation at a click.
  4. Simulation modelling
    1. The purpose of this animation is to allow non-technical users to visualise and see the bottleneck at a glance.User can playback to any timeframe and find out about patients status(happy,sad,satisfied),type of patients(entrant or retrants),their position and queue size at the hospital.
  5. Reporting tools
    1. Each of the 4 charts presented here are the key performance indicators healthcare practitioners would look out for.We want our charts to help them in their decision making and based on feedback from our users we have happy to have met that goal.
  6. Real users
    1. We were lucky to get healthcare practitioners as testers for our User test.One of the main takeaway was that the system is far from maturity.Hospitals would want a realistic setting instead of current randomness.However,they are willing and have shown interest to take on this project for further development.

Project Management

Schedule

Planned Vs. Actual project plan.

Project Iteration Overview.

Below is a screenshot of the detailed project schedule (our current iteration in progress). Click on the link to view our full project schedule .


Metrics













RACI metric - we use this metric so that every member in the team is in-charge-of at least one major module or task throughout the entire project. This helped to organise the way we keep one another updated with our progress and be more efficient during meetings. How it helps us to be more efficient is when, we can work simultaneously in smaller groups on tasks categorised by the modules in the table.


Refer to the first responsibility in the table:
For example, Basith as the Project Manager is responsible for organising meetings with supervisor, sponsor and industry users for application testing. Clarice will assist him in checking the internal deadlines for the project. And he will have to consult Chun Yang, our lead developer, if our development progress is good before we present our work to the stakeholders. Syafi, who is the business analyst needs to make make sure our application on production side is running well (90% bugs free). Not forgetting to always involve everyone in the team, Nigel and Faris will be kept in the loop, while they can still focus on their coding tasks.

Change Management

Risk Assessment & Mitigation

User Test

Technical Complexities

Understanding Simulation Model

This is undoubtable one of the most complex challenges the team has faced when working on the project. All members are novice in the world of simulation and have absolutely no experiences. Therefore, much effort was required to be spent on understanding the following questions:

    a.How does simulation work?
    b.What is the difference between Discrete Event Simulation and other types of simulation?
    c.How do we model one programmatically?
    d.How does one calculate the randomness factor using various kind of statistical probability distribution using historical data?

Usage of Design Patterns

Design pattern was used in this project to achieve maintainability, flexibility and scalability of our code architecture. On the server-side, DAO design pattern such as the Abstract Factory pattern was used to achieve easy migration of data source in the future, if there is a need to.

On the client-side, a variation of the popular JavaScript module pattern, in which we used the Revealing Module Pattern, is applied to enable modularization of code and to avoid conflicts in javascript files. This is especially important since we are developing a large scale javascript application, and are also using a number of 3rd party libraries. Usage of the pattern could also enable us to have an easier time maintaining and debugging our JavaScript code.

Hacking 3rd party framework and libraries

In the project, our team makes use of a new UI framework, Semantic-UI. As Semantic-UI is currently still at beta version, there are times where we need to make some custom hack at the libraries to achieve what we wanted. Some of the libraries we are using are also not properly documented due to being new, as such; we have to look at the uncompressed javascript file to explore the API that the libraries offered.

Calculation of coordinates for animation

Due to the way SVG animation works, co-ordinates for the final position are not stored for the object being animated, rather they stored the transform_x and transform_y of the object, which is how many pixel have the object being moved X and moved Y. Therefore, calculations have to be made to find out where the object is on the screen at the point before it is being animated. Positions for the objects are also dynamic, which means object should try not to overlap with each other.

Learning Outcome

Chun Yang - This project provided me the platform to further develop as a developer as I had the opportunities to try out various new technologies to build onto the development capabilities that I am already possessed with. The "simulation' nature of this project was different from what we were taught and that gave me a tough yet good experience

Faris -

Nigel -

Clarice -

Syafi -

Basith - Project management is not just about having a good plan, proper metrics and deadlines.Apart from keeping your supervisor and client happy,one has to make sure the team is happy ,driven and motivated as well. Practice flexibility,give them the space and breaks and most importantly read between the lines.After all,like machines humans can break down too!!

X-FACTOR