/25-days-of-serverless

Repository responsible for 25 days of Serverless challenges

MIT LicenseMIT

25 Days of Serverless

All Contributors

advent-of-serverless.gif

OOF Announcement

The unthinkable has happened: after weeks of community members all over the globe chipping in to help solve people's problems with serverless technology, the evil grinch's heart is starting to soften! He's still not quite ready to give up his server-stealing plot, but our whole Azure Cloud Advocacy team is flying up to the grinch's lair to help convince him to change his ways.

As such, the team behind 25 Days of Serverless is OOF (Out Of Facility/Office) between Dec 24, 2019 and January 1, 2020. We'll not review Issues in this period of time, but encourage you to catch up on any challenges you haven't had the time to work on yet. 😃 Our Discord Server is a perfect place to reach out to for community support during this time. After our return, we'll add contributors who submitted a working solution as an Issue to CONTRIBUTORS.md file until January 15, 2020.

Contents

Main Goal

There is no better way to learn a new technology than with gamification. And we're here to help you learn Serverless once and for all with 25 daily challenges: 25 days of Serverless! Come join!

Rules

  1. Solve each coding challenge in the first 25 days of December.

  2. Tweet your progress during the challenge period using the hashtag #25DaysOfServerless.

  3. Submit the code of your solution as a PR to this repository before the sample solution gets published (usually 24h after the challenge is published).

  4. You may get picked for a mention during our weekly wrap-up video. If you submit a PR you agree that we mention your name and/or nicknames (GitHub, Twitter) publicly in the context of 25 Days of Serverless.

Suggested Resources

Azure For Students Account

If you are a student at a College or University, you can create your Azure for Students account. This account will give you the benefit of having a $ 100 credit to use the Azure Services for free, without having a credit card and free developer tools as well. To activate this account, just access the link HERE.

Submit your solution as a custom ISSUE to our repository

🚨 Submission Process Change: Starting Dec 3, 2019 🚨

We've been blown away at the interest and engagement around this challenge! The previous process used Pull Requests. The new process uses Issues. We hope this change makes it easier for you to send us your amazing work, and for us to highlight your contributions. New PRs after Dec 4, 2019 may not be processed.

Be among the first contributors and solve the challenge within 24 hours of publishing. To have your contribution acknowledged, follow our CONTRIBUTING.md guidelines. The short version:

  1. Create a Github repo with your solution for that challenge
  2. Fill in the details for the Challenge Solution Submission issue and submit.

Have questions or comments? Submit a regular ISSUE here with details.

Discord Channel

Discussion Channels are available on Discord: Permanent Link to Server We ask everyone to be fair and helpful and to not spoil the challenges by publishing solutions prominently. The Microsoft Open Source Code of Conduct applies to all discussion channels.

Solutions

Here all the link solutions of each challenges published in dev.to

Solutions Week-1

Challenges Description Important Resources Responsible Solution
Webhooks (#1) Implement a webhook using serverless - create a new repo for the daily challenges, listen to new PRs events and send out a celebratory tweet Azure Functions - Webhooks Jen Looper Spin Your Dreidel!
Task Scheduler (#2) Implement a cron job using serverless - send a daily reminder via text (use twilio) about the current challenge Azure Functions - Cron Job Jen Looper Lucy's Dilemma
Webhooks (#3) Create a webhook with serverless that GitHub sends commit data Azure Functions Docs Christian Nwamba Github Commit (Push) Webhook
API Endpoint (#4) Implement a function that connects to a database and returns data in a http response Azure Functions - HTTP Trigger Glaucia Lemos Creating CRUD with Azure Functions & MongoDB
Smart Apps (#5) Implement a function that calls the Cognitive Services text analytics API and translates/analyses sentiment for a given text Text Analytics API Documentation Chris Noring How you can learn Language Analysis using AI services in the Cloud and JavaScript
Durable Pattern (#6) Implement a function that schedules a message to be sent on Slack/Teams Azure Functions - Durable Functions Christian Nwamba Build a Slack /remind Clone
Smart Apps (#7) Build an application that takes text as an input and returns an image found on unsplash or another image platform. Azure Functions w/ Java Sandra Ahlgrimm Miguel needs our help

Solutions Week-2

Challenges Description Important Resources Responsible Solution
Status Page (#8) Build a method to communicate the current status and running log of service disruptions to a global audience. Azure Functions - Webhooks Jason Hand Build a Serverless Status Page with Azure Functions, SignalR, and Static HTML
GitHub Bot (#9) Implement a function that will reply to new issues with a thank you message and assign a label Azure Functions HTTP triggers and bindings John Papa Automate Your Replies to GitHub Issues with Serverless
Timer Trigger (#10) Create a tool that finds deals of the day from Twitter and adds them to a static web page Timer trigger for Azure Functions Jasmine Greenaway Create a website with daily deals from Twitter using Logic Apps and Blob Storage
Database trigger (#11) Implement a function that listens to cosmosdb change feed, parses data and sends an sms Azure Cosmos DB bindings for Azure Functions 2.x Chris Noring Learn Serverless Database trigger in JavaScript, CosmosDB + Slack
Redis Caching (#12) Create a function that sends a cached response if the requests are redundant Redis Caching with Node Chris Nwamba Caching Serverless Responses
Database trigger (#13) include a short description Quickstart: Create an HTTP triggered Python function in Azure Simona Cotin Build your jokes generator using Machine Learning and Serverless
Stream processing (#14) Implement a function that processes messages in realtime (SignalR) SignalR Service bindings for Azure Functions Chris Noring TBI

Solutions Week-3

Challenges Description Important Resources Responsible Solution
Image Recognition and Description (#15) Integrate Cognitive Services and Computer Vision to calculate tags and descriptions for the images (builds on challenge #7 ) Computer Vision API Sandra Ahlgrimm TBI
Wrapping a Perfect Gift (#18) Use Cogitive Services to ensure that each gift is perfectly wrapped Computer Vision API Brandon Minnick Perfect-Gift

Solutions Week-4

Challenges Description Important Resources Responsible Solution
Azure Key Vault Backup/Restore (#22) Backup and restore Azure Key Vault secrets to/from Azure Blob Storage, using Manged Identity Azure Functions with Managed Identity Justin Yoo Winter Solstice: Protect Secrets from Grim Reaper!

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com/?WT.mc_id=25daysofserverless-github-bramin.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@https://microsoft.com:80/?WT.mc_id=25daysofserverless-github-bramin with any additional questions or comments.