All Projects → aws-samples → aws-step-functions-plagiarism-demo-dotnetcore

aws-samples / aws-step-functions-plagiarism-demo-dotnetcore

Licence: MIT-0 license
A simple workflow for developing AWS Step Functions to demonstrate how you can combine AWS Step Functions with AWS Lambda using .NET 6 and the Serverless Application Model (SAM), and expose your workflow via an API Gateway!

Programming Languages

C#
18002 projects
Vue
7211 projects
HTML
75241 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to aws-step-functions-plagiarism-demo-dotnetcore

aws-step-functions-long-lived-transactions
Deal with the complexities of dealing with a long lived transaction across distributed components in your microservices architecture using AWS Step Functions.
Stars: ✭ 109 (+87.93%)
Mutual labels:  aws-serverless, aws-step-functions
dot-net-core-pre-push-checks
A dot net core pre push checks hook
Stars: ✭ 53 (-8.62%)
Mutual labels:  dotnetcore
CrawlerSamples
This is a Puppeteer+AngleSharp crawler console app samples, used C# 7.1 coding and dotnet core build.
Stars: ✭ 36 (-37.93%)
Mutual labels:  dotnetcore
aliyun-openapi-sdk-net-core
aliyun open api sdk for .net core 2.0
Stars: ✭ 17 (-70.69%)
Mutual labels:  dotnetcore
Dot-Net-Ecosystem
Welcome to the GitHub repository of the .NET Ecosystem. This repository contains the examples for the Pluralsight course: The .NET Ecosystem: The Big Picture. You can download a copy and follow along in the course.
Stars: ✭ 34 (-41.38%)
Mutual labels:  dotnetcore
dotget
Installer for .NET Core CLI Apps
Stars: ✭ 35 (-39.66%)
Mutual labels:  dotnetcore
ApiJwtWithTwoSts
Web API authorization, multi-IDP solutions in ASP.NET Core
Stars: ✭ 43 (-25.86%)
Mutual labels:  dotnetcore
dotnet-core-microservices-kafka
Asp.Net Core microservices that communicate asynchronous through Kafka message broker.
Stars: ✭ 42 (-27.59%)
Mutual labels:  dotnetcore
sam-python-crud-sample
This project is an example about lambda, SAM, dynamodb. This repository contains source code and supporting files for a serverless application that you can deploy with the SAM CLI. It includes the following files and folders.
Stars: ✭ 71 (+22.41%)
Mutual labels:  aws-sam-cli
PATCH
The PATCH repository for issues tracking, wiki and shared material.
Stars: ✭ 34 (-41.38%)
Mutual labels:  dotnetcore
GatewayService
GatewayService (Ocelot).
Stars: ✭ 19 (-67.24%)
Mutual labels:  dotnetcore
OtripleS
This is an open source schooling system, dedicated to provide a better experience for schools needing a management and communication and tutoring system all in one place. This project is aiming toward directing all the software development funds and hours to families in need, the idea of the project is to allow schools to use the system as long …
Stars: ✭ 273 (+370.69%)
Mutual labels:  dotnetcore
setup-sam
Action to set up AWS SAM CLI and add it to the PATH
Stars: ✭ 107 (+84.48%)
Mutual labels:  aws-sam-cli
abp plugin with ui
Demo of using multiple angular applications and aspnetboilerplate to create plugin application
Stars: ✭ 17 (-70.69%)
Mutual labels:  dotnetcore
DNZ.SEOChecker
SEO Checker and Recommander Plugin (like wordpress Yoast) for ASP.NET Core.
Stars: ✭ 18 (-68.97%)
Mutual labels:  dotnetcore
AsteroidsWasm
Collection of applications based on a single C# .NET Standard project running in: Blazor Client (WebAssembly), Blazor Server, Electron, WPF, WinForms, Xamarin
Stars: ✭ 136 (+134.48%)
Mutual labels:  dotnetcore
LoveCollection
我们搞技术的经常会要收藏些链接、资料什么的。但是,由于资料过多,浏览器的收藏夹并不便于管理,于是就诞生了“爱收藏”。https://i.haojima.net
Stars: ✭ 41 (-29.31%)
Mutual labels:  dotnetcore
Pharmacist
Builds observables from events.
Stars: ✭ 221 (+281.03%)
Mutual labels:  dotnetcore
Stock.Charts
This is a demo for use of the Skender.Stock.Indicators NuGet package. It is an Angular website with a .NET Web API for backend generation of indicators.
Stars: ✭ 42 (-27.59%)
Mutual labels:  dotnetcore
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+86.21%)
Mutual labels:  dotnetcore

AWS Step Functions Plagiarism Demo .NET

Welcome! This a simple workflow to demonstrate how you can combine AWS Step Functions with AWS Lambda, Amazon DynamoDB, AWS XRay, using Microsoft .NET Core.

Along the way we provide an example of how to integrate Amazon API Gateway with AWS Step Functions, and use the AWS Step Function Service Integration Callback Pattern, to interface with an external website from a manual process in the workflow.

You will also see how we use the AWS Serverless Application Model (SAM) to define and model your Serverless application, and use AWS SAM CLI to build and deploy it.

The Scenario

To illustrate the use of AWS Step Functions I have created a scenario that describes a process where university students caught plagiarising on exams and/or assignments are required to take a test to assess their knowledge of the universities referencing standards.

Visually, the process looks like this:

Developing With Step Functions

The process starts by:

  1. Registering the plagiarism incident
  2. Scheduling an exam. Students have one week to complete the test.
  3. Send the student an email notification to inform them of the requirement
  4. The process waits for the student to complete the exam, then
  5. Determining whether or not the student has sat the exam, or passed

If the student has fails the exam they are allowed to resit the exam. Students get 3 attempts to pass the exam before the incident is either resolved, or administrative action is taken.

The Architecture

Developing With Step Functions Architecture

The architecture is relatively simple. There are two front end websites - one "Admin" website that capture the plagiarism incident; and a "Testing Centre" that tests the students knowledge of plagiarism.

The incident captured at via the Admin website initiates the AWS Step Function execution through an AWS Service integration on the /incident resource for the POST method.

Integration Request

Once the the exam is scheduled, we use an AWS Lambda service integration Task with a .waitForTaskToken (see AWS docs). The Task Token is passed to the function which in turn generates the email which is sent to the student, notifying them of the exam requirements.

"SendNotification": {
    "Type": "Task",
    "Comment": "Send email confirming exam details and exam deadline. Wait for callback.",
    "Resource": "arn:aws:states:::lambda:invoke.waitForTaskToken",
    "Parameters":{
    "FunctionName":"${SendExamNotificationFunction}",
    "Payload":{
        "input.$":"$",
        "TaskToken.$":"$$.Task.Token"
    }
    },
    "Next": "HasStudentPassedExam"
},

Once the student receives the email, the Task Token is passed to the Testing Centre. The student answers the questions and submits the results to the /exam resource on the API. The Lambda integration processes the TaskToken and passes the results of the waiting execution to continue the workflow execution.

Resources

Step Functions

References

AWS Developer Resources

License Summary

This sample code is made available under a modified MIT license. See the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].