Inspiration

Our motivation for this project stemmed from the realization that conventional reminders on phones or notifications from seldom-used apps often lack the power to truly inspire or motivate. Users tend to dismiss these notifications, treating them like any other random news or fitness alert. To address this, we set out to create a more personalized reminder system—one that users wouldn't easily dismiss. Our solution: leveraging SMS notifications, which are more likely to grab users' attention.

What it does

Our program allows users to input their name, phone number, goal, and the desired reminder time through a web application. The application stores this data in a database, along with user information, and sends a daily personalized SMS containing their goal and a motivational message until the user cancels it.

How we built it

We constructed the front-end using Next.js and built the backend with Node.js. For SMS functionality, we integrated the Twilio API with Node.js. Firebase served as our real-time database to store and retrieve user data. The OpenAI API was incorporated to provide users with personalized, motivational messages. Express.js, alongside Node.js, handled server routing.

Challenges we ran into

Our road to completing this project has many obstacles that we did not see coming and that took up large chunks of time. First off, we used software we had never used before to gain new experience. Many of us had never used next.js before, and the same goes for the Twilio and OpenAI API. This was the root cause for most of our issues, and most of our debugging came from Twilio-specific issues that we had never seen before. Another big challenge we faced was getting the message to only send when the current time in someone’s location matched the time they inputted. This was difficult as we needed to create a function that constantly checks the server and time on the computer to see if they match, which took a lot of collaboration and failed attempts. Using the OpenAI API was also a huge learning curve, and we took a lot of time reading the documentation and articles to figure out how to implement it for our specific needs. A huge problem we faced later on was an issue with packages, as too many had been installed and we could no longer push our changes to GitHub since the commit size was too large. Our last resort, which ended up as our solution to this problem, was to individually upload the files to GitHub. Another challenge we ran into was the implementation of a .env folder, we noticed that trying to access information in the .env would break the program. We eventually decided that we would avoid using .env, however, this led to the deactivation of keys (which was pretty cool when we saw that it was deactivated) when we tried to upload it to Github.

Accomplishments that we're proud of

Going into the project, our group was fascinated with the possibilities of using AI and hoped to integrate software like chatGPT into our project. Using OpenAI’s API, we were able to get daily AI-generated motivational messages, based on your inputted goal. Through this, we were able to improve our knowledge of APIs, and AI in general. We are also proud that we were able to develop a full-stack application in due time. Going into this hackathon, only one member had notable experience with web development, however, throughout this project, we all developed skills in creating industry-standard web apps.

What we learned

Our group added many technical skills to our arsenal throughout this project, including next.js, firebase, OpenAI's API, express, and react hooks. As for collaboration skills, we learned that the most effective way to develop a project was to divide and conquer different tasks, this gives each member familiarity with their specific task, and makes debugging easier because of said familiarity.

What's next for resTracker

For some APIs paywalls made certain, necessary features, unavailable to us. For example We would also like to upgrade to the premium of Twilio, as it allows us to message more phone numbers before our key is exhausted. As it stands, resTracker is not scalable as we have a hard limit on how many messages we can send. One thing we wanted to experiment with was the idea of having responses from the user logged, so that as time progresses, the messages would become more personalized, and therefore, more motivating. This would be assisted with newer versions of ChatGPT (resTrack currently uses GPT 3.5 turbo). We could also scale the AI portion very easily as this would only require the purchase of more GPT tokens.

Built With

Share this project:

Updates