How Canada searches for missing children

Original author: Anthony Bartolo
  • Transfer
Last year, 45,000 children disappeared in Canada alone. Scary statistics. In order to maximize the percentage of found, a solution was developed using Xamarin and Azure, which we will talk about under the cut.

Series of Microsoft Technical Case Studies articles

1. Power BI Embedded, IoT and machine learning for processing brain thermograms .
2. As in Canada, looking for missing children .
3. The Internet of things in archeology .
4. Loading ...


Modern children are “you” with high technologies, they use them for games, communication and study. But with great potential comes great responsibility both from the side of the parents and from the side of the children themselves. It is necessary to constantly monitor with whom children communicate and exchange information on the Internet, otherwise disaster can happen. Amanda Pick, director of the Missing Children Canada Society (MCSC), and her team work tirelessly to prevent disaster. They pay particular attention to online resources, as attackers are increasingly using them to implement their plans.

Bringing every child home is MCSC's ultimate goal.(Society for the Search for Missing Children of Canada), a nonprofit association headquartered in Calgary. One of the tasks is to collect information about the child (for example, the last known location and contacts) and pass it on to representatives of local law enforcement agencies.

MCSC works closely not only with the Calgary municipality and police, but also with Microsoft. A joint seminar was recently held that helped participants understand how Azure, Xamarin and DevOps best practices can help you quickly and efficiently collect and provide information to the police about children who are reported missing.

The seminar resulted in an application created on the basis of the following services and techniques:

  • Azure features
  • Azure Storage Services
  • continuous integration;
  • “infrastructure as code” methodology;
  • Visual Studio Team Services;
  • Xamarin tools.

The goal of the four-day seminar was to start using Azure in MCSC to get information about the last known whereabouts of the child, his contacts and communication on social networks (for example, Twitter and Facebook).

Formulation of the problem

During a meeting with Amanda and the MCSC team, we examined the problems associated with collecting information about a missing child. It is enough just to find out, for example, what the child was wearing and where he was last seen, but sometimes it took several days or even weeks to receive other detailed information.

The Microsoft Canada team has set itself the goal of speeding up the collection of additional information. Our goal was to automate the search for information about a child on the Internet by extracting data from his accounts on social networks.

The first half of the day was spent on drawing up a diagram of the current process of transferring information about the missing child to the police.

Here is what it was:

  1. To provide parents and (or) children the opportunity to register their social network accounts in the MCSC database.
  2. If a registered child goes missing, he or his parent can use the Child Finder solution (through Azure functions) to see the last known whereabouts of the child with whom he contacted and talked about. To do this, in the social network feed, you must use the hashtag #hfm (help find me - "help find me").
  3. The Child Finder solution will receive all the necessary information directly through the social media API.
  4. Azure will send the collected information directly to law enforcement, notifying them of the missing child in the relevant area and providing additional information collected through social media.
  5. Law enforcement officials will use Azure Active Directory Authentication to enter the application. This ensures that all data collected will be available only to those who have the appropriate rights and authorities.
  6. Reports and additional information about missing children will be available in the application.

The hashtag #hfm can only be used by those who have access (username and password) to the account. This restriction guarantees the privacy of the child, since only the child himself or people he trusts (for example, his parents) can activate the Azure function to control his social media account.

Representatives of the MSCS and Calgary Police were invited to exercise: chart a value stream. This helped them realize the need to optimize and accelerate existing approaches to finding information. This approach has proved its effectiveness, even taking into account the fact that a completely new process is implemented in the solution. Based on the scheme, a resource map for specialists was formed.

The team then prepared a data flow diagram for the proposed project. One of the main tasks was to ensure security and provide tools for independent work, due to the confidentiality of the information collected and sent. Twitter OAuth support was implemented so that the child and / or his parents could activate account monitoring. Account data collection is activated using the hashtag #hfm. An entry screen for law enforcement officials was also implemented.

Project objectives

The project implemented for MCSC is based on the following technologies.

Azure Web Application

  • A portal has been created on the basis of Azure for parents or children who wish to register social network accounts in order to monitor them.
  • Azure functions were used to monitor registered accounts on social networks after detecting a special hashtag (Azure functions allow you to execute small code fragments in the cloud. To solve a specific task, you can write other code that doesn’t require infrastructure or even an entire application).
  • If a hashtag is detected, all metadata (location, time and date) and the results of the analysis of messages will be collected and sent to law enforcement agencies using the special Xamarin mobile application.

Xamarin mobile app

  • Authentication rules have been developed so that only personnel with the appropriate authority can access.
  • Law enforcement officials are notified of new reports and can use applications to view relevant metadata and message analysis results.
  • MCSC representatives will also be informed through the same application and will be able to assist in the work of law enforcement.


  • The exercise describing the value stream helped to create a process diagram, as well as a scheme for collecting and disseminating information from the database through the Azure web application and the Xamarin mobile application.
  • GitHub storage for infrastructure (Azure features), authentication (Azure web portal) and client (Xamarin) were used throughout the project.
  • To accelerate development and deployment, continuous integration streams have been created.
  • To deploy the environment and components to ensure integrity, the “infrastructure as code” methodology was used.

Decisions, Steps, and Results


The child (or his parent) registers a social network account on the MCSC website , confirming his consent to monitoring. This functionality is implemented as a Node.js application called authorization, which is currently connected to Twitter.

In addition, Azure Logic is used to intercept messages with the hashtag #hfm. The application adds these messages to the service bus queue.

When a message appears in this queue, the Azure function analyzes it and checks the repository of authorization information in DocumentDB. If the author of the message is registered in the database, the message is added to the next queue, otherwise it is simply ignored.

From the next queue, another Azure function retrieves the message and supplements the data. Currently, the process is adding location information received from the device from which the tweet was sent, or determined based on the IP address of this device. An augmented message is added in the third turn.

In the final step, the Azure function saves the message in the appropriate format in DocumentDB.

Upon completion of the operations performed by Azure functions, the augmented data will be available to the client through the REST API. The API provides access to information from the user account and collected data from social networks. This API is implemented in the Node.js file that runs in the instance of the Azure web application. The same API is also responsible for authentication in the client application.

The Xamarin mobile application, which is used by search squads and police, connects to the REST API, allowing you to visualize data and even track location (if relevant information is available). You can use this application only after authorization. In the next issue, reports on all missing children will be published on a centralized information panel that redirects information to law enforcement agencies within the specified area.

Methods for solving the tasks

In this work, the following tools were used.

GitHub - for storing all source code released under the Apache license. By placing the source code in the public domain, we connect everyone to this important work and give a wider circle of users the opportunity to use such systems to search for missing persons or to solve other tasks related to identifying and tracking people’s location.

Visual Studio Team Services helped provide support for continuous integration assemblies and the deployment process. Project team members were in Toronto and Calgary. Thanks to VSTS, they could exchange code and participate in collaboration.

Azure Platformprovided the simplest, most cost-effective and scalable services. Given the current set of requirements for processes and storage systems, the solution must process huge amounts of data with minimal delay.

The Node.js application collects data on self-registration of users who want to access the hashtag. This page can be adapted to customer needs.

The process of receiving data allows you to quickly find content that is independently registered by the user. In the current version, we decided to use the Logic App, since the cost of it is much less than the long-running Azure function. The logic app accesses Twitter every 30 seconds. When a tweet with the desired hashtag is detected, the application adds this tweet to the processing queue.

The follow-up process is built on top of Azure’s robust features and queues to ensure proper handling even in the event of errors. Azure features also provide high scalability and minimize costs. Each stage of the process has its own task: to begin with, it is necessary to determine whether the author of the tweet is registered. If such a user is not registered, the message is simply ignored without making copies, which guarantees confidentiality. Further it is necessary to request additional information. In the current version, we focused on adding geospatial data, but you can include other information. Finally, the item is retrieved from the last queue and placed in the DocumentDB database, accessed through the REST API using the Xamarin client.

The Xamarin.Forms forms have helped provide deployment support for Android, iOS, and Windows, while ensuring a consistent view for users on all available devices and an optimized deployment process. The client application provides data in a convenient format. With full support for REST in Xamarin, we connect to the REST API, import data and display it in a list. The client application allows you to view data (or “cases”) and sort them by status: “open”, “in the archive” and “viewed”. If the selected case contains geolocation data, the application will show on the map the last known location of the user of social networks. In addition, the application uses the MVVM pattern, a standard architecture that RedBit uses in its mobile applications.

Further steps

Facebook / Instagram app . The system supports several channels of various social networks. Data from these networks will be embedded in one process with its own characteristics.

Twitter app . Currently, the logic application uses the JefKingTweets account as the interaction point. In the future, the application will be transferred to the MCSC account.

The frequency of processing tweets in the logic application . Currently, data is received approximately once every 30 seconds, this interval can be changed if necessary.

Azure feature to complement data. The system may collect additional contextual information that will be useful to search teams. For example, you can upload a user’s tweet history to find out who his friends are and where he liked to be. Over the next 48 hours, you can track new tweets and try to locate. You can also control other geolocation tags to help locate the child.

Automatically configure the Azure feature . During the implementation of the project, the Azure function was manually configured. In the future, in order to simplify management and increase security, automatic configuration will be implemented using Visual Studio Team Services.

DevOps Technique

Below we will talk about DevOps techniques that were used in the process of project implementation.

Value stream mapping

This exercise is usually performed on an existing set of processes and activities related to the development of a specific solution. In this case, we studied the existing process and listened to suggestions for its improvement from representatives of the MCSC, the police and the municipality of Calgary. As mentioned earlier, the project team drew up the diagrams and carefully studied the Azure features and client application. It was possible not only to identify opportunities for optimization, but also to implement them in order to accelerate the development of solutions and achieve a high level of automation. As a result of Value stream mapping, the following functions were added to this project:

  1. Authentication in a mobile application . With it, law enforcement officials get secure access to data about missing children, which Azure transfers from your Twitter account.
  2. Twitter profile picture . The image was added to the report, as it can also help in the search for the missing child.

GitHub repository

A new organization on GitHub and several repositories have been created to simplify and speed up the work of the teams of specialists involved in the project.

As a result, repositories were created:

  • authorization: authorization of the client in a social network;
  • client: developing a Xamarin application;
  • client-api: API for client devices
  • client-registration: registration of push notifications;
  • infrastructure: Azure infrastructure
  • messaging: sending and processing server messages.

Continuous integration

To speed up assembly and deployment, we created four continuous integration streams in Visual Studio Team Services:

  • client-api-ci;
  • messaging-ci;
  • authorization-ci;
  • Infra-DEV-CI.

Each of them includes tasks for creating the correct assembly, including npm, gulp, Grunt and others (depending on the language and type of assembly). Xamarin client applications are deployed using the HockeyApp solution in Visual Studio Team Services.

Continuous deployment

Four release management queues have been created so that the team can create software in short cycles. This approach provides the opportunity to release at any time. The HockeyApp platform provided additional flexibility, since applications are delivered directly to devices; there is no need to place the client application in the store. This approach speeds up all processes and reduces the costs and risks associated with deploying changes, allowing you to install incremental updates for applications in a production environment.

Infrastructure as code

The infrastructure for the solution was created using a set of JSON templates that are used to deploy the environment and other components that the solution requires. JSON templates are uploaded to the infrastructure repository on GitHub, and they are subject to the same build and release management process as the rest of the source code. This process ensures consistent deployment for a group of resources in a development, test, and production environment.


The project team has successfully developed a registration procedure for user identification, the process of collecting, processing and supplementing data, an API and an application for client devices.

These components will help MCSC quickly create and optimize its services. Thanks to the DevOps methodology, the optimization and expansion process is significantly accelerated.

In addition, during the work, the project team successfully received GPS data from Twitter and Facebook and presented this data in the Xamarin application.

In the process of developing the structural diagram of the project, the need to create an information panel for the central office was revealed so that information could be verified before sending it to local law enforcement agencies. This feature will be implemented in the next release.

Representatives of MCSC, the police and the municipality of Calgary have appreciated the opportunity to continuously improve the code, deploy additional features through GitHub and transfer applications to mobile devices using HockeyApp.

We remind you that you can try Microsoft Azure for free here .

If you see an inaccuracy in the translation, please report this in private messages.

Also popular now: