Inspiration
The idea to tackle this challenge stems from the importance of this service. With covid-19 and the current inefficient method of retrieving pets we wanted to help these people automate and organize their process.
What it does
Our service allows for one admin account to manage and automatically text users about their pet. The first major part is that there will only be one admin account. In practice this will prevent the vulnerability of registration of accounts. This will simply just be a password and email (for testing purposes we will use a fake admin email). Once logged in the admin can add pets with specified days until released and other information which will be stored. The most important bit will be the phone number which will be used to text the clients about their pet to automate the process. In production the service will decrease the pet's quarantine days by one at every 12am. The service will text the user if there is one or zero days left. Once the day of pickup arrives the service will text the user a link which will bring the client to a webpage with a button to inform the employees that they have arrived. From there the admins will be notified on the admin view, once the pet is ready to be picked up they can click a button to inform the user that their pet is ready for pick up. From there the process is complete and it will delete itself the next day.
The other part of our service is the method of allowing owners to view information of their pets. Once their pet is quarantined the service will text the user confirmation and a link with a temporary guest account credentials to view information about their pet. This temporary guest account is completely separate from the admin account and cannot be used to access any admin information.
How we built it
We used nodejs and javascript, express, azure, mongodb, html/css/ejs, breejs, twillio,and other modules to build our app. Node js was what we used to create our server using express for the API. mongodb was used to store the user information and used the crypto module to encrypt the passcodes. The pet information was stored in a local json file on the server. To be honest if we were given more time we would either convert this to a better local database file or use mongodb. Breejs was the job scheduler we used and allowed for tracking the days a pet was quarantined and automating processes based on that. Twillio was our sms api that we used, currently we are using a free trial and it should be good for this month. However if this were to go farther we would most likely switch to a paid version. Azure was what we used to host our server and currently we are using the education version which is actually very powerful.
Challenges we ran into
Some challenges we ran into was time, school was giving us a lot of assignments and we had to time manage efficiently to keep up. Another problem was Breejs, Breejs is easy and hard at the same. It's powerful and allows us to create a job scheduler relatively fast. However one issue is its lack of documentation. Breejs does have a github Readme explaining how to use it, however there is nothing else. There are very little code examples and the postMessage function either does not work or makes no sense. Another challenge was lack of experience, we have knowledge with node js and authentication but we lacked truly using them in a production application. Hosting was very scary because we had a general grasp in how everything would work but hosting is something none of us really had experience with. Luckily with help from the internet we got it to work with Azure.
Accomplishments that we're proud of
Something we're proud of is it just working. We never really thought we could actually do as much as we did and it's an exhilarating experience. Something I'm (Jaxon) personally proud of is the system of locally storing the pets information. I admit there are issues with it (with the biggest one being it'll get very fat) but I'm still happy I got it to work relatively smoothly.
What we learned
We learned a lot about actual production projects and we got to practice applying what we knew in something that needed to work, well reliably.
What's next for 808PetQuarentine
If we are given more time something we would do is smooth out some functionality of the server and put the pet data in a more secure storage method. Another goal would be to make the website a lot nicer to look at as of right now we focused more on proof of concept. If we are taken seriously we would upgrade our services to paid versions to allow for more reliability.
Built With
- azure
- breejs
- crypto
- express.js
- jsonwebtoken
- mongodb
- node.js
- twilio
Log in or sign up for Devpost to join the conversation.