Here's a very simple project that IMHO can help finding missing people, whether is someone with limited cognitive capabilities or even a "normal" person who happens to pass out in an unknown location, e.g. The requirements is that the target person carries a QR code (a forearm tattoo is suggested).
Disclaimer
Despite its good cause, this project can illustrate how dangerous and malicious a JavaScript code can be, as this one will send and email with the users' coordinates to an unknown person without their knowledge.
There is the purposed flow:
- Person "A" goes missing
- Person "B" finds person "A"
- "B" scans the QR code using a phone
- A web page is loaded, and 2 things happen:
- "B" sees some basic info for person "A"
- In the background, an email is sent to person "C" (who is responsible for person "A"), containing person "B" 's coordinates (provided that they have location settings on).
Tips:
- Host web pages for free: https://pages.github.com/
- Use a url-shortener to get a simpler QR code
- Use DuckDuckGo's search engine to get a QR code. Just type qr and the desired URL
Here's what the page could look like:

Here you will get the library to send emails and info on how to get a free SMTP server: https://smtpjs.com/
JS:
script.js
function sendEmail(body) { Email.send({ Host: "smtp.elasticemail.com", Username: "<mail>", Password: "<password>", To: '<email>', From: "<email>", Subject: "John Doe has been found!", Body: body }); } function sendEmailWithCoordinates(pos) { let lat = pos.coords.latitude; let lng = pos.coords.longitude; let url = `https://www.google.com/maps/dir//${lat},${lng}/@${lat},${lng},21z/data=!4m2!4m1!3e2`; sendEmail(url); } function sendEmailWithoutCoordinates() { sendEmail("Could not get the device's coordinates..."); } function startLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(sendEmailWithCoordinates, sendEmailWithoutCoordinates); } } window.addEventListener("load", startLocation); By using this same API (navigator.geolocation), you can set the location for a "watch" mode, and keep sending multiple emails with the updated coordinates, instead of sending it only once. For more info regarding Geolocation API: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API
HTML
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>HELP ME. I AM LOST</title> <link rel="stylesheet" href="style.css"> <script defer src="https://smtpjs.com/v3/smtp.js"></script> <script defer src="script.js"></script> </head> <body> <div id="main"> <img src="photo.jpg" alt="JOHN DOE'S PHOTO"> <h1>JOHN DOE</h1> <h2>PLEASE, CALL MY RELATIVE:</h2> <a href="tel:+351999999999"> <h1>(+351) 999 999 999</h1> </a> <h3>MY ADDRESS:</h3> <address>10,MAIN STREET</address> <a href="https://www.google.com/maps/dir//41.2766,-8.3762/@41.2766,-8.3762,21z/data=!4m2!4m1!3e2"> <button>MAP TO MY HOUSE</button> </a> </body> </html> CSS
style.css
body, html { margin: 0px; height: 100%; } #main { justify-items: center; align-items: center; text-align: center; background-color: lightcyan; padding: 5%; } img { width: 60%; border: solid 3px; border-radius: 3px; } button { padding: 5%; margin: 5%; background-color: blue; color: white; } Thanks for the time reading this!
Follow me:
LinkedIn | Dev.to | Buy me a coffee | GitHub
Top comments (0)