Back to Parent

Challenges faced

Considering the wide number of tools used (rake, postgres, google api client, slack api client, ruby, sinatra), the biggest challenge was obtaining documentation for each tool and learning how to make them work in harmony.

Some of the major issues:

  1. Google Calendar API: Due to lack of organized and readable documentation and changes made by google in the google-api-client gem v0.9, OAuth integration and accessing tokens was a challenge into which many hours were. sunk. Find a guide, made by me for easy implementation of Google OAuth here:
  2. Slack API: While Slack API’s documentation is very readable, the wide number of commands and interactions used in Jude let to a lot of troubleshooting.

Future Work

There are a number of functionalities that can be added to make this app appealing to wider audience. Some of the focus areas would be:

  1. Refresh tokens: Google APIs access token provide single time access for one hour. To keep accessing the API data, one must use refresh tokens the usage of which I have not been able to figure out.
  2. Multiple users: Currently the database and functionality is configured to handle only one user. Future work would involved building a scalable application that can be used all Carnegie Mellon students.
  3. Daily Updates: Jude will provide a morning update of the day’s schedule
  4. Work hours for an assignment: Different assignments require different amount of effort. So Jude will accept the number of hours required for an assignment as an input and accordingly decide when to set the reminder
  5. Completed assignments: Jude will be able to
  6. Filtering: Jude will be filter only your assignments from your entire google calendar to show them to you
  7. Meeting and lecture additions: Jude will be able to add lectures and group meetings to your calendar, while being able to remind you about the same

All the above features require a modification only in the Sinatra app, without need for any additional APIs.

References

  1. http://readysteadycode.com/howto-access-the-google-calendar-api-with-ruby
  2. https://developers.google.com/api-client-library/ruby/guide/aaa_oauth
  3. https://api.slack.com/events-api#event_type_structure
  4. https://api.slack.com/docs/message-buttons
  5. http://www.rubydoc.info/github/google/google-api-ruby-client/Google/Apis/CalendarV3/CalendarService

Content Rating

Is this a good/useful/informative piece of content to include in the project? Have your say!

0