Project

Your group will design and implement a working app for the DHIS2 platform using the DHIS2 Demo Instance.  

You have substantial flexibility on how to design and develop the App as long as you cover the fundamental requirements, and your solution is sensitive to the user profile and the context described. You will have to prioritize what additional requirements to implement. You need to justify your decisions regarding design, functionality, and implementation in the final (graded) group presentation. 

You must use React, the DHIS2 app development platform, the DHIS2 UI library and styleguide, and the UiO git for development and coordination. Your group should set up its own git repository. The final app should be deployable to run as an internal app in DHIS2.

Throughout the process, you will be able to discuss ideas for design, functionality, and how to implement this with the group teachers. You can get help with the technical aspects of your project (e.g., APIs, DHIS2 app platform, UI library) during the seminar groups. 

Remember that you only have six weeks for the project work. Get started immediately and organize your group collaboration and design and development process. We encourage you to work through several iterations. In the first iteration, the focus should be on designing and developing a minimum viable product that addresses what you see as the most fundamental aspects of the case. Identify how to best divide the work among your group members to work as efficiently as possible while making sure that everyone is part of all major decisions. It is important to have frequent meetings and to do all larger ideation and requirements-definition-related activities together as a group.

You will need to strike a balance between what would be the “ideal” features to support the end-users, and what is possible given technical limitations and the limited time you have for the project. You should be able to reflect on your choices and what shaped them at the end of the project. 

The group project process

Week 41 – 43, and presentation 1

The first part of the project work is to elicit and define requirements for your minimum viable product based on the information provided in the case desciption, and get started on the development. You will present your preliminary ideas on the first group presentation in week 43. This is an opportunity to get feedback on your thoughts, clear up misunderstandings, and ask any questions you might have. Your presentation (max 6 minutes per group) should include:

  • An outline of planned functional and design aspects of your minimum viable product
  • Ideas on how to implement it including potential challenges
  • Demo of any implemented functionality and UIs (or prototype sketches)
  • Any perceived difficulties or concerns with DHIS2, its APIs, or the app platform
  • A project timeline and plan for organizing the work between group members, coordination and time management 

It is worth noting that you will be asked to reflect on aspects with your solution and the work process in the final graded presentation. Based on feedback from presentation 1, continue developing your solution. When you start exploring the DHIS2 API, you might discover that some of your planned functionality and implementation must adapt to the possibilities and constraints of the platform. This is a natural part of the process of developing in a software platform ecosystem.

Week 44-46

After the first presentation, you will continue working with the app. Most importantly, ensure a working version of your minimum viable product, before embarking on any additional features you deem relevant. Group teachers will be available to provide guidance in the seminar groups.

 

Final "push", demo video, and submission in Devilry - Friday 18th of November

After Friday the 18th of November (23:59), your group should not make any more changes to your solution on git. The one/two remaining days before your presentation we will have a look at your code.

You must also make a short (1-2 min) video demo of your app. You should narrate the demo by explaining the different screens and features of your app, either using voice or text. It should be a direct recording of the screen, not made by filming the screen using your phone. In the lack of any screen-recording software, one easy way of doing it is to open a zoom-room where you share your screen and then record. Then you’ll get an mp4 file that you can submit to us. 

Remember to:

  • Invite all group teachers to the git repository
  • In your git repository, you should also add a short readme file outlining:
    • Your app's functionality
    • How this is implemented (just a brief explanation)
    • Any missing functionality/implementations, and things that do not work optimally. 
  • Submit a link to your git repository and the demo video in Devilry before the 18th of November 23.59
  • The delivery should be made a 'group delivery' in Devilry, including all group members. 

Week 47: Final presentation

The final presentations will be held in week 47 on Monday 21nd, Tuesday 22rd, and Wednesday 23th of November from 08:30 - 14:00. All group members have to be present, but everyone does not have to speak during the presentation. Your presentation should be no longer than 10 minutes (we will stop you if you go over this), and we will spend approximately 8 minutes on questions and answers. 

In the presentation, you will 1) demonstrate the final product (your app), 2) reflect on decisions regarding design, functionality, implementation, and the overall process, and 3) provide a self-evaluation using the evaluation criteria This presentation will be graded (one shared grade per group) and counts 40% to your final individual grade in the course. 

Things you should cover in the presentation:

  • Live demo of the working app, covering all functionality

  • Provide a brief summary of the fundamental requirements you've covered and all additional features. Quickly justify the plausible utility of the additional feature you've decided to include.

  • Reflections upon the project design and development process (e.g., how you selected the additional features, prototyping, usability testing, coordination, time management, etc.). 

  • Self-evaluation using grade scale in the evaluation criteria