<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Felipe Ocádiz</title>
    <description>The latest articles on DEV Community by Felipe Ocádiz (@focadiz).</description>
    <link>https://dev.to/focadiz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F522544%2Fde03f62c-6152-4678-9a1e-09126188c9af.jpeg</url>
      <title>DEV Community: Felipe Ocádiz</title>
      <link>https://dev.to/focadiz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/focadiz"/>
    <language>en</language>
    <item>
      <title>Missing kids alerting system</title>
      <dc:creator>Felipe Ocádiz</dc:creator>
      <pubDate>Mon, 30 Nov 2020 07:57:16 +0000</pubDate>
      <link>https://dev.to/focadiz/missing-kids-alerting-system-2fad</link>
      <guid>https://dev.to/focadiz/missing-kids-alerting-system-2fad</guid>
      <description>&lt;p&gt;As a parent, one of our biggest fears is missing our kids, specially in public and crowded places.&lt;/p&gt;

&lt;p&gt;This project follows the idea of Amber Alert but for missing kids in public places like a big mall, zoo, stadium or park. The alerting system is intended as a first response and would not replace Amber Alert but would complement it adding the social aspect with real-time notifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  High level description
&lt;/h2&gt;

&lt;p&gt;The signup process will allow users to create a profile with their contact information (email, phone number) and might add information about their kids. i.e. Full name, age and a short bio that might include useful information like a disability.&lt;/p&gt;

&lt;p&gt;When people go to a certain place they will check in using the mobile app. There would be two kind of check-in processes, one for parents and one for general public.&lt;/p&gt;

&lt;p&gt;Parents will be able to upload a recent picture of their kids so if there is an incident, users can have a better idea of how the kid looks and help.&lt;/p&gt;

&lt;p&gt;In case there is an incident, the API will gather all the people who have checked in from the last hour and will send a notification via SMS or email with the incident detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fag62oiyli1qn1ehnonxh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fag62oiyli1qn1ehnonxh.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The PoC includes integration with Twilio and GMail to send notifications and integration with Google Maps API to get the list of places for check-in. The events are processed via Kafka and data is persisted in a MySQL Database.&lt;/p&gt;

&lt;h2&gt;
  
  
  API Definition
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#%RAML 1.0
title: Alerting API
baseUri: http://alerting-api-v1.cloudhub.io


/signup:
    post:
        body:
            application/json:
                example: |
                    {
                        "firstName": "John",
                        "lastName": "Doe",
                        "email": "john@doe.com",
                        "phone": "4154188358",
                        "kids:": [
                            {
                                "firstName": "John",
                                "lastName": "Doe Jr.",
                                "dateOfBirth": "2016-04-30",
                                "bio": "He doesn't know his parents names"
                            }
                        ]
                    }
        responses:
            201:
                body:
                    application/json:
                        example: |
                            {
                                "id": "123e4567-e89b-12d3-a456-556642440000"
                            }

/check-in:
    post:
        body:
            application/json:
                example: |
                    {
                        "id": "123e4567-e89b-12d3-a456-556642440000",
                        "location": "ChIJgeLABbB9j4AR00VqlJ98eqU",
                        "picture": "VEVTVA=="
                    }
        responses:
            201:
                body:
                    application/json:
                        example: |
                            {
                                "id": "0e467434-c9cb-48bc-ac63-a74ad61b274e"
                            }

/incident:
    post:
        body:
            application/json:
                example: |
                    {
                        "id": "0e467434-c9cb-48bc-ac63-a74ad61b274e",
                        "description": "He was seen last time around 15:54 in front of the carousell"
                    }
        responses:
            201:
                body:
                    application/json:
                        example: |
                            {
                                "id": "97d92f5c-65b9-4c2b-a4f0-5da12f400aa5"
                            }
    /{id}/response:
        post:
            body:
                application/json:
                    example: |
                        {
                            "message": "I found him, we are in front of the cafeteria"
                        }

/locations:
    get:
        queryParameters:
          location:
            description: Latitude and Longitude comma-separated
        responses:
            200:
                body:
                    application/json:
                        example: |
                            [
                                {
                                    "id": "ChIJgeLABbB9j4AR00VqlJ98eqU",
                                    "name": "San Francisco Zoo"
                                },
                                {
                                    "id": "ChIJQ87gTrp9j4AR60rA_fO2ef0",
                                    "name": "Stonestown Galleria"
                                }
                            ]
    /{id}:
        get:
            responses:
                200:
                    body:
                        application/json:
                            example: |
                                {
                                    "id": "ChIJgeLABbB9j4AR00VqlJ98eqU",
                                    "name": "San Francisco Zoo"
                                }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Future enhancements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Integration with Salesforce or any other Case Management Software&lt;/li&gt;
&lt;li&gt;Integration with Apple Push notifications&lt;/li&gt;
&lt;li&gt;Webhooks to add subscribers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amberalert.ojp.gov" rel="noopener noreferrer"&gt;Amber Alert website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/focadiz/hackathon-2020" rel="noopener noreferrer"&gt;Source code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mulesofthackathon</category>
    </item>
  </channel>
</rss>
