|Home||The Team||Project Overview||Project Management||Project Documentation||Project Resources|
- 1 Project Progress Summary
- 2 Project Management
- 3 User Test
- 4 Technical Complexities
- 5 Learning Outcome
- 6 X-FACTOR
Project Progress Summary
- Following are the summary of the new scope added during the course of project.
- Login function was implemented - the reason for implementing the login feature is to allow each user to have control over their setting and data. Previously, without this feature, users of them system ended up overriding previous settings.
- User management(admin) - Management of the user includes the basic CRUD features(Create,read,update and delete). This feature is to allow our client to give access to users whom are interesting in the product.
- 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 the 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 legitimate tests.
- Datatable view of text file -
- Seeds configuration checkbox - Seeds played 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.
- Significant time spent in database changeover and in exploring visualisation libraries
- 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.
- 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.
- Overhaul of Simulation interface
- Based on the user testing prior to acceptance, common feedbacks was the main interface showing the simulation animation was unable to display all information in a screen (without scrolling), therefore, effort was put in to re-structure the layout of the elements.
- Implementation of speed toggling for simulation with animation.
- Behind schedule for reporting module
- only 2 out of the 4 charts was implemented. The other 2 charts was pushed back.
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 .
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.
Risk Assessment & Mitigation
One of the requirements for this project is to have a real-time animation visualization of the simulation run, similar to what most commercial simulation software is capable of providing. As the team has decided our project output is going to be a web-based simulator, we decided to leverage the capabilities of SVG for the development of the real-time animation visualization.
Synchronize patient’s current X and Y position between events’ tween
Animation of the patient follows the following steps:
When an event is triggered, get the tween to move the patient to a particular destination. For e.g. A StartConsult event will animate the patient to a particular doctor’s room.
- a.Get the patient current X and Y position.
- b.Calculate the dX and dY using destination’s coordinates and patient’s current X, Y.
- c.Construct the tween using the dX and dY calculated.
- d.Add the tween into the patient timeline for execution.
The issues arose when intervals between 2 events are too close; the reason for it is because the simulation clock is always running faster than the animation clock
|Simulation Time||Event Triggered||Function Call||what does it does?|
|20||StartConsult||Get tween method is called||Animation clock start, takes 3 seconds to complete. Gradually change patient X and Y to destination coordinates.|
|30||EndConsult||Get tween method is called||Get wrong current X and Y coordinates as previous tween is still altering the coordinates.|
The solution here is to construct a tween object with no dX and dY value, and making use of an undocumented attributes and callback in the GreenSock library, we calculate and update the current X and Y before the tween is executed.
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
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!!