Inspiration
Both Russell and Kara are very interested in chess. We find it to be an amazing way to take a break from school or work and still be doing a challenging activity. However, it is easy to forget to play as we become swamped with school. This brings us to Daily Chess Pro.
What it does
Daily Chess Pro is a Facebook Messenger bot which sends subscribed users a random chess puzzle every day. Users talk to the bot through Messenger and can request instant chess puzzles, or subscribe/unsubscribe to receive one daily.
How we built it
We built Daily Chess Pro using the Facebook Messenger API to facilitate the back and forth conversation. We also took advantage of the awesome features of Google Cloud Platform, including the App Engine for hosting, cron jobs to send puzzles on a schedule, and the Google Cloud SQL MySQL database to store subscribed user information. The application was built using Flask and Python to manage webhooks for the Messenger API.
Challenges we ran into
We ran into challenges with choosing the correct tools which would fit our project idea the best. For example, we initially tried using Google Datastore to simplify our database system. However, we ran into several issues when installing the Python dependencies due to versions not aligning. This made us later switch to Google Cloud SQL to provide a more robust infrastructure and greater opportunities to expand. We also ran into limitations with Lichess (the source of the chess puzzles) as it was not able to return to us a user's performance on the puzzle, making it extremely involved to track user progress.
We also took 2 hours to make our 3 minute demo video.
Accomplishments that we're proud of
We're proud of getting our messenger bot to work as desired, as we were able to successfully debug all errors we ran into or find a clean work around solution. Furthermore, we were able to break down tasks successfully between the two of us so that we could finish on time and each make a large contribution to the project.
What we learned
- We learned a lot about various features of Google Cloud Platform, such as the App Engine, Compute Engine, Datastore, Firestore, and Cloud SQL
- Neither team member had used the Facebook Messenger API, and we each discovered a lot of capabilities of it which we didn't know existed
- We learned 3 ways not to connect a MySQL database to a Python application, and 1 way to connect a MySQL database to a python application
- How webhooks work
- Extent of Flask
What's next for Daily Chess Pro
- Daily Chess Pro will be available to the public once the page gets approved by Facebook.
- Progress tracking and leaderboards amongst friends
- Unique schedules per user
- Specify category of chess puzzle to receive
Built With
- api
- cronjob
- facebook-messenger
- flask
- gcp
- mysql
- python



Log in or sign up for Devpost to join the conversation.