 Okay, so thanks and welcome once again. Let's see quickly what we did yesterday to try to arrive and put your mindset in Academy mode. So, Marcia, reminders. So as you know, we have questions and answers in the morning. Today we have one and it's been the last one if I'm correct because tomorrow well in the today the afternoon we're having the Ministry of Health from Rwanda who will present their implementation in the country. I think it's going to be really interesting because you will see that they have been using Android for COVID. So I think it really applies to what we have been seeing here during the week in the Academy. And tomorrow morning we are going to have at nine instead of the Q&A session we're going to have Pamod from Sri Lanka presenting as well their implementation of mobile nutrition. So some statistics. Sorry, yesterday this is what we saw. You have been submitting your exercises. So we went a bit from program indicators then we jumped into maps and GIS and lastly we finished with the aggregate data and some yeah and yes sorry I have a different set of slides and I'm getting confused. Okay, am I in the wrong place? No, no, it's just that I had hidden something in my sorry. So yesterday as you know we were having some issues with the server. We really were really sorry for that. We apologize. It seems that me as the responsible of the server did not set properly the roles. So I'm really sorry security lesson for me that I will be talking afterwards. But it seems that one user, one participant, we know who you are. We don't know but we could check this in the logs. We're not going to do it. Just for you to know, we know it's really hard to administer a server. Maybe we're not clear. We asked you not to touch since you were not supposed to but maybe you it's it's hard to remind it or whatever. We are too many administering the server. So it's it's okay. We just wanted to apologize once again and we hope it is fixed by now. We should not be experiencing the things that we experienced yesterday. So but I want to give an abstract explanation because this is a very good example for you guys. What we didn't do, we did not protect the roles. We protected our metadata. We did not protect the roles and then someone changed the roles so that you all could not like the protection for the metadata was not like applying anymore because the role was not protected. Someone increased the authorities of the role and then now you all could do everything. So it's very important to protect also the roles. So some statistics. So it seems that you are working well. We have a lot of attendance. People are marking their attendance, which is extremely good. But we're seeing that some people are dragging with the exercise submissions. We don't know if this because you're having issues with the exercises because you don't know how to use the platform. We're a bit surprised because the numbers are a bit low. So please, please, please come back to us if you need help. The idea is you finish the academy with the grading, with the qualification and for this you need to submit the exercises. So please do not leave them for the last day. Maybe you're super busy if that's okay. But after Friday, after tomorrow, we will not be able to help you. So you will be on your own for submitting the things. So please take advantage of today and tomorrow to quickly rush and present in what you have. Now we're going to show you something super cool because we think that despite all the errors we're having yesterday, this is where we have a team. And look at this. This is all of you from everywhere in the world. Marta has logged in with her user who's like, can access, she's like the super user so she can see all this. It would be like the data quality or the data checker. And we have people everywhere. And for me, the coolest thing, for me, I like the heat map. You're muted, right Marta? One sec. I want to explore the whole world before going to the heat map. I hope you cannot see yourselves. So look at this guy and say hi. We're there. When there's many people we need to see more, we have a lot of people to see. I think in Nigeria. So this is quite interesting. I think you guys can see yourselves but because Marta is one, it's above. She can see the whole organization unit three. She's able to see all this. Sri Lanka. I'm a bit worried for this person. If you need food, we can send you some, I don't know, something. It seems it's going to be cold there. Heat map. So the heat map was laid by Jose yesterday. You can see that it goes from blue to red. And you can see how Nigeria who conquered the server yesterday. It's already red where you will look from far away. Yeah, less activity in the Americas to the Norway. So I hope we fixed the problem. I have been able to enter two track identity instances this morning. So if you don't have local data, I would suggest you reset the app and log in again and then try to send your TEIs again and we will have a look at the map tomorrow as well. For now, we have 146 track identity instances because you are registering more, of course, but yeah, we will see. And just to end with this recap session, this is what we're going to be seeing today. We have not changed the times in general terms, but yesterday we made a little adjustments on the times per session. For you, it should not affect you if you have planned to be here from 10 to 2.30. Don't worry, everything is going to be there. But I said we might have shrink or enlarge a little bit. So if this doesn't map, in case you print your system, this is what we're going to be doing. Today, we're going to be talking about going mobile with four different sessions from four different perspectives. And there's going to be a nice surprise at the very end of the last session before we go for the presentation of Rwanda. So I think we can jump straight forward to the first session. I will be sharing my screen. Let me go here. So you should be able to see my screen, going mobile security implications. So I cannot see the chat now, guys. In case you have questions, please refer to Slack. And one of the facilitators will address them to me. I hope you can see the screen well. It's a bit small. But I hope it's enough. Let's see what we're going to be doing today in this first session. So it's going to be 30 minutes. Again, we're following the same structure. 30 minutes divided in two, 15 minutes of me talking, 15 minutes of you guys doing the exercises that prove the knowledge. And we try to apply what we have been learning. This session, I would like to extend a lot. I think it's really important to talk about security. I think sometimes, and in most of the cases, security is completely looked over. It should not be a case. We're going to be dealing with important data, confidential data. So we're going to be seeing that. I have divided this session in these four points plus the exercise. I'm going to be quickly talking about what is the CIA, not the one in the United States, but what is the concept in terms of data security, the implications that has going mobile in terms of security, how security is implemented at Android level in both our sites and your sites. And you will implement a security policy to apply a security model specific, which is what you will be doing in the exercise. So I don't know if anyone here knows about security. I love doing this session in a really interactive way where I can talk to you guys and you can ask me questions and we can have a nice dialogue and not a monologue. But if you have already heard about it, it's normal. It's one of the most common things when we talk about data security and it's the CIA three acts. Sorry, this is going to be spoken by. So when we talk about CIA in terms of data security is these three components here here called confidentiality, integrity and availability. And I am going to read it out loud, but I would like you to maybe think before reading the other part, what confidentiality is, what integrity is, and what availability is. I think confidentiality, it's an easier term, maybe the easiest to understand in terms of data security. But when we're talking about data, it's we have information as a concept and we want usually to transmit or preserve it to access later, but let's assume we have data. And when we talk about the confidentiality of the data, we want to know that this data is only accessible by those that it was designed to be accessible for. So if I'm telling someone a secret, the secret is confidential because what I'm telling to this person, it's something that I want it to be confidential. I think this word, it's similar in most of languages. So I think you understand. So confidentiality, I want the information to be heard or to be read or to be interpreted only by those who I wanted to from the beginning. Integrity might be a more difficult concept to understand, but basically it means that we want the information to be authentic, meaning that I want the information to remain in times of term or distance the same way that I was. So on top of me saying a secret, I want that the person who's receiving the secret, if I'm telling him like this or to her like this in the ear or I'm sending him a private letter, I want that information to be what I wrote and it should not be able, nobody should be able to modify it. The last thing is availability and I want the information to be there when I need it. So if I'm writing that secret letter to someone and I'm sending it, this person should be able to access the letter whenever he or she wants. If any of this principle does not comply or is not applied, we have broken what we call the CIA or the security threat. I'm telling you this, I know it might sound a bit abstract, but what I would like you to get from this is that this is the three things that you should be thinking about whenever you are designing a system or whenever you're using a system. We're many participants here and I did not have the chance unfortunately to talk to you all. I would like to understand what are you doing or your projects, what is your position, but as I cannot do it, at least what I can ask you is no matter at what level you are, in your hierarchy, in your company, whatever you are, but you can always analyze your system, in this case DHS2, from these three aspects. So if you're securing a server, try to see if what you're dealing with complies with this security threat. If you're using the server or the application, try to see if it complies with this. So it could be really interesting that you do an exercise that I'm presenting afterwards, which is this. Last year we did a quiz, I don't have the time to do it now. If you have downloaded these slides, please do not go looking into the last slide because that's the solution, but these are some questions that I would like you to think whenever we finish the session or as an exercise or tomorrow or whenever you want, but these are some things that I think could be thoughts that you could ask yourselves. And I would like you to review the previous slides and reading each of these sentences, see what are the principles that apply here and if I could be implementing this, if I'm checking everything. So for example, I will ask and I will answer the first question, but it says, your details to server is down due to a network or electrical issue. Yesterday, Abdul in the morning was telling us that in Afghanistan, they have acquired a server somewhere in Europe and sometimes they cannot access the information. So here if I could be doing this exercise and I would like to analyze from the security perspective, I would go and say, okay, is confidentiality being broken here or integrity or availability. And if I go back before and I reach the definitions of confidentiality, I can clearly check the last column availability because as Abdul was explaining is like, hey, I want to access my server and I cannot access my server. So the information probably is there and it's confidential. The information probably is there at compliance with integrity because nobody has modified, at least we hope this according to what Abdul was telling us yesterday, we don't know this, but what it's clear is that the availability principle is being broken here because when Abdul wants to connect the server, he cannot connect to the server. So this means that we should take actions to improve this thing. So at one point, we would like to hear not being able to mark anything because we are compliant or to check, but not cross. Okay, I'm leaving you this as an exercise whenever you have time, go through it. I think it's really interesting. And again, the last slide has the solution. If you look at them, it doesn't make sense. So please try to do it and then come back to the last slide. I wanted to explain that from your perspective, you might be thinking, okay, VHIS2, I think it's a secure system. It doesn't really matter if I'm putting Android phones or not. The thing is that because the nature of Android phones, it does really have a huge impact as I'm seeing here. And this is because, as you know, and I'm seeing here, DTI2 goes mobile and so does the data. When you're taking your phone and you have an Android application installed, the information, and this we will see in the next sessions, information is going with you. You're no longer anymore taking care of only one system as it was before that is the server, now you need to make sure that you're securing the server and you're securing all your devices that you have spread in your implementation. This means that if you're dealing with confidential information and you're using phones, that confidential information might be on the phone. So we're not going to go through this here. We don't have the time, but that's where you try to understand that putting Android in your projects, it has a really, really, really huge impact on the security, on the data security perspective. And this is because, as I'm seeing here, in a web implementation, everything is in the server. Probably if you're users or if you are the project planners, you don't have to take care about this. You say, okay, I'm hiring a company to put the server, I'm expecting them to be professional enough and have all the three triad elements complied with. So we will be having, they will be making backups, they will implement in HTTPS as that everybody was asking the other day that we will help them with this in the community. But from the server side, sorry, I'm having this, I'm going to mute my Slack sorry. So again, from the web server perspective, you might be thinking, okay, the server is safe. So whenever my users are using their computers to access, I don't have to worry because there's no security implemented on the computer, laptop, whatever. From the DHI superspective, I'm not going to jump into other domains from the IT. But the thing is when you add the mobile devices, the data is going with you. So as I said, if you're dealing with HIV patients and you were using the computer, once you were closing the computer, the information had been sent to the server, you didn't have to worry about or less. But now with the phones or the tablets, the information is here. So if I am registering an HIV patient and I don't have connectivity or I do have, but I don't sync or I don't wipe my phone, we are going to have the information here in case my device is stolen. I might have issues. I'm putting patients into risk. So from the data security perspective, we should care about it. But also because probably you are applied by law. So I don't know the regulation in your countries. I know a little bit about it in Europe. But there's something that we should protect. Because if not, the law can come against us and we must pay huge fines because we're not compliant with the regulations that are imposed by the law. So from us, from the facilitators and from the Android team that you have been seeing these days, we want to tell you that we are taking care quite seriously, we're taking care of security quite seriously. We're following for this, the principle of OSP, which is a framework, security framework, I'm putting here the link if you want to open, we need to download the slides. And I always wanted to mention here that this is the reason that you, for example, cannot take screenshots when you're using the production app. You can, we are sure that the network connectivity is kind of secure, at least from our side, it's up to you then to put the SDTPS, but our connectivity, for example, forbids using deprecated certificates. We are allowing people to include their devices. And if you try to install the Android application in a rooted device, you're going to get this message here. I don't know if anyone ever tried, but if you are a bit geeky and you have rooted your phone, whenever you try to install the DHS application, you got this. This is because us, we're doing our part, or at least we're walking towards there, where we keep improving security with every release. But there are things you can do as well. So we have done everything we could, or we're doing everything we can from our side, but then it's up to you to decide how to implement this. And one of the security things that you could do is, for example, in your application, you could set a PIN code. And with this PIN code, if we go back to the first slide where I was talking about the triage, there we'll be talking about confidentiality and integrity, most of all, because if I'm blocking my application with a phone, and I know you can probably put a button, and most of you here have a button in the, in the phone or a PIN code to access the phone, but because we don't know this, we're still built this layer of security on the application. So on the application, you could block your session. So it's not blocking your phone, it's blocking your session. So once you have logged in with your session, you could set a PIN code, and nobody will be able to access this information if they don't have the PIN code. Here I'm not being really strict because still if your phone was rooted, someone could access the device, or if your phone was not encrypted, as I'm putting here, they could access, but at least it's a layer of security we have implemented, and we're giving you the chance to implement it. So from your perspective of implementers or off designers of the Test2 systems, in case you're going to be putting Android, maybe you should do a thinking exercise and say, okay, is my data going to be taken care of? I'm going to be dealing with sensitive data? Yes, no. If yes, what is the training I should give to my users? What are the policies I should implement? There's one of things, PIN codes, and also when you're setting the server, because I told you we are taking care of on our side, but then it's you as implemented or as a group of people configuring the server. These are things that you can also do that will affect the information that ends up on your Android devices. So for example, here on this exercise that we suffered yesterday because we were not setting the server properly, but here on the server, one of the things you should do is make sure you're giving the minimal required permissions for that person who's going to be using the device to work with. So if a person is going to be capturing data for only one organization unit as shown here here on the right, so in Yadama, I should make sure that on the server I am putting only that organization unit on the user because the moment I give access to more organization units, I am breaking the principle of confidentiality. Even worse, if I combine this thing on the right side talking about minimal scope, and I give him or her more rights, I'm going to bring the other principles because this person could for example connect to an organization unit in Kakuwa and could modify the information. So the person who logically included or inserted the information in Kakuwa will find that the information has changed from what he put or she put. So have this in mind. There are things to be done on the phone. There are things to be done on the server side, but we're trying to improve the level of security as much as we can with the tools we have. That's a bit of theory. I know it's been a bit quick over all these things, but I hope it at least gives you a little insight or a little thinking about systems. And now what we're going to be doing is an exercise. So you are supposed to to secure your implementation. It's an easy exercise. So this is the introduction. We wanted to put you in the mindset of what's happening. And imagine now that the COVID campaign has finished. So you have been assigned an AC mobile user. And for the sake of reusing the resources and not complicating the setup of the server, this AC mobile user is not going to longer collect data. So they have gone to the field. They have collected all the information that they needed. This is all the exercises you have been doing in the in the previous days. But now these people, this user is not going to answer information anymore. He's only going to be consuming the information. So let's assume these people were spread around the country. Now they're back to their offices. And we would like them to be able to do their reports, but not modify because the information is already finished. We can assume that. And because we think that they have been collecting sensitive information, because we have been collecting patients of COVID and sometimes they can get stigmatized because of this, you have decided as a security implementer that you want also to establish a big code on the application level. So I'm not asking you to put a big code on the Android device, but on the DHS2 application. So this, as you see here, your task consists on converting the AC mobile into a read only. So you are supposed to go to the server side and modify this permissions. And then you are supposed to go to the mobile and set up a big code. Like this, you're going to be playing with both sides. So as an implementer, deciding to change the permissions on the server, and as a implementer, changing the things that can be done on the phone. This just does and a little help. But what I'd like you to is to put the pink code. This I'm not going to give you more clues because I think it's quite obvious. But then what you need to do is going to change the sharing settings of your program. And what I would like you to do is this, if you see on the left side, I am a data encoder. And I can insert data here. I'm putting, for example, the age 32 on the right side here. I cannot insert data. So I have been transferred to a data read only user. So what you need to do is submit four screenshots. The first one is you need to change the OU assignment of your AC mobile user. This is already done for you, but we still want to make sure that you know how to do this. So you need to go to your AC mobile user and show us that you know how to reach that step, how to assign the proper organization unit. And there is only one organization unit assigned. We have done it for you, but maybe someone in the system has changed this. Unfortunately, because of what I was telling you before, with the issue we had. But make sure you have only one organization unit and the one we assigned you in the Excel sheet. Then we need a screenshot from your server side as well, where we can see the sharing settings of your program. And then we want to see the screenshot on the phone where we see that the fields are great. So you cannot enter data. Basically, this one here on the right side. And lastly, we would like to see a screenshot of your phone with the print screen like this one. So that's it for now. I think you still have some minutes to do it. It's still 40. We started 45 minutes, so you have 10 minutes to complete the exercise. If you don't have the time to worry, you will have time during the day or during the breaks. And you still have time to submit before the end of the academy. So thank you very much. I'm going to go back to Slack. And in case you have questions, feel free to ask there or here in the... No, here you cannot. So feel free to ask questions there. Thank you very much. Thank you. All right. Here we are. For this session, we have a beautiful My Surprise because I'm going to start sharing my screen. Let me go for it. Share screen. Stop. So I'm hoping you can see my screen. As you can see, I'm not going to be here talking alone. We have Milagros as an extra facilitator. I think some of you might not know her. Some of you might not know her. But this session, it's going to take a bit longer than the other ones we have. And it's going to be 45 minutes. We have again divided theory exercise. But the theory is not going to be me talking for 30 minutes. Think God somehow because I'm sure you're going to be tired of listening to my voice the whole day. But it's going to be 15 minutes me and 15 minutes Milagros. And then we will do an exercise of 15 minutes. So this session, it goes about, it is about going about configuration. So we have forgotten even though we will never forget about security, but we have been talking about security. And now we're going to be talking about configuration. So here we're going to see what are the implications of using mobile devices in an implementation from the configuration perspective. We're not talking about security more, but configuration. So what are the things that I need to take care of as a implementer or as a person setting up the server when I am putting Android devices in my project? Then we will see what is the Android settings web app that if you have been following the community, you might know about it already. This is the part that Milagros will be talking about. And then you will have to submit an exercise for evaluation where you will prove that you have understood by steps what Milagros explained. You will have to set it up or take the screenshots as we have been usually doing. Again, we're saying DHS2 goes mobile and offline. I think you should know already that the reason what we are having Android devices is that because we want to be able to capture data offline. So this was I think one of the main reasons that the Android project was created, but it's that sometimes you do not have connectivity to the server. So you are supposed to take information offline in your devices. So if my device is this one here is a tablet, I do not have connectivity. It doesn't have a SIM card. It does have Wi-Fi. But when I'm going to collect data on the field, I might not have Wi-Fi and I might not have 3G signal or data signal. So there are some implications because DHS2 initially was only being used online. Then this project Android was established. And there are things that you need to understand that it will affect the way you set up your system. So you can use the phones and you can use them as you want them to be used. So we're going to be covering the offline data into here. We have already talked about data security in the previous session. And here we're going to be talking about these points here. So what are some things that you might not be aware of, but you should look into when designing a system that works for web and Android devices. So as said, offline data entry, that's the reason Android was conceived. So you might not have data connection. I mean, in some specific projects you will have. So you will be using the tablets because they are more comfortable probably to register data at a phone that are computer sorry, but the device are designed or they were thought about being able to collect data offline. So in case, because the device will not know if it's going to have internet connectivity or not, a small break. When I say internet connectivity here, I'm going to be talking independently about 3G data connections or Wi-Fi, okay, just to make it clear. So internet for me is both, if the computer, if the laptop, if the tablet can reach the server, it has internet connectivity. So let's just simplify that term. So because the tablets will not know if it's going to have connection to the server or not, what it needs to do is download everything just in case I'm going to be using. And this everything means programs, dataset, TIs. So every time you're doing a synchronization to the server, when we ask you, we have been asking you a, when you make a modification on the server, make sure you go to settings and you go to sync configuration. The sync configuration, what is actually happened is that your device, your tablet, your phone, your emulator, it's telling the server, listen, give me everything I might need to enter data offline. And with everything can be a lot if I have been set up to be a user that will need to enter data in many garages units, in many programs, or can be as little as possible, that from the security perspective is what we want. But the device will download programs, datasets and TIs. So it's important to understand, and we will have another session today talking a little bit about this, but it is important to understand that your tablet, it's going to download or your device is going to download as much as they need or they might need. And this is the might the important thing. So our configuration here can trigger getting too much information, which is going to make your device slow in the initial synchronization. And it's going to be as low probably afterwards when operating because it has a lot of information data stored. So as I'm seeing here, limiting the scope will impact what is on the phone and how long the metadata thing will take. Again, if we go back to security, because let's assume we will never forget about security anymore after the lesson or session we had, if I'm putting information on the device and my device gets lost, I have much more information that I should. Let me mute this, sorry. So the device gets as much as they can. And this is going to put, how can I do this? So initially, by default configuration, and Milagros will talk a little bit more about this, but initially what is going to happen is that whenever your phone or your device connects to the server, it's going to unlock 500 TI's and 1,000 events per organization unit. So in these exercises we have been doing this week, you were supposed to be assigned only one organization unit. And that is the reason you were downloading all the things attached to your organization unit. And because your TI's didn't have much information, desynchronization was quite quickly. But at the beginning, some of you were complaining, hey, but it takes super long time to make desynchronization. Well, this was because someone had misconfigured. So you were downloading 500 TI's, 1,000 events for everything for each organization unit. On top of that, you're going to be downloading all the metadata associated to that. So if there were 150 programs, because we created 150 programs, and you had access to all of them because of a misconfiguration, you were downloading. On top of the TI's and the events that your colleagues or the other attendees had uploaded, you were also loading all the information in case you were supposed to update or insert information in any other program. So that could be for the data view. And for the data entry, what I'm seeing here is that you download the information you might need. And you're going to reserve. So let me roll back a bit how to explain this. Whenever you're inserting something in the server, the server assigns you a unique identifier. If you have been playing a bit with the API of the server, you know what I'm talking about. If you have not, don't worry. Just assume that everything that goes to the system needs to have a unique value. This unique value, it's something that the server gives you when you're ever inserting information. So I'm registering a new patient and this patient gets this code, this unique value. The thing is that, again, we're going offline. So my device needs to know that I'm going to be inserting things in the server. And because it cannot know if I'm going to be inserting one people or 1,000, we assume and we made a compromise and we said, okay, we're going to assume that one user per device will upload likely or at least maximum 100 values. So this means that every time you contact the server, the server is going to tell you, okay, just in case you need, I'm going to give you 100 values for you to be able to work offline. And then you give me these 100 values when you have finished. If at one point you don't have enough, I'm sorry, but you will not be able to insert more, more, more track identity types, elements, instances. But if you have connectivity, don't worry, when you contact me and I see that you don't have many, you can get more. So don't worry. So on that, from that perspective, you're safe. So if you go to your application and this part of the, oh, wow, if this part of the exercise, you will have an option or you have an option to see these reserve values. Again, Milagros will be talking a little bit more about this. But just for you to understand this, when you're going offline, you are downloading everything and you are reserving values to the server, you're saying, hey, just in case I need to get to insert values, give me 100. This is a question that the delivery asked in the morning about generated IDs, which is linked to it. So if you have been playing or you have been setting a server, it might happen that you have decided that you wanted to have a reserve ID or a generated value, let's call it. So for example, when I'm registered a patient, I want this patient to be called A001. And then the next patient is going to be A002. And if I insert 9999, the next one will be B001, B002, and so on and so forth. This is what we call auto-generated values. So this is something that when you are setting data element with this kind of type, with this pattern, the pattern you can play with, I'm putting here an example that I will read out. You're saying, okay, whenever I create this track entity type with this instance, put this auto-generated value. So for example, in this one here, we have created a pattern that says, give me the three first letters of the organization unit code, give me the current date, and give me a sequence. The sequence means that from 000 to whatever. So if for example, I am creating a patient in Alcalia, CHP, whenever I insert this patient, the system is going to generate this code for me, ALK. So the three first letters of the organization unit code plus the current date, years, and months. So 11, sorry, 2020, so year, months, 11, little dash. So here, I'm sorry, I'm missing here a little dash. There's a dash missing here. And then 0001, so this equation. Now, if you are awake enough, that I hope you are, and you think about this and you think about what I have explained before, your brain should start breaking and you say, hey, but what you told me before doesn't make sense because you're telling me that every time, when I'm going to take data offline, the server is giving me reserve values in advance, like I was saying here. So it's going to give me reserve, 100 reserve values. But here you're telling me that the system creates this value. So what happens is that Android tells the server, okay, you know what? I have this pattern. I have this pattern. And I might enter up to 100 patients. So give me 100 values, matching this pattern. So here, for example, if I have simplified the pattern for the sake of the explanation, and the pattern now has become current date, years, month, dates, and the sequence. And this will most likely not work because what your Android phone is going to do today, 26th of November, is going to get these 100 values. So 2020, 1126, Tire, I'm missing it here. Sorry, I will correct that. 001 to 2020, 1126, 00100. If I'm going offline today, so if I'm leaving my house and I don't have connectivity with my tablet, tomorrow, when I insert a patient, my patient is going to have the wrong ID. And actually Android is smart enough to know about this. I will say, I'm sorry, I'm sorry. Yesterday, you told me you wanted 100 values and I gave them to you. But the thing is today is 27. And you want to insert and the value you got, the generated pattern is not working anymore. So your tablets or your device is going to say, your values have expired. I'm sorry, you need to contact the server to get more values. I don't know if this makes sense or not. Anyway, here in the link, you have a quite well explained page where you can see this. And this should make you think that whatever you are designing patterns that might have been working forever in the server side on the Android because of this offline concept, it might not work. So here in this website that I'm listing here, we give you some recommendations. And in this case, for example, we'd be not using the date. So it will be the pattern. Use year, month, and the sequence. But then if you are retrieving these values at the end of the month, again, when you start a new month, they will be expired. But at least you have bought yourself this year. A really quick explanation before I give the floor to Milagros. I'm not going to be covering here because we do not have the time, but I want you to know that Android allows you to make synchronization by SMS. This means that sometimes you will find devices, not like my tablet that has no SIM card, but you might be out there on the field where you have 3G connection, no Wi-Fi, but it replaces where you do not have even 3G connection, but you have GSM connection. So you can send SMS. So just for you to know that there is a way to set up your phones, of course, it requires some setup at the server level, but you could synchronize your phones with SMS. This is not something new. I know that the previous applications were doing this, the data capture, I think, or I don't know the names. Again, it requires configuration on the server. Your phone will set up and will sync instead of by internet. It will compress everything in SMS. It will send to the server. If you use the application that is on Google Play, this is not working. And this is because we're having an issue with Google and this is that they think that in order now to submit applications that can use SMS functionality, you need to pass a specific requirement that was still working on it. So in the future, we expect the application that is on Google Play to have this capability, but now it is not. So it's the one that you will find in the app. Again, more information on this topic down here. Now I've been talking for 15 minutes, 16 actually. I'm going to give the floor to Milagros. Milagros, welcome. I don't know if you want me to be sharing these slides or you want to do it. I think you can unmute yourself. So please talk to me. Hi, Jose. Hi, everyone. Yeah, if you want, I can share my screen. Okay. I think you should be able to do it. You should be able, right? Okay, give me a second. Absolutely. Let's continue with the recording. So thank you. First of all, Milagros, very much for being here. The first yours. Okay. Thank you so much. Again, hey, hi, everyone. I hope you are enjoying our academy. I'm Milagros Rodriguez. I'm Peruvian, part of the Android team. I'm a friend and developer, and I was in charge of developing the Android settings web app. So hope you keep enjoying our presentation and let's start. So what is the Android settings web app? The Android settings web app, it's a web app that allows us to make the configurations for the data and the data, such as defined when we want to synchronize it, run some tests. Milagros, sorry, I think you are not sharing because we're seeing only not the presentation. So we're seeing the presentation, but I think you click on present, but maybe another window came because I think you want to be already on the first light, right? Yeah. So we're only seeing, so if you click on present, so you speak. Hello, hello. Okay, but it says that I'm sharing. But can you click on present, upright? No, I mean, I mean the presentation upright. I think it's where we're seeing now your Google. So let me say the present button that is close to the share button in the right, upright. We're in the right, right, right. Move them out to the right, right. Right. More right. The thing is, I think you have one screen on top of the other one. So go right, go right, keep going right. Do you see full screen or you don't, because we don't see full screen. And I think you're seeing full screen. Okay, I have mute, I'll stop video security participant, sorry, new share, files share, remote control, annotate. No, but if you go there, so if you click on present, but we want you to present the, yeah, stop, can you stop sharing? Participant suggestion. Okay. The thing is, I'm going to show you, because I think at one point you click and we didn't see. So you were here, but so here up here, present. We were not seeing, we were not seeing that screen. We're seeing only the small one. So if you don't see it. Because if not, that's a move. Yeah. All yours. Sorry. Oh, okay. Okay. Okay. Give me a second. Okay. Now I'm sharing. Here. Present. It's not showing. Is it showing? No, no. But I click on present. Maybe it will be better if you help me. Okay. Yes. I'm going to share this slide. It's okay. I'm going to share this slide. I'm going to read you next, you tell me next and I will, I will be doing it. Okay. Maybe, maybe better. Okay. Okay. But we can go back. So as I was saying, and I set this up, it's a web app that allows us to create configurations, define the data, metadata that the Android app will synchronize on the device. In addition to that, we can run some tests of the size of the data we want to synchronize for user and all the configurations that we are creating will be safe in the data store. That the store is a storage space that allows us to save and access data in JSON format. Next, please. Okay. Currently, only users with all the authority are able to define these configurations parameter. So we have a small chart here. Can we go up? We said that first, what we can do if we have a user with all the authority, we can do a first time setup. So this means that we can save all the default values at the beginning. And then we have also, we are able to edit and save general settings, program settings, datasets, and run the user's interests. But if you are a user with not all this authority, you cannot be able to do these three, sorry, four options, the previous four options, but you will have access to the web app in a read-only mode. And you can be able to run the user's interests. The web app has four sections and three of them are configuration. And the last one is the user, run the user's interests. So now let's start with program settings. Sorry, general settings. General settings is the first section. And it includes configurations such as how often we want to synchronize metadata, data, the phone number, reserve values we want to download per track identity instance, attributes, and the options to encrypt or not the device database. Let's be clear about this option. It's a critical action, but also what it's important to remember is that it's, it will only affect the device database and will not affect at all your DHS2 database. So it's two things. Then we have disable all settings. This is our last option in this section. And if you click this button, what you will be able to do is to remove your arrays or disable all your, all your settings, which means you will remove everything from general programs and dataset settings. So always be careful when you are, if you decide to click this. So our next section is program. Programs has two parts. As you can see, we have a title that says global and the other one is specific. So what means global is that everything that we create here, all the configurations that we create here are going to be applied to all the programs that the user has access to. And these settings could be, for example, the maximum track identity instance, or events that we want to download, the, how often, like the, the update period. And also we have a setting level. The setting level means if we want to create this configuration per program, per or unit, or both, per program or unit. So this is the level of configuration we want to create. But what happens if we don't want to, if we want to add a configuration specific for a child program, or that it's kind of different from the global one. So that's the reason we have the second section. And it's a specific program, a specific download setting. So what we are going to do here is that we have an add button. We click there, a list of programs will be, will appear. And after we click in a program, it will show a settings taking into account the program type. What means program type? It means if it's with or without registration. And then we have, after we add programs, specific settings to a program, a list of these programs will be appeared here. So now let's move on to datasets. Datasets, it's pretty similar to the previous section. So we have also two sections, one is related to global and the other one is specific. So datasets, the global datasets also will mean that whatever we want to apply here, or here the configuration, the setting that we can apply here is the number of periods to download. So if we add, or we change this number, it will apply to all the datasets that we have access. And if we don't want that, we want to create a specific configuration for a dataset, we can go to the second part. And this is the add button. We click on there, dialogue will pop up with a list of the datasets. Don't worry, I will show you later in a demo how to do it. So then these datasets, you choose the dataset that you want to give a configuration. And it will also complete with a default value based on the period type. Period types could be quarterly, monthly, weekly, yearly. You previously have decided what kind of period type your datasets will be. So now that we already create configurations, we decided what we want for our datasets, our programs, and in general what we want to do. We can start testing if our parameters are good or make sense for what we're aiming for. So that's the reason we have this last part that is user scene test. So a user scene test is an option that gives us the opportunity to check the amount of data a user will synchronize on their device. So one thing that is very cool about this part is that we cannot only run this test on the user that it's currently loading, but also in other users. So what we can see here is that our test will show us things like our units that we have access to, then datasets, programs, program rules linked to one of units, and the metadata and data don't lose size. So don't worry, I will show you later a little more about this. And if you find it that, okay, it's cool this information, but I want to try it. I want to try myself how it's working so we can install it. These are some steps of how to do it. First, we need to go to app management. Then you will find a sidebar and a section that says app app or app store. Click on there. You will find a list of all the apps we can download or we can install it. So try to scroll down till you find the Android settings app. Click on install. And that's it. So it's very simple. If you want to check that the app has been installed, just go to standard apps on the sidebar and you will find it very listed. So that's it. This is our web app. I hope you find it interesting. So now I'm going to go to show you a small demo of how to do it and how to interact with our web app. So just give me a second and I'm going to present now. You will share your screen, right? Yeah, I'm going to share my screen now. Am I sharing now? It's okay? Yes, now it's perfect. Yeah, excellent. This is right. So this is how it looks our Android settings web app. As I told you before, if you have an user with all alternatives, you'll be able to start the conflict, to set up the first default values and you'll be able to edit and save. So in this case, I have this kind of user. And this is how it will look the first time you start using the web app. So I'm going to click here, set default and save. When I'm clicking here, all the default values will be saved in the data store. And now we can start. We have our four sections, general programs, data sets, and the user scene test. Well, we can, this is how I was, this is what I was talking before. So we can change the how often we want to sync. Maybe I want to add an SMS number. Try to be sure that the information that you are entering here is something that you are really, that it's related with what you want to do. And now I'm just giving numbers that are not real. But if you want to do this, just try to think before what is your plan. I'm going to say that I want to encrypt the database. So I'm going to encrypt here. And only after I click save, the all the information will be saved in the data store and you'll be able to look at this in your device. So I'm going to click save here. Now I'm going to programs. Programs, as I said, I wear two options. I want probe unit. I'm going to add a program. I'm choosing case events. Maybe I want probe unit. And I want maybe less event to download. I'm saving. I want also COVID area. But as you can see here, these options are kind of different from the previous one. This is because, as I said before, the options that we present per program is related to the kind of program type it is. So when it's for, some options are for programs with registration and some other options are for without registration programs. So I'm saving a little bit here. And as you can see as well, here, there's a list of the programs that I'm adding specific settings. Also here, the summary of what I've already created, the parameters that I added. And if I want to edit or delete this specific row or the specific program setting. So I can edit here. Now I will not be able to change the program, but I can be able to change other parameters. I will save it here. Maybe delete this one. I will save it. It's important to always save it before leaving this section. Data sets. We only have access to change here the number of periods to download. So I want more data sets. Here, I only have two data sets. One here. And as I told you before, it will have to complete with a value that is by default related to the period type. I will save it here. I will also add this one. That is for a weekly period. And as I was saying before, it's important to always save. But what would happen if I'm leaving this section without saving? These other will pop up. So it says that if you try to leave this section, you will lose all your changes. So in this case, I don't want to leave my changes. So I will click. Oh, sorry. I lost my changes. It was cancelled. So I will just add one again. There's one. Now I will save. Sorry. So basically, I already created some configurations for my devices. I added general program data sets. So I can test now. As you can see, my user is Milagro Rodriguez. But as I was saying before, you can not only test with your user. You can also test with other users. So I will try to test with another user in this case. Andres Miguel. I will create here. And what is running this test? You can see that I will have information such as all units, data sets, programs, program rules. And these are some values that we recommend as maximum values. So it's not running. It's taking some time to run a lower test. And that's it. So we have some values. Here are some values that are highlighted in red. This means that alert, these numbers are greater than our recommended maximum values. So here it's way more greater than our maximum value. But it's a good way to know, okay, our configurations are good for what we want. It's going to perform well. What will happen if I am having these kind of numbers? Should I change something to make it not suffer our device? So our device not suffer. What should we do? So this is a good way to test. So I hope you enjoy and you find it helpful. And I think this is everything coming from the Andres Atins web app. I'm not sure if you have any questions or something that you want to know. But this is our web app. I hope you can use it and find it helpful. As I said, thank you for your time. And this is it from me. Thank you, Milagros. Thank you very much. If this is there any questions, feel free to put them in the Slack and Milagros is going to be there answering your questions. Let's jump quickly to the exercise where you will prove the knowledge you have acquired from Milagros presentation and from my previous one. So Milagros, I'm going to take, I'm going to share my screen. Yeah, thank you very much. So in this going mobile configuration sessions, we are going to have this exercise. So this is the kind of setup. So after all the tests, so you have been doing some tests. Marta will explain this a bit later in her session. But let's assume you have accepted that you want to have Android devices in your DHS2 implementation. So you have to work both on the server side and on the mobile side, on the site, sorry, that's a site. So you want to make sure that your server side is properly configured and that your Android is properly configured. So you need to make sure that the mobile before going to the data capture trip, you need to make sure it has or the device has enough values. So that's why you will check that the Android settings web app, it's correct for your, for your program, and you will refill your Android device with enough reserve key values, as I was telling you before, before going on when synchronizing the device gets everything it might need. And if you enter values, these values with your task, it's very fine. The Android settings web app and insert several TI's. So here, if you see on the left here, I have 99 reserve values. This means that I have inserted one TI, but I can come to the refill and I could tell the server, listen, I'm going on my field trip, give me as many as I might need. Again, the default value is 100. So I'm going to get 100. So if I click the refill, the server will keep it. So your task is very fine. This and sending that screenshot, as I will show later, and doing a refill. There is an asterisk here because the Android settings web app, you are not going to be able to modify it. And the reason you will not be able to modify it is because if the 75 people of you who are here modified, it will lead to an inconsistency because only the last person who writes will, those changes will be pushed to the server. So this I advise you or encourage you to test on your servers, testing servers, of course. And here, you can still do the viewing. So you can verify that your settings are correct. So we're asking you three screenshots. The first one is that we, you prove that you know how to find the Android web settings app and you can show us your program on the screenshot in case there are too many. We want you to show us the TI refill values before refilling so that you have inserted one TI. So this value has decreased and then that after pressing the refill, this value goes back to the max number. That's all. Thank you very much. You have some minutes to do the exercise before the break. Sorry, we extend a bit more. I think if I'm not, yeah. So we'll be back at 45. I think, yeah. So in seven minutes, so we're taking the break, but if you want to work on the exercise, I'm going to be here taking questions if you need. I think me is also going to be there. So feel free to go to the Slack channel and present your questions. Thank you very much. So people is asking that they cannot, how they can select a program and entering data there. And it's, you cannot, okay? You cannot because as Milagros said, this only works for users that has the AOL authority. And you don't have that authority. So this app is supposed to be used for just the super admins of the system. But what you can do is just to read the values that are already there. But you cannot modify or edit any value. Annalisa, someone can make Marta co-host? Yes, sure. Thank you. Okay, thank you. So José Milagros, we have some questions in the channels. So Sergio, for instance, is saying, he's seeing the message that you don't have authority to set up the Android settings to this instance. So I told him he doesn't have the all permission in the server. But then he says, I'm missing something because I cannot even see the settings. I'm not able to pass through the first time set up screen. So he feels he cannot do the exercises. If he try, if he reloads and try again, because now there should be data storage in the other store. So this would be okay. So please reload. And then we have Mike in announcements also saying, I tried setting up the Android settings web app in our server. However, it prompted me for a username and password. I tried using my credentials, but it didn't let. So this is your own server. It's not the Android Server Academy Server. So I imagine, do you have all permission in this server? Mike, I'm going to type it here in case you have a question for Milagros. What is the logic of having a separate section? This is from Abdul, a separate section for user sync test. If we can show instant error or alert message in the sections where we put the values, you want to answer to that Milagros? Maybe Milagros took a break because he just finished. But I think Abdul, we need to make a simulation with all your configuration, because the values that you put in one specific program, maybe are okay. If we don't mix them with the other. So the simulation for your user is combining all the configuration for your programs, datasets, and that's a separate process that is run in the end when you finish your configuration. I don't have a better answer for that. It's just something we cannot be triggering with every single configuration. So Deepika says, I cannot specify my program as the access is not provided. Yeah, you cannot open your program because you are not able to modify anything in the datasets. You only can view. So everyone can only see, right? Yes. So you are supposed to... You can run the test in the section of the testing section when you are entering a username and then you can, it will show up the number of our units, the size of the metadata data which is loaded, but you cannot... The rest of the application, you only have few permissions. So in the datasets, you were asked to verify your settings. As Milagros was explaining, as Milagros was explaining, this is like a hierarchy thing. So if you do not have a specific settings for your program, then the general ones are going to be applied. But if you want to make sure that it defaults to what you can do is you can put, as Jose is saying, you can go to the tests of the user. You can put your mobile user, not the admin, and tell us what would happen. So any screenshot of those two would be valid because you're saying, okay, there are no specific for my program. So I'm using the generate ones. Or I can make a test and I will see that in this test of the user and downloading these specific things. So it's normal that they see the things grayed out because of the permissions. So we had George, sorry, I'm trying to follow George Maguire saying not able to see grayed out. So George, is the permissions thing or is something else you are not able to see? How to refill the numbers? You refill from the device, no? You refill from the Android app, you set in the set in the web app, you set the number of values that you want your device to be pre-saving. But the refill, you make it in the Android app. Submit the screenshot of the Android web settings up for your program. What can I do? Maybe the wording? Yes, maybe I should have changed the wording of that. I thought that would be explanation here could be enough, but I'm going to change the slides and I'm going to re-upload the slides to the there for those that cannot attend on live session. Yes, maybe we have to change the submission as well. But please, Chamiqa have replied to you. What we expect you is if there's no specific for your program, this means that there's no for your program. So you are going to be applying the ones inherited from the general settings. Okay, I'm going to take this other question because maybe it was not clear and I will do it. Okay, thanks Chamiqa. Deepika is asking, she says I cannot refill the Android app. Okay, I'm going to go back to my slides and I'm going to show you, let me present the screen, share screen. So here I'm telling you exercise that insert several TI's, verify that the reserve value is decreased and refill those values. So of course, if you already have 100 values, your device has already contacted the server initially and has said give me as many as that might and I always will say might need. So the server, because of the default configuration, provided 100 values to the device. Now the device, if you click on refill, you will do a refill, but the server will say, hey, I gave you 100 and you have not just not even one of those 100. So what do you want to refill? So my car is the gas is full and I try to put more gas is going to be full already. So I cannot put more gas. But if I consume some of those values, I will be able to refill. In order to consume those values, what I'm putting here is insert several TI's. Actually, what would be nice if you put, if you said one TI, you go there, you should, you will see that the value becomes 99. If you put another TI, it will become 98. And then when you click refill, you will see how this book becomes 100 again. I hope I answer your question. Yeah. Some of you are so, so because I think yes, okay, it doesn't matter. It depends on when did you sing with the server yesterday. There was a different configuration as from now. As long as you provide one screen, so that shows that you have less values. And then when you keep refill, there are more values, it proves that you have understood the concept and you can refill the values. So in my program, for example, I have 200 because yesterday when I sing, the settings were 200. I think some people now are saying that they have 80. It's okay. Just insert some values and go there and see how this decreases. So it's actually three steps, but two skills. First check, insert TI's. Check how it reduces and refill. Thanks, Mario. Hi, May I think that I will share the screenshot showing he can see a lot of reserved values. Did you address that? No, but there I guess that, I mean, this is probably from the wrong configuration from yesterday, but I don't know what is your student number. I guess it's 29 because actually if you see. No, it's not from yesterday. I just looked in and I still see a lot. And well, in this specific case, in the screenshot from Derebe, I can see that in many of them, you have seen reserved values. This is because you have no access to write on those organization units. We should verify if there is a misconfiguration, but if your program is the 21, sorry, the 29 or the 51, you will see that you should be able to add and indeed decrease those values. I guess you are 29. That's my guess because you have already decreases that from 200 probably to 197. Yeah, yes, you see, so you're 29. So this means you have three TI's and you have not performed refill. If you would go to that screen that you're showing and click on refill, you will see that it comes back to 200. So if you see more, just ignore them. Focus on the one from your program with your student number. Guys, I have several people asking me in private. I'm sorry, I cannot address all the things you're telling me in private. I have too many messages. Please make sure you put them in the general channel because we have many more facilitators there that will be able to help. When I'm giving the training, I'm giving their nice and I'm Martha, so I will jump to the channel. But whenever I'm giving the support, the session, if you take advantage that there is the channel where there are other facilitators there, you will get your answer much faster. And if you see that we are not replying, please ping us because there is a huge stream of messages. So say, Jose, Martha, Hayden, Minagros, Victor, Pablo, and then we will see the question. We still have questions like, I see reserve values is set to 18, not 100, for Bless, for Deepika, it says 199. As Jaime said, just prove that you enter one TEI and the number decreases and then you refill and the number increases. It's okay if the number is 80 or the number is 100. We just need to see that it decreases and increases when you enter a patient like mine now says 80. So I can register a TEI, it will say 79. And then if I refill, it will say 80 again. So it is sometimes a bit confusing because we are all touching the server. Like my device was synced, it said 80. Now I enter one and now it says 159. So probably it's not being updated. But now when I refill, it keeps saying 159. Guys, I think we need to check what's going on. I want to sync again. I did the exercise yesterday. I think the problem is that we have wiped the configuration from the website itself. So did you sync before? I did, but I'm syncing now as well. I just logged in. Also what can happen and this, I don't know how it works. The thing is that for you guys to understand, yesterday there was an Android web settings up that has been wiped out. So now with the new settings, I'm not sure that the ones you had, so imagine here in the one from yesterday for the program 29, I had something specific. In the new one, this is not present anymore. I don't think my device is going to receive anything because the 29 is not there. So I'm going to use the what you could do in this case is reset your app. So it's like here completely out perform login and you will have the new values for everything. I'm going to do that. Meanwhile, I think I can say that I was checking, we had a request for a flag on day two and then it was posted. I think it was better, but maybe I'm wrong. So Patrick and then I followed up. It was posted in the community. Thank you. I followed up with the team and in 235 all flags in the world were added and they were back ported to the previous versions, but to the last patch version. So in the version we are using, we don't have the flag in this case. It was for Dominica, but if you go to the last demo server 235, you can find it there already. So just for all of you to know that from probably October, all last versions of the HHS to have all flags in the world available. Now, if it's an NGO or an organization that needs a logo that needs to be requested. And I keep logging in. Sorry. Robert is telling us that the window is grayed out. So Robert, as Milero is saying, that's correct. You just need to explore. You don't have permissions to change. I feel free to start whenever you feel like it. Okay. Let me try the exercise. Have we reminded today to everyone to mark their attendance? We haven't actually. I thought it was quite clear from all the messages. Please, the attendance, please, the feedback. And I'm sorry, I forgot. I realized that I forgot to mention the feedback from yesterday in the recap session. I completely oversaw it. I'm really sorry. We have received the feedback. We really appreciate tomorrow. We will talk about it. Thank you very much. Sorry that I forgot, but it's been received. Okay. I am, I'm going to start, but for, for you guys to, to, if you want to research or investigate while I am presenting facilitators, I think I got 18. I didn't enter anything. I refill and I have 100. But in the sessions guys with your suggestions are the mistakes I made. So it is clear on the sessions for those that are attending offline. So, okay, I'm going to share my screen. Is it Alice or, or Martin, if you want to resume the recording? Okay. Then I can start. I want to silent notifications. Okay. So hello everyone again. We are starting the third session of the day. Jaime, please remind me until what time do I have? Because we have started late, right? You have until 1210. What? Okay. Really? Okay. No, but I mean, I think it's that we were, we were five minutes in this and we didn't give enough time for the exercise. So I'm going to adjust. Yeah. Okay. So, so this presentation is about the, your implementation is about your project. It has two sections. It had one about the life cycle of the project and then one that goes more specifically in one of the sections of the phases of the project, which is the testing. So probably I'm going to reduce that second one, but I'm going to leave all the slides there so that you can have it as a materials or as information for you. In any case, I will still go to the key messages. So don't worry about that. This is, these are the six phases in which we have conceptualized an implementation project. This and everything that I'm going to say in this presentation is not set in stone. It's not a magic formula that works for any project. We are working with generic assumptions and generic recommendations, but everything depends on the project, the size, the setting, the team, the budget. So just take things as generic recommendations. So we are going to focus first on this part, the server configuration, internal testing, user acceptance test and field testing. So all this is your testing, is your configuration and testing. And why are we focusing on this? Because these phases, all of them inform or modify your configuration. Your configuration should be flexible till this point. Afterwards, I will recommend to keep it more closed and stable. So these different phases of testing that we are going to talk about, ideally, they are cycles and they inform your server configuration, your test, they inform and the cycles keep growing as the testing grows as well. So we are not going to be making a pilot a field testing every week and then updating the server. So obviously, the cycles grow. Your internal testing, you might be testing and configuring during the same week times, but your user acceptance test, the cycle is going to be bigger and for the field testing, the cycle is going to be bigger, but you need to be ready and willing to keep adjusting your server to whatever you find out in these phases. So this is generic on the HIS2. When you design and configure the HIS2, most of you are experts in the HIS2 already, so you know that you need to be thinking of what do you want to get out of the system when you configure your data entry. You need to be thinking of how it's going to be analyzed, so that I'm picking the right information. You also need to be thinking how is your data collection flow in the field. And now, because of the Android app, you are also, as you learned on day two, you also have to pay attention to the visual configuration and the user experience. Another general recommendation, which is not mobile or anything and is very minimum, most of you know already and sometimes I feel a bit strange making this presentation for experts because you know these things, so sorry if this sounds redundant to you, but for those that need a reminder, we usually recommend everyone, the world, usually recommends having three servers. So you need one where you play, you test, you explore, you experiment, and that has to be different from your production server. You know this, this is for many reasons. One that you have to be, you need to be able to play, to change. It has to be flexible, but also the protection. Your production server is going to have real data, so security really makes a difference there. And then your training server needs to be different so that your users can play, can enter dummy data, can explore and break as much as they can. So that's the minimum we recommend for a real project. Now, about the server configuration, I'm not going to extend the explanation here. Jaime has been explaining a lot that we need to restrict, that we need to be aware that we have a mobile user. Everything has to be adapted and I think please keep in mind this picture, this the right side of the slide when you configure your mobile users. You are going to be running all your program rules, storing all your data, the logic of trackers, the sharing settings, everything in a tiny device compared to the resources of a server. So please keep that in mind and make your configuration as simple as possible. Your life will be easier later. So let's go to each one of the faces of the testing. We are going to leave these materials for you. I really liked all this the first time I saw it because it helped me organize what was I doing on each face. So internal testing, what are you testing in internal testing? You are testing your configuration and in the case of mobile, you are also testing the Android app and how it responds to your configuration. You are looking for errors in your program rules, in the data entry form, in the visual configuration, if it looks as you expected or as you configured, you are looking for bugs because earlier you report them the most chances you have to get them fixed before you go to production. And you are also identifying improvements and new requirements that you can suggest. And we hope you suggest to the HIS too so that the roadmap can keep being informed from real projects. So how to do this? Methods and periods for testing vary from group to group, but it has to be iterative, it has to be flexible, done in the early, early, early phases and by a small group of people. Sometimes the same group of people that is configuring the server, it has to be flexible. And your best friend during this phase is the documentation. Because the documentation is going to tell you what to expect. What is a bug? What is supported? What is not supported? And it will allow you, it will save you from wasting time trying to understand why something doesn't work. So please remember, especially in the case of the Android app, have the configuration available and open as much as you can. Now the next phase, once you are happy with your configuration, with your testers internal team, then you can expose it to the users in the first phase called user acceptance test. These names are also not like, these phases have different names. The important thing is what you do. What you do here, you're testing your system configuration, the input and the output that is what the users actually expect, but you are also testing the usability, the user experience. You need to, you want to see how they receive it. You need to see how well they follow what you thought they would be following in the data entry flow. If they know what to do in each stage, if they need to make many questions, is it intuitive, is it not? So you are testing how your users behave with the app and how the app feels for them, and you are looking for adjustments. They are going to make comments on the wording, they are going to make comments on this field, this other field, identifying champions, your champions for the next phase is for the training, for the deployment for, so you can keep an eye on your really smart users, the ones that pick things first, the ones that have very interesting questions or point out things that you missed. How to do this? A control environment, short exposure to the technology to the users, so you are not deploying it in the real world. You call them, you stop them, they are just doing this. It's a short exposure in a controlled environment, and it's not necessarily integrated with their daily work practices. Again, not magic formula, do it as you think is better for your project. This is just a recommendation, and then once you are happy with your configuration after your internal, after the user acceptance test, then you can go to the field testing or pilot. What are you testing here? You are testing that your solution, how it integrates with the SOPs and the workflows of the day-to-day work of your health workers or any worker, field worker. You are testing your infrastructure, you are testing the architecture proposed, you are testing your training materials and procedures, because you are going to train this ideally, this group of people. So you are again looking for adjustments, but you are kind of already evaluating your solution. You want to see if the decisions you made until this point were adequate, and you are also going to identify champions here for your global deployment or rollout. How to do this? Again, this is not a magic formula. Sorry, I keep saying this, but this is really true. But generally, you can target 20 or 30 users, minimum of two months, so that you see the real acceptance, and you need to decide where to go, where to test your app. My suggestion, this is what I do. Don't choose the easiest place, but also don't choose the most complex. Don't challenge yourself too much. Try to find a middle point. Don't go to the ideal scenario, but don't go to the worst one, because you really want to see if your solution, unless your target is the worst one. You really want to see if the solution is okay, so don't... Yeah, so I think it's clear. Sorry, I'm trying to be fast. And then considerations, define before going, what are you going to be looking at after? How are you going to evaluate this? And decide your strategies. On pilots, if it's a very critical environment, you may want to replace the current solution. I think it's a bit risky, but sometimes you need it, or you put it in parallel, but now your workers are going to have double work, and then it's not a real scenario, so I'm not saying what to do. It really depends, but these are things that you need to consider in advance. And then the scale up. So you need to decide, now we are going to think of, we are going to talk mainly about the devices and the acquisition of devices. So you need to decide which kind of device you are going to use. Is it a phone, a tablet, a Chromebook? It will depend. Now I'm thinking of mobile, you can also use a desktop, but thinking of mobile, it depends on your user, what activity is the user going to be doing, and where is it mobile? Is it going here and there? Is it a community health worker? Is it a facility officer sitting on a table? This will help you pay the large-scale acquisition. Don't start the project buying a thousand devices. You can split the acquisition in time. And at the very early beginning, you can test a few models and see which one adapts better to your use case. So this is just an example that I'm going to leave in the slides. You can see it. There is no, again, magic rule. Sometimes we have to buy everything because the budget has to be executed now because the donors because, okay, not a problem. This is just a generic recommendation. And then the training. You also need to define your strategy for training. Is it a training of, it's not training or trainers. You need both training of trainers. Is it an on-the-job training? Is it that you're going to call them to a class? You are going to go waterfall, evolving until you reach all your districts. Is it going to be a big ban? Nowadays, I should have updated this with the online. Yeah. This is something to configure. And then, again, as in the pilot, but now, even more important, you need to decide if your system is going to replace the preview system or if they are going to work in parallel for certain time. Sometimes this is done due to organizations don't trust the new system until they prove data coming out is the same or many reasons. Sometimes we need to keep things in parallel for a while and then we have to plan an exit strategy. The same with paper. Are you going to eliminate paper, replicate paper? Are you going to duplicate? All this will shape your decisions and your plan for implementing. And I'm going to quickly move to testing. So you do have the slides and the materials. These are the reasons for testing. Why is it important? I think, remember the last one. It can be very expensive to figure out that what you are doing is not actually working as you expected in the advanced phases of a project. So it's better to find the bad news at the very beginning. So please start by testing everything. These are the five phases of testing. I'm not going to stop in all of them, but this is just to show you how complex testing can be and how important it is. It has five phases. You need to review the documentation. Review the documentation. You need to plan your testing, allocate time, define your priorities. You need to design your testing. So what are you going to be testing? Ideally, you have the test cases defined so that in every iteration because of an update, because of changing the metadata, you test the same actions in your app so that you can guarantee that the minimum functionalities are still there. And then you have to execute your testing. Ideally, you have a metadata configuration in the case of DHS2 for that. And you have a matrix to follow up. So here I'm going to stop a bit because I want to show you this so that you know you have these links in the presentation when you download it. And you can take these documents. How do we do the testing? These are our test cycles. We have test cases. We target different versions, but things don't need to be this fancy. You can just use an Excel file with all the things you want to test. And then the status and then what happened or who did it. So it can be very simple, but it will really help you be sure that you are ready to go when you are ready to go. And then report. And these are my last slides. You need to make sure that your bug is reproducible and you need to be specific and informative. If you follow these two steps, you are going to be separating facts from speculations. If you make sure you can reproduce and you specify the bug, for sure you are not saying, I think they should be like that. So dedicate time to step one and two. And when you reproduce a bug, please make sure to report these five, these five. Please, it would really help these five aspects. So we need to know what happened. You can read later this example, what happened in which environment as detailed as possible, the steps so that the developer can reproduce the expected result, what you thought should have happened against what actually happened. And then if you have pictures or videos, screenshots, that always helps a lot knowing what's happening. For the guidelines, I'm going to describe this tomorrow when we talk about documentation so I can leave it here. I just, this is just to tell you that everything that I have said here super quickly is in this document, but tomorrow I will experiment with you. And that's it. Sorry, I went a bit ahead or over, sorry. I went a bit over. But that's all from me and I don't know if now we have a break or what is happening. Yes, let's have a break. So that's, well, I'm not going to start from the beginning, but let's quick thing. I know you're having some issues with the exercises. Sorry, we're working on that and we'll come back to that later. Our session now is going to be going mobile devices. We're going to be collecting some of the things we have been seeing the whole week, but especially today. And as you see in the agenda, it says that last one, but the session is only going to be 25 minutes because we have this little surprise in the end. But maybe it's not a surprise because it's published in the agenda, but I think it's going to be quite cool and you're going to enjoy it. And it will be a nice way to finish these intensive or intense sessions. So Marta, may I ask you to share the screen, please? Awkward moments because of video conferences. Yes, thank you very much. Thanks, Marta. So going mobile, last section of going mobile after what we have been. Can I say this is how Hyman makes sure that I listen to all his presentations. Of course, I think what I'm seeing here, you already know, but I like being heard. So session time, 40 minutes, 25 minutes for me talking. Sorry, last time I'm going to be talking, maybe in the whole Academy. So during this presentation, we're going to be covering what you should know is you should know what to look into well and correct devices. Marta has been presenting how to scale, so in those terms, but we will go a bit on the specifications. What are the different alternatives while installing the app? This we discussed already on Monday really briefly. Today we will go a bit deeper. Every time I've been doing a presentation, I was kind of pushing the problem or the answers later. I hope they're arriving in the morning I have been answering to some things. Here is one of the other things I promise I will be talking about. The same goes for the MDM. I'm going to explain really quickly what it is, what it might be extremely useful for your implementations. There have been some questions on the Slack channel this morning. I will study the MDM. I will explain later. So here we'll come. I want to finish with a quick explanation of why putting Android devices in your project might make the server crash when before it was working properly and what to do to prevent so. At the end, Marta will take the four, 15 minutes. We're going to have an online quiz. This is not an exam, but it's going to be really interesting because we're going to be asking and answering some questions in a competition way. If you pay attention, it's going to be really helpful because maybe some of the questions are going to be in the exam that we'll have tomorrow. So yeah, Marta, thanks. Go to the next slide. So whenever you are acquiring devices, Marta was saying before that's where we're going to be focused on mobile phones, tablets, or Chromebooks. I know that in most of the places you're going to be using mobile phones and tablets, but I don't know if Gambia is present here in the room, but I know Gambia has performed implementation with many Chromebooks on the field. So I'm listing down there the URL where you can find these specifications. This is something that we test and we review kind of once every year, and we try to give you an easy way to know if the devices you are going to be acquiring should match the specifications that we need for the application. It's impossible to give you more general rules than this and more specific than this because every implementation is different, every product is different. So here it's the minimum we think you should need, but this is only the starting point. Afterwards, you should make analyses and say, okay, but you know what, you're telling me that if I'm getting a phone, it should have, for example, I'm going to the RAM memory specifications, one gigabyte, we recommend two or more. Well, more because in case you're going to be working with programs that contain hundreds or thousands of Chrome rules that we have been seeing, having more memories going to help, same for the CPU, et cetera. So this is something you can find on the link underneath and I will not go deeper into this. Whenever you acquire devices, apart from checking the specifications that were shown in the table before, make sure if it's possible, as Marta was saying, sometimes it will not be because of budget constraints or because of budget execution, but make sure you acquire a small set of devices, you test, listen to this, test, test, test, keep testing, and then acquire to rest. It can be really disappointing as I have seen in some implementations, they have bought 100 devices, they test them and they're not enough for the implementation. So then they need to buy another 100. So whenever it's possible, make sure you test on the device you're going to acquire, have the program ready, or all your details to configuration ready, make sure it works, and then acquire the rest of the test. I need to mention this here at the moment. It is mandatory to have devices linked to Google accounts. If you have or you acquire a device that is not compatible with Google, wherever you install the application and you try to run it, you will see this awful message on the right that you need to enable Google Play Services. This is something we are working on to remove this dependency, but at the moment, it is not possible because of the, in the previous versions, because of the crash system we use and from the geolocation. Again, we're working on it, but now be careful when you acquire devices. This was not common in the past, but now because of the fight between Huawei and the US, if you acquire some devices that do not support Google Play Services, you might find this awful surprise that your phones will not be compatible. That is a reason to get one or two tests and once you're sure it's working properly, get the rest. Can you go next? The slide should be familiar because it's exactly the same one we saw on the first day when you were getting the app. Many people went a bit ahead and they saw the Google Play app and then they realized they could not take screenshots and they were complaining saying, I cannot take. And then we said, yes, because this one is the production and the production. I'm going back to my first session security. We are forbidding taking the screenshots because OWASP recommends not to do it. So that's the production one. But you can get it as well from the GitHub. The GitHub releases we publish every 10 days are released. There you have three different ones. We're not going to go through them because we did it already. But you know that training one is the one you should be using for training purposes or for debugging. And you could also get the application in your own store. This I promise somehow that I will explain. I'm going to explain later in this session. So you might be wondering, but why do you give me so many options to install my application? Well, I'm going to cover two. So let's divide these in two channels. The first one is the Google Play Store and I'm going to consider the rest as a whole. So if you use the Google Play Store, it's really, really much easier to manage. I think most of the implementations I have seen or I have visited, they use the Google Play Store. It's really easy to manage. You can log it in your phone, you go to the Play Store, install the HS2. Done, wonderful. However, these are one of the big issues that you have there is that you cannot control when to update. And you need Google account on your device. This is what I just explained. But let's go to the first point where it says you cannot control when to update. Later on, we're going to have his Rwanda. Maybe they will explain the implementation. They have done a great job. But I know they had not so nice surprise when we published a new version. And some of their devices got updated because of this. Whenever you're using Google Play, you cannot control when do you want your devices to be updated. This means that when we ask that now we're trying to follow a release every six months, every time we release, we're going to put the application to the Play Store. If your devices have been configured to auto update, they will retrieve it. And there's no way you can control this in a central way. So you need to go to every specific phone and say, remove the auto updates. And then you will force the user to update. But this cannot be controlled central. If we forget about Google Play with this easier to manage but the difficulties in terms of updates, we go to the other ones. In the other ones, you can control. You could do everything. You could use the GitHub and you could instruct the users how to install. Or you could build your own market and then push it whenever you want. So it makes you more in power of when to do it. But it comes with the difficulty added that you need to manage these things. So much next, please. I've been talking and I've been mentioning in Slack channel before your own market things that is. This is a session that could take one hour to explain. I'm going to compress it to five minutes. I hope not even. But one of the things we're starting to recommend to every project that decides to implement Android to analyze and maybe use an MDM. So here I'm going to be making mistakes because I'm going to be talking about MDM when I should not be because I should be mentioning EMM or UMM. But yes, for the sake of simplicity during the presentation, when I refer to MDM, I'm going to be talking about mobile management. And mobile management in the sense that the first one there, mobile device management, which is a piece of software or a platform, as is defined in the definition underneath, is a range of products or services that enables organizations to deploy and support corporate applications. So this is what you should learn from these three, four, five minutes I'm going to be talking is that there is exist, there is something out there that you could implement that could allow you to set and set up and manage phones remotely. And this, what is the MDM, EMM, UMM, whatever you want to call it, there are differences that we're not going to cover, but that's it. So at one point, if you decide to use something I did, you decide to implement in your project 100 devices, it becomes complicated to manage them manually. We could set up an MDM. So Marta, can you go to the next? So it is a type of security software for the application of mobile devices. And if you ask yourselves, do I need it in which cases? Well, what this allows you, as I said, is to have like a software, a server, where you could connect, you could register your devices on this central management console or whatever I call it, server, MDM manager, whatever. And your devices will become managers by this server. And this means that you could set policies, like the ones we will see in the next slide, but you could set policies that your devices are going to accept and are going to apply. So before in the Slack channel, I don't know who asked, I'm sorry I forgot the name, but I'm always saying, so does this mean that we can set up in called remotely? And I told him or her, no, no, I will explain it. So from all the things we have been seeing before, from the VHS super perspective, this is not possible. You need to go to the device to set the pin code. But if you go through this way of implementing an MDM, there you could set policies like this one, that is force a pin code on the phone, the MDM would allow you to do it. Some people will say yes, but you know what happens? Sometimes in my implementations, I do not own the devices. So we're not talking at ministry level, or we're not talking in a big institution that it's providing phones, but the data clusters are using their phones. Well, the MDM, depending the solution that you will choose, if you go for it, sometimes this is considered as well, and it's what it's called, bring your own device environments. So there are policies that can be applied to those devices that are less restrictive, that they once you could apply to your own devices. So for example, if someone is using their own device, you don't want to force them specific policies. But if the computer is in the devices owned by someone, by the corporation, you can impose harder measures of policies. Yeah. So it's really complex, this thing. I'll have link there. We have published some months ago, an official guide on MDM. I could encourage you to read it quickly, at least give an overlook in case this is sounding interesting to you. But basically, what I think that is mentioned here is that MDM could be, well, there are many features or policies that you could apply. But one of the most interesting ones that most of the MDMs have, or which MDMs you should choose in case you're going to go for one, is this one. So from the MDM console, you could impose on your devices to have a screen lock. For example, you could do the APP management. I'm taking what I said on the first day and I've seen previously. So you could push the PHIS2 application whenever you want it. So as from the Android team release version 2.3, you say, I'm sorry, I'm not ready. I need to train my users first. We're still going to be in 2.2.2 until I want. So from the MDM console, you could say, okay, now is the time. All my phones, please get the new version. You could also lock devices and web information. I'm going back to the session of security. Imagine your device gets lost. We're talking about confidentiality, integrity, availability. With the MDM, you could be able, you should be able to wipe the phone from the distance. These are other things I will not cover, but just for you to know, there are things, check the guideline there that we have that explains this quite in depth. So next moment, please. And I think this is the last slide. Here I wanted to explain why some of you sometimes are disappointed or you have suffered that because of Android, your project has stopped working. And I'm going to try to explain it, making a simile between a post office and what happens with the Android devices. I hope it's going to be clear. If not, I can answer questions afterwards. But basically, by now, with all this week of training, you should understand and you should know that web and Android have worked in a different way. So you know that web, usually in terms of security is different, in terms of cash values and offline mode is different because it does not exist. But Android, we have learned through the whole week that Android takes information. So you are able to insert data offline and then push it together. So going to the simile, imagine we have a post office and we have 10 users. And those users are writing one letter per day. So we're having 10 people writing a letter and every day they go to the post office and they give this letter. So the postman or the post lady every day is receiving 10 letters. And he's efficient and he can take one letter, okay, he analyzes and say, okay, this is correct and sends it, okay, this is correct, okay, the stamp, okay. So 10 users, 100 per day, every day we're getting 10 letters, which the post office can go. Imagine now that these 10 users, instead of writing the letter every day and taking it to the post office, they are writing the letter, but they are keeping it because they don't want to go to the post office or because they cannot. We don't care about it. The thing is that these 10 users are keeping their letters till the end of the month. So I'm a user, I'm writing my letter, I keep it the one of January, I keep it, take on January. So at the end of the month, I have 30 letters. And I'm going with this 30 letters to the post office on the 30th of January. Here you are, take my 30 letters, please make sure they arrive on time. If all the users are doing this, we're going to have the post office on the 30th of December having 300 letters, which most probably the postman or the post lady will not be able to process because it's too much and it will not be able. This symbol is what is happening when you're working with Android and offline mode. So before, when you were using the web, every time you were inserting or creating a patient, this information was being sent to the server to our post office. With Android, we're collecting information and at one point we send this information. So the server that was being able to cope with this information that was coming is spreading time. When using Android and Android's pushing the information at the same time, it might make the server overloaded or not being able to cope with all this information to process. So this means that if you have been using 100 users in web with a specific server, it means or it might mean that whenever you take those 100 users and they go offline and they start using phones, maybe your server is not enough and it was enough. But now because of the way we're sending this information in a more bigger chunks in maybe at the same period of time, it might make that the server in this period was correct. But when we make him work so much on this specific time, it cannot. So with this, what we just wanted to say is that make sure your server is ready for big deployments. We know this is really difficult to measure, but now maybe that you have a wireless concept, at least you should think, okay, hold on, hold on. Maybe I cannot go offline or Android straight away. Let me do a little bit of analysis. Let me check some guidelines. Let me check with the experts to see if it's going to be enough or not. I think that's it from my side. Marta, Thor is yours. I don't want to, I don't know if you want to make an introduction to what's going to happen now, but all yours. So we are going to make now a quiz about what we have been talking about today. It's not an exam. It's not going to evaluate your final grades for the course. It's just a nice way or a fun way to review the content because today it was very theoretical. So we thought it would be nice. So what you have to do is to log in to this address, not log in, sorry, to go to this address on your mobile device. So take your phone, tablet, or probably also your web, but it's nicer in the phone, and put this URL on your browser. And then, am I still sharing? Yes. And then of course I have to run the whole thing one second. Can we do it as well? I mean, facilitators, you are not supposed to do it because you know everything or do it, but choose the wrong answer. So it's not, we don't, we want all of you to participate. You don't need to put your real name, put the name that you want. It's also okay to put your real name, but if you are going to be like, oh, I'm going to lose them, put a random name. We just want you to participate and be part of it. So let me, let me launch it one sec. I'm just going to make the questions random. So we should be ready to go. So this is the screen you will see. And this is the pin you have to enter. So we are waiting for participants to join. So we have in theory 62 participants in the Zoom session. So I'm expecting the same number there, 22, okay, 25 and growing. I'm going to post here the Kahoot because they're asking for the URL. They're asking for the URL? The URL, yes. It was in the presentation. Where is the presentation? Did I close it? I think we have to, well, we have some facilitators in the group. Welcome. Oh, we lost someone. Please come back. Oh, we're losing people. How come? I think at least 40, 45 we need to have. Do you need more time? 38 seems like we don't get 39. We have Obi-Wan Kenobi. Obi-Wan Kenobi. We have Mr. Academy. Manu, we have a TEI. Okay, I think we have to start. We are not getting more. Bravo. Yeah, welcome. Bravo. I'm going to start. What do you think? Hi, man. Yeah, I think we are not getting more. So we have to start. We're even losing people. Okay, let's start before we lose someone else. Okay, welcome. Okay, we are 39 again. And now we start. Two or false. I think mobile devices to my implementation does not add any security implications. Is that true or false? We have nine, 10 answers, 11, 15 and growing. This is an easy one. Come on. We are 39. Three seconds. We have 20 seconds per question. You have to be quick. Okay, we need to talk to eight people. It does add security implications, as Jaime said, because you have your data on your device with you. Jaime, you can cry and improve your session. So next. Okay, sorry, we have to see. Mr. Academy was the quickest. Okay, go to the next one. This is a quiz. The usability and user friendliness of your configuration is tested during testing, user acceptance test, pilot field testing, internal testing or monkey testing. Which one? 12 answers, 10 seconds. I know it's quick. I didn't realize that 20 seconds would be this fast. It's the first time I prepared a couch. Yay, the majority have chose the user acceptance test is when we test our usability. And now we have a TI winning. Okay, and we lost Mr. Academy. When acquitting devices, it's always better to buy them all at the beginning to get good discounts. Is this true or false? 10 seconds. This is an easy one. 36. Okay, most everyone answered this one. And the answer is false. Okay, some people really are into discounts. That's fine. But no, if you can, it's better to pace the bot, the acquitting devices. So we have the TI still winning. And let's go with a true or false question. Your testing phases are cyclical. And they all inform your server configuration. Is this true or false? 10 seconds. We have 32, 33, 34, 38, 37. Sorry. Okay. This is true. You should keep configuring. This was a good result. You should keep configuring your server during all the testing process, because that's where you learn. So the TI is really winning. I don't know if later we'll want to disclose. Okay. THS2 allows for SMS reporting integrated in the Android app, which would be enable when internet is not available. Is this true or false? Five seconds. Okay. Yes, it's true. You need to enable it, etc. But yes, it is available. And this TI, I hope it's registered in the program. Next question. Which of the following secure methods is not available for the THS2 Android app? So when you lose your phone, it will self-distract in 10 minutes. You can set up in code. You can restrict access based on server configuration. And you can encrypt your database. Which one is not available? Not. Not available. Which one is not available? Yes, your phone will not self-distract. We have not explored that option. So TI is there, but let's focus on the following. So we have Nini, Socorro, BB8, and a big smile, following closely. So question seven. Which of the following parameters are not available in the Android settings web app? The number of reserved values, the maximum number of case events that have logged, the db encryption, or the number of users that can sync to the server at the same time? Five seconds. We have for most all answers. Exactly. You cannot control the number of users syncing at the same time. So you need to really pay attention to the resources of your server. Oh, and we have BB8. I don't know how to read that. Taking the lead position and our big smile following closely. So quiz. Which one of the following concepts is not about security? Integrity, reliability, confidentiality, or availability? So which one Jaime did not talk about today? Very answers. Five seconds. Okay. That was a good one. Jaime. Oh, no. Well, it's okay. Seven people were not listening to me. No, but they chose, okay, we can, it's availability. No, I know it's reliability. True. True. I didn't. Sorry. Okay. I hope that's not recording. The information needs to be authentic. It needs to arrive to the destination exactly as it was sent at origin. What is this description referring to? Integrity, confidentiality, reliability, or availability? Information needs to be the same when it is sent and when it arrives. Yes, that's integrity. And that's kind of a fair result. Jaime, let's see our top five BB8 there, but the TI is coming back. So Coro always almost there. What is a bad or the worst option from the presented pattern for auto-generated IDs when you work offline? What is the less good? And I'm not going to read the options. I'll let you look at them, but this should have been maybe even more time. Quickly, quickly, quickly. Four, three, two, one. This was a bit difficult, even reading the options now. I think this one should not be considered bad. Okay, TDMX is fighting for the winning position. Next one. The testing process has the following stages. I'll let you read. They were five. Five. So, yeah, but I was very fast on this part, so I understand. And our big smile, gaining positions. What are the testing on your pilot? What are you testing on your pilot of field testing? Your SOPs, your server in the app, your system configuration. What are you testing on your pilot? You're testing your workflows and how they integrate the technology with your SOPs and real life work. And BB8 is back in the next in the first position, followed by Socorro. True or false? The DHS200 app only downloads the changes in my configuration. When I sync metadata, only the changes or everything. Just in case something changed. It's an easy one. Can't hear you with the music. It's false. It downloads and refreshes all your configuration. So, Nini and Sergio make their first appearance. And we have two more questions, three more questions. It's always recommended to distribute my Android app with Google Play because I have full control of the upgrade process. Is this true or false? Thirty-six answers. I think we have every one. Yeah, we're thirty-eight, I think. Okay, once I come, yes, now we are all. It's false. That's the main problem of the world. Yes, very good. Okay, TDMX is back in action. Please. For the last question. If I want to manage my devices in the field, the minimum solution I could adopt is an MDM, UME, EMM, UMM. It's gonna be hard. Okay, very good. MDM. Let's go to the next one. Well, what happens here? The TIA is back in the last question and wanting to get control again. And the last one. In which testing are you testing your configuration and the Android app? Okay, very good. In your internal testing, this one was very good. So let's check our final winners. Number three is Sergio. Congratulations, Sergio. Number two is Socorro. Congratulations. And number one is BBQ. And TDMX and Monkey. We're number four and five. Identify yourself in the channel if you want us to. I don't know. Thank you for being paying attention. I'm gonna stop sharing. Thank you very much for participating. Thank you very much for joining or staying, even though we were using the break. So Alice, how can I stop this? Sorry, sorry.