Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/microsoft/25-days-of-serverless

Repository responsible for 25 days of Serverless challenges
https://github.com/microsoft/25-days-of-serverless

azure azure-functions challenge chsharp golang java javascript nodejs php python ruby serverless typescript

Last synced: 3 months ago
JSON representation

Repository responsible for 25 days of Serverless challenges

Awesome Lists containing this project

README

        

# 25 Days of Serverless

[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)

[![advent-of-serverless.gif](https://s5.gifyu.com/images/advent-of-serverless.gif)](https://gifyu.com/image/vNo5)

## 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. :smiley: Our [Discord Server](https://discord.gg/8kbAeud) 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

- **[Contents 25 days of Serverless](#contents-25-days-of-serverless)**
- **[Main Goal](#main-goal)** 🎯
- **[Rules](#rules)** 🎫
- **[Suggested Resources](#suggested-resources)** 📑
- **[Azure For Students Account](#azure-for-students-account)** ⭐️
- **[How Submit Your Solution](#submit-your-solution-as-a-custom-ISSUE-to-our-repository)** 🔥
- **[Challenges](#challenges)** 💻
- **[Discord Channel](#discord-channel)** 💬
- **[Solutions](#solutions)** 💡
- **[Solutions Week-1](#solutions-week-1)**
- **[Solutions Week-2](#solutions-week-2)**
- **[Solutions Week-3](#solutions-week-3)**
- **[Contributing](#contributing)** 🚩
- **[Contributors Hall of Fame](CONTRIBUTORS.md)** 🏆
- **[Awesome - Azure Functions & Serverless](RESOURCES.md)** 📚

## 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](https://aka.ms/25daysofserverless) in the first 25 days of December.

2. Tweet your progress during the challenge period using the hashtag [#25DaysOfServerless](https://twitter.com/search?q=%2325DaysOfServerless).

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

- **[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=25daysofserverless-github-cxa)**
- **[Azure Account](https://azure.microsoft.com/?WT.mc_id=25daysofserverless-github-cxa)**
- **[Azure Functions Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions&WT.mc_id=25daysofserverless-github-cxa)**

## Azure For Students Account

If you are a student at a College or University, you can create your **[Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=25daysofserverless-github-cxa)** 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](https://azure.microsoft.com/free/students/?WT.mc_id=25daysofserverless-github-cxa)**.

## 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](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](https://github.com/microsoft/25-days-of-serverless/issues/new?assignees=&labels=challenge-submission&template=challenge-solution-submission.md&title=%5BCHALLENGE+SUBMISSION%5D+) issue and submit.

Have questions or comments? Submit a regular [ISSUE](https://github.com/microsoft/25-days-of-serverless/issues/new/choose) here with details.

## Discord Channel

Discussion Channels are available on Discord: [Permanent Link to Server](https://discord.gg/8kbAeud)
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](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=25daysofserverless-github-bramin) applies to all discussion channels.

## Solutions

Here all the link solutions of each challenges published in **[dev.to](https://dev.to/)**

### Solutions Week-1

| Challenges | Description | Important Resources | Responsible | Solution |
|---|---|---|---|---|
| [Webhooks (**#1**)](https://25daysofserverless.com/calendar/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](https://docs.microsoft.com/en-us/azure/iot-central/core/howto-trigger-azure-functions?WT.mc_id=25daysofserverless-github-cxa)** | **[Jen Looper](https://github.com/jlooper)** | **[Spin Your Dreidel!](https://aka.ms/AA6r47e)** |
| [Task Scheduler (**#2**)](https://25daysofserverless.com/calendar/2) | Implement a cron job using serverless - send a daily reminder via text (use twilio) about the current challenge | **[Azure Functions - Cron Job](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-twilio?WT.mc_id=25daysofserverless-github-cxa)** | **[Jen Looper](https://github.com/jlooper)** | **[Lucy's Dilemma](https://aka.ms/AA6qwkz)** |
| [Webhooks (**#3**)](https://25daysofserverless.com/calendar/3) | Create a webhook with serverless that GitHub sends commit data | **[Azure Functions Docs](https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=25daysofserverless-github-cxa)** | **[Christian Nwamba](https://github.com/christiannwamba)** | **[Github Commit (Push) Webhook](https://aka.ms/AA6r47c)** |
| [API Endpoint (**#4**)](https://25daysofserverless.com/calendar/4) | Implement a function that connects to a database and returns data in a http response | **[Azure Functions - HTTP Trigger](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook?tabs=javascript&WT.mc_id=25daysofserverless-github-cxa)** | **[Glaucia Lemos](https://github.com/glaucia86)** | **[Creating CRUD with Azure Functions & MongoDB](https://aka.ms/AA6qz2v)** |
| [Smart Apps (**#5**)](https://25daysofserverless.com/calendar/5) | Implement a function that calls the Cognitive Services text analytics API and translates/analyses sentiment for a given text | **[Text Analytics API Documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/?WT.mc_id=25daysofserverless-github-cxa)** | **[Chris Noring](https://github.com/softchris)** | **[How you can learn Language Analysis using AI services in the Cloud and JavaScript](https://aka.ms/AA6r7f9)** |
| [Durable Pattern (**#6**)](https://25daysofserverless.com/calendar/6)| Implement a function that schedules a message to be sent on Slack/Teams | **[Azure Functions - Durable Functions](https://docs.microsoft.com/azure/azure-functions/durable/quickstart-js-vscode?WT.mc_id=25daysofserverless-github-cxa)** | **[Christian Nwamba](https://github.com/christiannwamba)** | **[Build a Slack /remind Clone](https://aka.ms/AA6rjsw)** |
| [Smart Apps (**#7**)](https://25daysofserverless.com/calendar/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](https://docs.microsoft.com/azure/azure-functions/functions-create-first-java-maven/?WT.mc_id=25daysofserverless-devto-cxa)** | **[Sandra Ahlgrimm](https://github.com/SandraAhlgrimm)** | **[Miguel needs our help](https://aka.ms/AA6rt4y)** |

### Solutions Week-2

| Challenges | Description | Important Resources | Responsible | Solution |
|---|---|---|---|---|
| [Status Page (**#8**)](https://25daysofserverless.com/calendar/8)| Build a method to communicate the current status and running log of service disruptions to a global audience. | **[Azure Functions - Webhooks](https://docs.microsoft.com/en-us/azure/iot-central/core/howto-trigger-azure-functions?WT.mc_id=25daysofserverless-github-cxa)** | **[Jason Hand](https://github.com/jasonhand)** | **[Build a Serverless Status Page with Azure Functions, SignalR, and Static HTML](https://aka.ms/AA6s5wo)** |
| [GitHub Bot (**#9**)](https://25daysofserverless.com/calendar/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](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook?tabs=csharp&WT.mc_id=25daysofserverless-github-cxa)** | **[John Papa](https://github.com/johnpapa)** | **[Automate Your Replies to GitHub Issues with Serverless](https://aka.ms/AA6smy4)** |
| [Timer Trigger (**#10**)](https://25daysofserverless.com/calendar/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](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=csharp&WT.mc_id=25daysofserverless-github-cxa)** | **[Jasmine Greenaway](https://github.com/paladique)** | **[Create a website with daily deals from Twitter using Logic Apps and Blob Storage](https://aka.ms/AA6sqoo)** |
| [Database trigger (**#11**)](https://25daysofserverless.com/calendar/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](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-cosmosdb-v2?WT.mc_id=25daysofserverless-github-cxa)** | **[Chris Noring](https://github.com/softchris)** | **[Learn Serverless Database trigger in JavaScript, CosmosDB + Slack](https://aka.ms/AA6smyd)** |
| [Redis Caching (**#12**)](https://25daysofserverless.com/calendar/12) | Create a function that sends a cached response if the requests are redundant | **[Redis Caching with Node](https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/cache-nodejs-get-started/?WT.mc_id=25daysofserverless-github-cxa)** | **[Chris Nwamba](https://github.com/christiannwamba)** | **[Caching Serverless Responses](https://aka.ms/AA6sqoe)** |
| [Database trigger (**#13**)](https://25daysofserverless.com/calendar/13) | include a short description | **[Quickstart: Create an HTTP triggered Python function in Azure](https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-python?WT.mc_id=25daysofserverless-github-cxa)** | **[Simona Cotin](https://github.com/simonaco)** | **[Build your jokes generator using Machine Learning and Serverless](https://aka.ms/AA6sj2z)** |
| [Stream processing (**#14**)](https://25daysofserverless.com/calendar/14)| Implement a function that processes messages in realtime (SignalR) | **[SignalR Service bindings for Azure Functions](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-signalr-service?WT.mc_id=25daysofserverless-github-cxa)** | **[Chris Noring](https://github.com/softchris)** | **[TBI](to-be-included)** |

### Solutions Week-3

| Challenges | Description | Important Resources | Responsible | Solution |
|---|---|---|---|---|
| [Image Recognition and Description (**#15**)](https://25daysofserverless.com/calendar/15)| Integrate Cognitive Services and Computer Vision to calculate tags and descriptions for the images (builds on [challenge #7](https://github.com/microsoft/serverless-challenges/tree/master/week-1/challenge-7) ) | **[Computer Vision API](https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/?WT.mc_id=25daysofserverless-github-cxa)** | **[Sandra Ahlgrimm](https://github.com/SandraAhlgrimm)** | **[TBI](to-be-included)** |
| [Wrapping a Perfect Gift (**#18**)](https://25daysofserverless.com/calendar/18)| Use Cogitive Services to ensure that each gift is perfectly wrapped | **[Computer Vision API](https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/?WT.mc_id=25daysofserverless-github-cxa)** | **[Brandon Minnick](https://twitter.com/TheCodeTraveler)** | **[Perfect-Gift](https://dev.to/azure/25daysofserverless-day-18-solution-wrapping-the-perfect-gift-2542)** |

### Solutions Week-4

| Challenges | Description | Important Resources | Responsible | Solution |
|---|---|---|---|---|
| [Azure Key Vault Backup/Restore (**#22**)](https://25daysofserverless.com/calendar/22)| Backup and restore Azure Key Vault secrets to/from Azure Blob Storage, using Manged Identity | **[Azure Functions with Managed Identity](https://docs.microsoft.com/azure/app-service/overview-managed-identity/?WT.mc_id=25daysofserverless-github-cxa)** | **[Justin Yoo](https://github.com/justinyoo)** | **[Winter Solstice: Protect Secrets from Grim Reaper!](https://dev.to/azure/backup-restore-key-vault-day-22-of-25daysofserverless-winter-solstice-protect-secrets-from-grim-reaper-3n37)** |

## 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](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=25daysofserverless-github-bramin).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/?WT.mc_id=25daysofserverless-github-bramin) or
contact [opencode@https://microsoft.com:80/?WT.mc_id=25daysofserverless-github-bramin](mailto:opencode@https://microsoft.com:80/?WT.mc_id=25daysofserverless-github-bramin) with any additional questions or comments.