For the HACC, the challenge that my team chose to accomplish was for the Hawaii Department of Agriculture Animal Quarantine. The main goal of this application was to streamline a check-in process for travelers, who’s animals need to be inspected by the HDoA before being allowed in the state, that need to pickup their animals after inspection. The office to pickup the pets is too small to allow owners to wait for their pet in and due to COVID restrictions owners cannot wait inside the facilities. The only way for the owners to be notified is through an intercom system that is very hard to hear outside of the facility. Also, the outside has no waiting area and is in the sun. So, the HDoA wanted an application that will allow them to notify the owners without them having to be outside the actual facility.
Throughout the HACC, I was tasked with primarily one task which was how to notify the pet owner’s. I looked for many solutions such as Twilio which allows SMS texting through an API, however my team and I decided to not go through with it because of budget constraints from the HDoA. So I then looked into native push notifications from web browsers to devices, but there was a major flaw with them. The flaw was they are not available on iOS due to the amount of security that is on Apple’s mobile ecosystem. The only way for notifications to be enabled is through making our own app for iOS specifically and adding notifications to it. Since we did not have the time to build a standalone iOS app, we decided not to go through with native push notifications through the browsers. So, we fell back onto emailing since that was a free solution. I used Meteor’s emailing package and through that I learned about Meteor’s methods system where you can call backend methods from the frontend.
This is the method on the backend to send an email:
Meteor.methods({
'sendEmail'({ to, from, subject, html }) {
new SimpleSchema({
to: { type: String },
from: { type: String },
subject: { type: String },
html: { type: String },
}).validate({ to, from, subject, html });
this.unblock();
Email.send({ to, from, subject, html });
},
});
This is the code on the frontend to call the method:
Meteor.call('sendEmail', {
to: ownerInfo.email,
from: 'astruhoids@gmail.com',
subject: 'Department of Agriculture',
html: animalReadyEmail(ownerInfo.firstName),
});
With Meteor’s email package I saw in the documentation that it allows for sending HTML for the email, so I made HTML templates for the emails that we needed to send to the pet owners.
This was the second hackathon I have participated in and the first time participating in the HACC. This hackathon was a lot less stressful as it was more than a few days compared to the Meteor Hackathon that I participated in previously. Overall, I had a good experience during this hackathon and I think I would definitely participate in the HACC again in the future.
You can find a deployed application of Nebula at https://holoholona.meteorapp.com.
To view more information about Nebula, you can visit the README page at https://github.com/HACC2021/astruhoids#readme.
Source: HACC2021/astruhoids