Giter VIP home page Giter VIP logo

microsoft / openeduanalytics Goto Github PK

View Code? Open in Web Editor NEW
210.0 29.0 91.0 368.54 MB

This project provides open source Education Analytics solutions built on Azure.

Home Page: https://openeducationanalytics.org/

License: Creative Commons Attribution 4.0 International

Jupyter Notebook 90.14% Shell 1.78% Python 5.03% Bicep 0.08% C# 1.36% HTML 0.97% JavaScript 0.15% CSS 0.04% PowerShell 0.19% HCL 0.27%
k12 k12education higher-education highered microsoft synapse-analytics azure

openeduanalytics's Introduction

Open Education Analytics

Open Education Analytics (OEA) is a fully open-sourced data integration and analytics framework for the education sector, as well as catalogs of assets contributed by customers and partners around the world for K-12 as well as Higher Education.



The goal is to empower the ecosystem by:

  1. making it easy to setup a modern lakehouse in Azure
  2. facilitating the sharing of common assets (data pipelines, transformation scripts, dashboards, etc)



To find out more about the growing ecosystem around OEA, including info about partners and customers that are using OEA today, visit our homepage at: openeducationanalytics.org


Setting up OEA

What you need?

To setup an environment with OpenEduAnalytics, you'll need:

  • an Azure subscription (if you don't have an Azure subscription, you can set up a free subscription here, or check the current list of Azure offers)
  • role assignment of "Owner" on the Azure subscription you're using
  • make sure your preferred subscription is selected as default
    az account list --query "[].{SubscriptionId:id,IsDefault:isDefault,Name:name,TenantId:tenantId}"
    az account set --subscription <SubscriptionId>

Setup

You can setup this fully functional reference architecture (which includes test data sets for basic examples of usage) in 3 steps:

  1. Open cloud shell in your Azure subscription (use ctrl+click on the button below to open in a new page)
    Launch Cloud Shell
  2. Download the OEA framework setup script and framework assets to your Azure clouddrive
    cd clouddrive
    wget https://github.com/microsoft/OpenEduAnalytics/releases/download/v0.8/OEA_v0.8.zip
    unzip ./OEA_v0.8.zip
  3. Run the setup script like this (substitute "mysuffix" with your preferred suffix representing your org, which must be less than 13 characters and can only contain letters and numbers - this will be used as a suffix in the naming of provisioned resources):
    ./OEA_v0.8/setup.sh -o mysuffix

(You can refer to this setup video for a quick walkthrough of this process)




Note that OEA is built on mature Azure platform services which provide their own SLA's, but OEA itself is an open-source set of resources that come with no warranties nor SLA's. Each organization utilizing these assets is responsible for adhering to their own data governance practices and ensuring security and privacy of their data. This repo should be considered as a starting point and accelerator for the development of your modern education data estate.

Licenses

All code is licensed under the MIT License
All documentation is licensed under Creative Commons

Contributing

This project welcomes contributions and suggestions...

Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Resources:

Security

Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include Microsoft, Azure, DotNet, AspNet, Xamarin, and our GitHub organizations.

If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's definition of a security vulnerability, please report it to us as described below.

Reporting Security Issues

Legal Notices

Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the Creative Commons Attribution 4.0 International Public License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.

Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.

Privacy information can be found at https://privacy.microsoft.com/en-us/

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.

openeduanalytics's People

Contributors

abhaysibal avatar abhinavgundapaneni avatar ayunav avatar bdares avatar bigdawg001 avatar bryan-alvaradofusd avatar changliu2 avatar cstohlmann avatar cvidden avatar cviddenkwantum avatar danielwahlgren avatar dastewa avatar dblickwedel avatar dependabot[bot] avatar dileeshm avatar dochines avatar genegc avatar gondy5484 avatar iantasker avatar ivybarley avatar jordyn-kwantum avatar lladop avatar microsoftopensource avatar mwarden avatar ravikunms avatar rogulati avatar shreenidhira avatar v-chadvidden avatar yuki-microsoft avatar zainabsayyed 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

openeduanalytics's Issues

Microsoft_Inisghts Module Folders

Leaving an issue for Gene, but with the Inisghts module, the way in which data is landed in stage1np is not the OEA standard.

  • If possible, can we change "M365" parent folder to "Insights"?
  • Also, if possible, can we change the folder structure of the Insights data being landed to be:
    • parent_folder/tables/date-timestamp/*.csv rather than parent_folder/activity-and-roster/tables/date-timestamp/*.csv

These issues are relatively minor and do not inhibit the ability to use the module, but are not in agreement with the OEA standard.

Module Canvas_Data

"name": "CanvasSynchronisationOrchestrator",
"instanceId": "1311ca23e7864c10a8e07cf65af4f5c6",
"runtimeStatus": "Failed",
"input": "{}",
"customStatus": null,
"output": "Orchestrator function 'CanvasSynchronisationOrchestrator' failed: Activity function 'GetFileChangeList' failed: NameError: name 'JsonHmacApi' is not defined \n {"$type":"System.Exception, System.Private.CoreLib","ClassName":"System.Exception","Message":" NameError: name 'JsonHmacApi' is not defined","Data":null,"InnerException":{"$type":"Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcException, Microsoft.Azure.WebJobs.Script","StackTrace":" at Microsoft.Azure.WebJobs.Script.Description.WorkerFunctionInvoker.InvokeCore(Object[] parameters, FunctionInvocationContext context) in /src/azure-functions-host/src/WebJobs.Script/Description/Workers/WorkerFunctionInvoker.cs:line 96\n at Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters) in /src/azure-functions-host/src/WebJobs.Script/Description/FunctionInvokerBase.cs:line 82\n at Microsoft.Azure.WebJobs.Script.Description.FunctionGenerator.Coerce[T](Task1 src) in /src/azure-functions-host/src/WebJobs.Script/Description/FunctionGenerator.cs:line 225\\n at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker2.InvokeAsync(Object instance, Object[] arguments) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionInvoker.cs:line 52\n at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeWithTimeoutAsync(IFunctionInvoker invoker, ParameterHelper parameterHelper, CancellationTokenSource timeoutTokenSource, CancellationTokenSource functionCancellationTokenSource, Boolean throwOnTimeout, TimeSpan timerInterval, IFunctionInstance instance) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionExecutor.cs:line 581\n

Synapse Workspace Creation Error

Received following error message running setup.sh at revision 05d0a4e8563b92e15314f795d84af74a98c96b1b

--> Creating storage account containers: stage1, stage2, stage3, synapse
{
  "created": true
}
{
  "created": true
}
{
  "created": true
}
{
  "created": true
}
{
  "created": true
}
--> Creating Synapse Workspace: syn-oea-dmoea001
Command group 'synapse' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
ValidationFailed: Workspace request validation failed, check error details for more information
WARNING: Command group 'synapse' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
ERROR: (ResourceNotFound) The Resource 'Microsoft.Synapse/workspaces/syn-oea-dmoea001' under resource group 'rg-oea-dmoea001' was not found. For more details please goto https://aka.ms/ARMResourceNotFoundFix
argument --assignee: expected one argument

TRY THIS:
az role assignment create --assignee 00000000-0000-0000-0000-000000000000 --role "Storage Account Key Operator Service Role" --scope $id
Create a new role assignment for a user, group, or service principal. (autogenerated)

az role assignment create --assignee sp_name --role a_role
Create role assignment for an assignee.

az aks show --name MyManagedCluster --resource-group MyResourceGroup
Show the details for a managed Kubernetes cluster

https://docs.microsoft.com/en-US/cli/azure/role/assignment#az_role_assignment_create
Read more about the command in reference docs

Saw a comment from Paul DeSante on Teams chat that he might have run into the same thing. He said "I also needed to register the Microsoft.sql resource provider so that the Synapse workspace could be setup." I haven't checked to see if that addressed my actual issue.

allow for custom naming convention

There needs to be a way to specify custom resource names for customers that have an established naming convention that differs from the standard.

<!--- Please direct any generic questions related to actions to our support community forum at https://github.com/orgs/community/discussions --->

Description:
A clear and concise description of what the bug is.

Action version:
Specify the action version

Platform:

  • Ubuntu
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Repro steps:
A description with steps to reproduce the issue. If your have a public example or repo to share, please provide the link.

Expected behavior:
A description of what you expected to happen.

Actual behavior:
A description of what is actually happening.

Originally posted by @GCC1111 in actions/stale#1104

// META: global=window,worker // META: script=/resources/WebIDLParser.js // META: script=/resources/idlharness.js // META: timeout=long idl_test( ['fetch'], ['referrer-policy', 'html', 'dom'], idl_array => { idl_array.add_objects({ Headers: ["new Headers()"], Request: ["new Request('about:blank')"], Response: ["new Response()"], }); if (self.GLOBAL.isWindow()) { idl_array.add_objects({ Window: ['window'] }); } else if (self.GLOBAL.isWorker()) { idl_array.add_objects({ WorkerGlobalScope: ['self'] });

pbix protected by sensitivity label?

Hi,
I'm having trouble opening and working with the PowerBI-reports from https://github.com/microsoft/OpenEduAnalytics/tree/main/modules/module_catalog/Microsoft_Education_Insights
both for K12 and HED. The old reports can be opened, but the new reports should already be prepared for Lake-DB.

When I open the new reports, I get a message that it couldn't verify the sensitivity label of the file.
The errormessage is exactly, though sadly in swedish:
Det går inte att verifiera filens känslighetsetikett. Försök igen senare
My english translation:
Cannot verify the sensitivity label of the file. Try again later.

Trying to open it online gives me the following error:
This file is restricted. Your organization has protected the file with a sensitivity label.
Error code: InformationProtectionInsufficientUsageRights

Could anyone please verify that the file is indeed not protected by any Sensitivity Label?

I've tried opening it on multiple devices.

Linux line endings auto-converted to Windows line ending when cloning repo to Windows machine causing setup.sh to fail

If a user wants to use Windows Subsystem for Linux (WSL) to execute setup.sh, the installation will script will fail if the user just executes a Git clone operation against the OpenEduAnalytics repo. The reason for this is that the default git client behavior on Windows is to convert Linux line endings to Windows line endings, as controlled by the following git config parameter:
Configuring Git to handle line endings

While it's true that this parameter is under end-user control and will need to be adjusted on their end, it might be worth adding a brief note to the Setup section about this default behavior when cloning the code to Windows machines. The git clone command can be invoked with the following parameters to override the system defaults with regards to line endings:
git clone --config core.autocrlf=false https://github.com/microsoft/OpenEduAnalytics

Database Name

I ran through the guide this morning. In the documentation, please update the database name in Power BI to: test_s2_contosoisd.

Setup Tags on initial configuration

.sh has all the logic to create all the components to set up the integral solution; it starts creating different resource groups, Analytikus has policies created to force add tags. It means that an automatic process that creates components into azure can return errors.

Observation: We suggest adding some JSON file with defaults tags to be attached to the setup of the new components, for example:

[ { "tag_name":"CreatedBy", "tag_value":"Uayeb Caballero" } ]

and finally, we run our command doing something like:

./setup.sh <unique_suffix> <tags.json>

Synapse Deployment Issue

Fails Synapse Workspace deployment.

    "statusMessage": "{\"error\":{\"code\":\"ValidationFailed\",\"message\":\"Workspace request validation failed, check error details for more information\",\"details\":[{\"code\":\"InvalidSqlServerPassword\",\"message\":\"Sql Server password not complex. The password must be atleast 8 characters long and contain characters from three of the following four categories: (uppercase  letters, lowercase letters, digits (0-9), Non-alphanumeric characters such as: !, $, #, or %).\"}]}}",

Unable to open PowerBi Report

I have the latest version of Power BI Desktop installed. After downloading it, when I try to open the report I get a this error message
image

OEA_py SALT

I was wondering should we have a function below get_secret in OEA() that gets the SALT from key vault? Something like:

 def getSALT(self):
        self.SALT = self.get_secret('kv-oea-SALT')

ACTION REQUIRED: Microsoft needs this repository to complete compliance info

There are open compliance tasks that need to be reviewed for your OpenEduAnalytics repo.

Action required: 3 compliance tasks

To bring this repository to the standard required for 2021, we require Microsoft administrators of this GitHub repository to complete a small set of tasks within the next 60 days. This is critical work to ensure the compliance and security of your GitHub repo.

Microsoft repo admins: Please take a few minutes to complete the tasks at: https://repos.opensource.microsoft.com/orgs/microsoft/repos/OpenEduAnalytics/compliance

You can close this work item once you have completed the compliance tasks, or it will automatically close within a day of taking action.

If you no longer need this repository, it might be quickest to delete the repo, too.

unable to "Import resources from support files"

AS instructed in Step 3.1 in the document "Tutorial for ML pipeline.docx" here, unable to see the command option for the "+" --> Import resources from support files". Hence cannot proceed, please guide to resolve this issue.
upload support files option not visible

setup.sh errors

Screenshot 2022-09-12 142934
We are running into some issues trying to run the bash setup.sh script in cloudshell. It appears that a folder path might be missing. Could you please let me know if I am missing something?

OEA Storage Account "Allow Blob public access" set to True, by setup.sh

This is less of an issue, as a consideration, but it might be worth setting the "Allow Blob public access" parameter for the OEA Storage Account to False by default. Doing so would add one more layer of risk mitigation, by forcing end-users to explicitly enable this feature if they really do have a use case for anonymous access in their own containers within their Storage Account.

Configuring the OEA Storage Account defaults in this way would also align with our recommendations in the following document, Security recommendations for Blob storage where we outline the following:

Anonymous public read access to a container and its blobs grants read-only access to those resources to any client. Avoid enabling public read access unless your scenario requires it.

To be clear though, I did see that ALL OEA blob containers themselves are set to Private, which is great.

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.