Coder Social home page Coder Social logo

microsoft / 25-days-of-serverless Goto Github PK

View Code? Open in Web Editor NEW
449.0 42.0 139.0 244 KB

Repository responsible for 25 days of Serverless challenges

Home Page: https://aka.ms/25DaysOfServerless

License: MIT License

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

25-days-of-serverless's Introduction

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.

25-days-of-serverless's People

Contributors

allcontributors[bot] avatar azureadvocatebit avatar brminnick avatar cmaneu avatar glaucia86 avatar gloveboxes avatar iennae avatar jansche avatar jasonhand avatar jeremylikness avatar johnpapa avatar justinyoo avatar maximrouiller avatar nitya avatar paladique avatar sandraahlgrimm avatar simonaco avatar softchris avatar strawnsc avatar trallard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

25-days-of-serverless's Issues

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Michael Brown

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/aguywithcode/25-days-of-serverless/tree/solutions/week-1/challenge-2

What Challenge is this for? (Challenge number between 1 and 25)

Challenge 2

(Optional) Anything else we should know? e.g., language used, location, blog post?

Created a logic app that sends a reminder based on an http request with the following body format:

{
  "reminderDate": "2019-12-04T08:50:00Z",
  "phoneNumber": "+1 425 555 1212",
  "message": "light candles"
}

[CHALLENGE SUBMISSION] - Challenge 3

Please provide the following information for your submission:

What is your name? (First, Last)

Manjunath P R

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/mangzee/25daysofserverless/tree/master/Day3

What Challenge is this for? (Challenge number between 1 and 25)

3

(Optional) Anything else we should know? e.g., language used, location, blog post?

Azure function with c#- HTTP trigger which receives the request from Github and saves the images to Imgur album.
Try out the demo here
Webhook on https://github.com/mangzee/WebHooksTester
Updated to Imgur album (through API)
https://imgur.com/a/T64HRje #25DaysOfServerless
@azureadvocates

[CHALLENGE SUBMISSION] - Challenge 5

Please provide the following information for your submission:

What is your name? (First, Last)

Ethan Arrowood

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/Ethan-Arrowood/25-days-of-serverless-2019/tree/master/NaughtyOrNice

What Challenge is this for? (Challenge number between 1 and 25)

Challenge 5

(Optional) Anything else we should know? e.g., language used, location, blog post?

TypeScript, Azure Functions, Azure Cognitive Services Text Analysis

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Marcus Turewicz

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/marcusturewicz/25-days-of-serverless-challenge/tree/master/Day-04

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

TypeScript Azure Functions with async MongoDB data-access-layer. There is a function each for adding, removing, updating and listing the dish requests. See repo README for further details.

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Niall Kelly

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/nkelly75/25-days-of-serverless/tree/master/day04

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

4 x Azure Functions for 4 API routes, data in Cosmos DB. More details in README.md.

PS. Thanks for approving my Day 3 issue. I also did days 1 and 2...! I'm listed on https://github.com/microsoft/25-days-of-serverless/blob/master/CONTRIBUTORS.md for Day 2 but link is to my day 1 directory. My 4 challenges so far are as follows:

https://github.com/nkelly75/25-days-of-serverless/tree/master/day01
https://github.com/nkelly75/25-days-of-serverless/tree/master/day02
https://github.com/nkelly75/25-days-of-serverless/tree/master/day03
https://github.com/nkelly75/25-days-of-serverless/tree/master/day04

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Gwyneth Pena

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/madebygps/25-days-of-serverless-2019/tree/master/day_04

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

I used .net Azure Functions, C#, MongoDB Azure Function Bindings and MongoDB atlas cluster free tier deployed on Azure.
Twitter thread can be found here

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Blaine Price

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/wbprice/25-days-of-serverless-2019-solutions/tree/master/5

What Challenge is this for? (Challenge number between 1 and 25)

5

(Optional) Anything else we should know? e.g., language used, location, blog post?

Implemented in NodeJS, written using an Azure Function App and the Azure Text Analytics API

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Marcus Turewicz

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/marcusturewicz/25-days-of-serverless-challenge/tree/master/Day-05

What Challenge is this for? (Challenge number between 1 and 25)

5

(Optional) Anything else we should know? e.g., language used, location, blog post?

Node.js Azure Function with Congitive Service (Translator Text + Text Analytics) using respective Node.js SDK's.

See repo README for more details.

[CHALLENGE SUBMISSION] - Challenge 4

Please provide the following information for your submission:

What is your name? (First, Last)

Gabor Gulyas

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/Bhawk90/25days-of-serverless/tree/master/day-4

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

I am using Azure Table Storage for storing data, "AzureWebJobsStorage" variable in application settings should be set before testing (or in local.settings.json).

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

David Ojeda

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/davidojedalopez/day-03

What Challenge is this for? (Challenge number between 1 and 25)

3

(Optional) Anything else we should know? e.g., language used, location, blog post?

Used AWS SAM CLI with Node12 runtime. AWS services involved: Lambda, DynamoDB, API Gateway, CloudFormation

[CHALLENGE SUBMISSION] - Challenge 3

Please provide the following information for your submission:

What is your name? (First, Last)

Marc Duiker

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/marcduiker/25daysofserverless2019/blob/master/src/Day03/SavePngToDBHttp.cs

What Challenge is this for? (Challenge number between 1 and 25)

3

(Optional) Anything else we should know? e.g., language used, location, blog post?

I ran the Function App locally and used ngrok to expose the local HTTP endpoint and used that as the webhook for the git push event.
https://twitter.com/marcduiker/status/1202306785933180928

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Stuart Leaver

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/stuartleaver/25-days-of-serverless/tree/master/03-webhooks

What Challenge is this for? (Challenge number between 1 and 25)

3

(Optional) Anything else we should know? e.g., language used, location, blog post?

The Azure SQL Database is a serverless one in the spirit of the challenge.

Oh, any bonus points for using cat images for testing!!!!

[CHALLENGE SUBMISSION] - Day 5

Please provide the following information for your submission:

What is your name? (First, Last)

Stuart Leaver

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/stuartleaver/25-days-of-serverless/tree/master/05-naughty-or-nice

What Challenge is this for? (Challenge number between 1 and 25)

5

(Optional) Anything else we should know? e.g., language used, location, blog post?

Azure Functions, Storage (Queue and Table), Azure Cognitive Services (Text Translator and Text Analytics) and an App Service. Oh, and C#

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Niall Kelly

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/nkelly75/25-days-of-serverless/tree/master/day03

What Challenge is this for? (Challenge number between 1 and 25)

3

(Optional) Anything else we should know? e.g., language used, location, blog post?

Used node.js function and Table Storage. Also simple jest tests. More details in README.md

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Chendrayan Venkatesan

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/ChendrayanV/iAzServerless

What Challenge is this for? (Challenge number between 1 and 25)

1

(Optional) Anything else we should know? e.g., language used, location, blog post?

Used PowerShell - That's it :) !

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Drew Skwiers-Koballa

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/dzsquared/25-days-of-serverless-day3

What Challenge is this for? (Challenge number between 1 and 25)

3

(Optional) Anything else we should know? e.g., language used, location, blog post?

C# in Azure Function and Azure SQL, https://www.drewsk.tech/2019/12/03/25-days-of-serverless-day-3/

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Niall Kelly

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/nkelly75/25-days-of-serverless/tree/master/day05

What Challenge is this for? (Challenge number between 1 and 25)

5

(Optional) Anything else we should know? e.g., language used, location, blog post?

Used blob storage for input - i.e. JSON with letters from children and blob storage for results. Approach and results described in readme

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Barbara Forbes

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/Ba4bes/25daysofserverless (with folders for the different days

What Challenge is this for? (Challenge number between 1 and 25)

  1. (Had previous pull requests for 1 and 2)

(Optional) Anything else we should know? e.g., language used, location, blog post?

PowerShell in Function App.
I have added Readme's with short motivations and resources to all folders :)

[CHALLENGE SUBMISSION] - Challenge 4

Please provide the following information for your submission:

What is your name? (First, Last)

Marc Duiker

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/marcduiker/25daysofserverless2019/tree/master/src/Day04

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

4 HttpTriggered functions backed by TableStorage.
https://twitter.com/marcduiker/status/1202356802140151815

[CHALLENGE SUBMISSION] Challenge 1

Please provide the following information for your submission:

What is your name? (First, Last)

John Long

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/jolo-dev/azure-serverless

What Challenge is this for? (Challenge number between 1 and 25)

1

(Optional) Anything else we should know? e.g., language used, location, blog post?

Written in Javascript

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

What is your name? (First, Last)

Barbara Forbes

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/Ba4bes/25daysofserverless/tree/master/Day4potluck

What Challenge is this for? (Challenge number between 1 and 25)

This is challenge 4
( I had also entered challenge 2 in my first pull request; https://github.com/Ba4bes/25daysofserverless/tree/master/Day2Lucy )

(Optional) Anything else we should know? e.g., language used, location, blog post?

This is PowerShell with a CosmosDB. It isn't the cleanest code, but I had no luck finding any documentation about connecting a PowerShell Function App to a cosmosDB (or any DB for that matter). So it took a lot of trial and error :-). Guess I need to blog about it myself soon😁

[CHALLENGE SUBMISSION] - Day 04

Please provide the following information for your submission:

What is your name? (First, Last)

David Ojeda

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/davidojedalopez/day-04

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

AWS with Node 12 runtime. Uses AWS Lambda, API Gateway and DynamoDB

[CHALLENGE SUBMISSION] - Challenge 4

What is your name? (First, Last)

Kevin, Candlert

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/KevinJCandlert/25-days-of-serverless-submissions/tree/master/25-days-of-serverless/day-4

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

My day-4 project is currently deployed at https://day4-20191205122750.azurewebsites.net/api/food
I used C# with Table Storage as the built in binding was easy to use. I spent the majority of time investigating the Json.Net Schema library, it's really interesting and I didn't know it existed before.

Future challenges are accessible

Not sure if this was intended but the future challenges are accessible by navigating to their URL.

https://25daysofserverless.com/calendar/${n}

[CHALLENGE SUBMISSION]

Please provide the following information for your submission:

Jan Schenk

github.com/jansche/25-days-of-serverless

26

none

[CHALLENGE SUBMISSION] - Challenge 5

Please provide the following information for your submission:

What is your name? (First, Last)

David Ojeda

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/davidojedalopez/day-05

What Challenge is this for? (Challenge number between 1 and 25)

5

(Optional) Anything else we should know? e.g., language used, location, blog post?

Uses AWS Comprehend to detect sentiment in words. Sadly the Swedish language is not supported by AWS right now :(

[CHALLENGE SUBMISSION] - Day 4

Please provide the following information for your submission:

What is your name? (First, Last)

Stuart Leaver

Where is your GitHub Repo ?(With your challenge solution)

https://github.com/stuartleaver/25-days-of-serverless/tree/master/04-api-endpoint

What Challenge is this for? (Challenge number between 1 and 25)

4

(Optional) Anything else we should know? e.g., language used, location, blog post?

Azure Function's written in C# persisting data to a table within Table Storage. I tried for CosmosDB, but I was having trouble with the bindings so maybe next time!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.