All Projects → LtiLibrary → LtiAdvantagePlatform

LtiLibrary / LtiAdvantagePlatform

Licence: MIT license
Sample LTI Advantage Platform.

Programming Languages

javascript
184084 projects - #8 most used programming language
C#
18002 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to LtiAdvantagePlatform

lib-lti1p3-core
PHP library for LTI 1.3 Core implementations as platforms and / or as tools.
Stars: ✭ 20 (-13.04%)
Mutual labels:  ltiadvantage, lti-platform
run-aspnetcore-basics retired
One Solution - One Project for web application development with Asp.Net Core & EF.Core. Only one web application project which used aspnetcore components; razor pages, middlewares, dependency injection, configuration, logging. To create websites with minimum implementation of asp.net core based on HTML5, CSS, and JavaScript. You can use this boi…
Stars: ✭ 15 (-34.78%)
Mutual labels:  razor-pages
SPA-With-Blazor
Creating a Single Page Application with Razor pages in Blazor using Entity Framework Core database first approach.
Stars: ✭ 27 (+17.39%)
Mutual labels:  razor-pages
admin-lte-dotnet
AdminLTE v3 for MVC Core, Razor Pages and Tag Helpers
Stars: ✭ 96 (+317.39%)
Mutual labels:  razor-pages
OrderAppWithRazorPages
Razor Pages example showing a complex page model
Stars: ✭ 30 (+30.43%)
Mutual labels:  razor-pages
Ext.NET
Ext.NET public Issues.
Stars: ✭ 28 (+21.74%)
Mutual labels:  razor-pages
pylti1.3
LTI 1.3 Advantage Tool
Stars: ✭ 65 (+182.61%)
Mutual labels:  ltiadvantage

This repo is out of date

LTI Advantage Platform

Sample LTI Advantage Platform using .NET Core 2.1. So that it has a purpose (other than as a reference code sample), you can use it to test LTI 1.3 Tools. There is a sample LTI Advantage Tool project over here.

Supported Features

  • LTI 1.3 Core (launch)
    • Launch tools with or without a context (i.e. as an assignment or an admin tool), and as a teacher or a student.
  • Assignment and Grade Services v2
    • Tools can get all line items for a course, get a specific line item, and get results from the platform; and they can post scores to the platform.
  • Names and Role Provisioning Services v2
    • Tools can get course membership from the platform.
  • Deep Linking
    • Tools can add LTI links to the platform or course.

Dependencies

This web application is based on the current ASP.NET Core Web Application template for Razor Pages. Most of the application is dedicated to managing users of the app and the tools they will test. Because LTI Advantage uses OpenID Connect and OAuth to handle authorization and authentication, and ASP.NET Core has great support for both, relatively little custom code is required launch, authorize, and service LTI 1.3 requests.

Microsoft.AspNetCore.App This package provides the framework for the web application, including user management. Each registered user gets their own test platform, with a test course, and two test people (one student and one teacher).

IdentityServer4.AspNetIdentity This package works with ASP.NET Core Identity to provide a robust OpenID Connect and OAuth 2.0 framework. In particular, Identity Server provides the Authorize and Access Token endpoints that are used by LTI Advantage Tools, and checks to make sure the tool has the right permissions to use the LTI Advantage services (e.g. Names and Role Provisioning Services).

System.IdentityModel.Tokens.Jwt This package provides some JSON Web Token functionality.

LtiAdvantage This library makes implementing LTI Advantage with ASP.NET Core easier.

LtiAdvantage.IdentityServer4 This library has an Identity Server 4 secret validator that understands the IMS recommended format of client-credentials grant, and impersonation support so that an application user can impersonate a platform user.

LtiAdvantage.IdentityModel This library adds an HttpClient extension method to request a token using using the IMS recommended format of client-credentials grant.

Source Code Structure

Most of the code in this application is from the ASP.NET Core Web Application template for Razor Pages. This is a map of where to find the LTI specific stuff.

/ (Visual Studio solution file)
└── src/
    ├── Startup.cs (configure ASP.NET Core Identity and Identity Server 4)
    ├── Areas/Identity/ (ASP.NET Core Identity user management; edit platform, course, and people)
    ├── Controllers/ (API controllers that implement Assignment and Grade Services and Names and Role Provisioning Services)
    ├── Data/ (database entities and Entity Framework Core migrations)
    ├── Pages/
        ├── DeepLinks (receives the deep links response)
	└── OidcLaunch (starts the LTI 1.3 launch process)
    ├── Utility/
        └── LtiAdvantageProfileService.cs (called by Identity Server to add LTI claims to the id_token for launch)
    └── wwwroot/ (static website files)
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].