I am a programmer that uses the different programming websites to improve my algorithmic knowledge. Everyday I have to check that is there any contest coming on website for today. Now to save my time on just checking these websites regularly I have given this task to Alexa. So doesn't it looks quite cool that now I can ask Alexa about the upcoming or current contests from different websites and she will tell you the details about the contests.
Also the Amazon Alexa Skills Challenge on Devpost have $43,620 in prizes what more I need as an Inspiration :)
What it does
This is a Amazon Alexa Skill Kit that will update you about the current and future programming contest available on different websites like codeforces, codechef and hackerrank. You can ask questions like When is the codefoces next contest, when is the next hackerrank contest or Is there any contest running on codechef. Right now this skill support only codeforces, codechef and hackerrank. I will update it for all major programming websites.
How I built it
I have never build this type of application before so I have followed links from the resources tab and the Amazon Alexa documentation. I have used python 2.7 to build this skill and the backend is hosted on AWS Lamda. I have also used BeautifulSoup Python Library to dynamically get the required content from the contest pages.
Challenges I ran into
I have faced many issues while building this entire project.
- I have learnt how to use Amazon AWS to host the Amazon Skills Kit backend.
- The datetime format is different on all the contest pages so I have to deal with datatime objects and then format it according to the need.
- I have learnt about scrapping web pages as all the contest websites doesn't provides their API.
- I have changed the maximum execution time to 10 seconds so that the content is retrived properly. But I have to improve it more so that it becomes more responsive.
- I have to create the deployment package for this project as it uses BeautifulSoup that is not by default included in AWS Lamda.
While there are other issues also but with awesome Amazon Alexa and Amazon AWS documentation these problems can be easily solved bu anyone.
Accomplishments that I'm proud of
Finally now Alexa can tell me the details about the current and upcoming contests. So no need to regularly check the websites. Ask Alexa :) Below is the link to get the details about enabling the skill on your device.
What I learned
- How t use Amazon AWS Lamda.
- How to do web scrapping using BeautifulSoup library in Python 2.7
- Last but the major How to create Amazon Alexa Skills Kit.
What's next for Contest Notify
I will try to improve it in my free time. I will add the support for more programming websites. Also I will add the feature to register for the contests.
I will also add function to get the Hackathon details also. and may be next time you will be using this skill to register for the upcoming devpost hackathon. :p