Goodbye, Procrastination!

Julie is a college student. Julie wants to do well in her studies, and have fun at the same time. Julie knows that in this current day and age, just doing well in school is not enough; she also wants to work on side projects and pick up new skills in her free time. Julie loves to procrastinate.

And this is why Julie, and the rest of the 95% of human population who always like to procrastinate, needs CalPal. CalPal is any student's most trusted buddy who can help you generate a calendar from your to-do list automatically. With CalPal, Julie now knows when is the best time to do the things she wants to do. And thanks to CalPal, Julie will never dare to procrastinate again.

How we built it

CalPal is a Telegram bot, built with the Telegram Bots API using a open source Java library. CalPal also uses the NYU Events API to get event recommendations for our users.

The logic behind CalPal's sophisticated automatic calendar generation was built in-house over this weekend.

Challenges we ran into

Natural language processing has always been a challenge. It was challenging to even attempt to allow natural language input, since it was just a short 30 over hours of hacking. Though limited, CalPal does attempt to offer natural language input.

There is no best way to decide on an "optimal" arrangement of activities on a calendar - do we decide based on subjective priority, or using scientific principles? We did a lot of research regarding this problem, and we eventually decided to define "optimal" as the best time to do an activity in a day. This is why CalPal will always advise you to work out in the morning (you burn the most calories that way! ;)).

To ensure a smooth user experience while being constrained by a chat interface, we also worked a lot on styling and customizing CalPal's responses. Initially, we wanted to use Google's Html2Image library to send users an image view of the generated calendar. However, it added too much lag time, which we felt worsened UX instead of improved it. After some quick thinking on the toes, we turned to using Markdown to style CalPal's responses instead.

Accomplishments that we're proud of

This is the first time we're making use of an API, and it was confusing at first as to how to make API calls. With some research and a little Postman help, we eventually figured out how to make use of the NYU events API. Through this hackathon, we understand how APIs work so much better!

We also didn't expect the backend logic for CalPal to be so complicated. Given the time constraint, we are very proud that we managed to stay true to our core concept, even if it meant having to give in to certain trade-offs.

The three of us are all Undergraduate students specializing in different fields. One of us is a Software Engineer, one a UX designer, and one aspiring Marketer. The common belief seems to be that the more developers in the team, the better. However, we feel that we have proven that wrong by fully making use of each of our complementary skillsets to come up with CalPal.

What we learned

The most important thing that we learnt is definitely the importance of "letting go". As perfectionists, it was very hard to accept that we will never make CalPal perfect within the limited time of the hackathon.

The other thing that we learnt: an all girls team at a technical hackathon can still rock it all the same too :-)

What's next for CalPal

There definitely needs to be more improvement in the natural language input processing for CalPal, it will be more convenient for users to interact with CalPal. We are also looking into enhancements for our in-house automatic calendar generation, such as taking into account priority of tasks.

We also look forward to exploring voice input for our users to have an even more convenient experience with CalPal!

Built With

  • java
  • nyu-events-api
  • telegram-bots-api
Share this project:

Updates