Skip to content

bergerb/OneRosterSampleDataGenerator

Repository files navigation

OneRoster Sample Data Generator

This class library can be utilized to generate randomly generated data or in-memory construct(s) of OneRoster roster files for educational applications.

Description

The objects generated in this class can be used for a number of things. They can be outputted to Csv and OneRoster file types. They are well-formed OneRoster files that match the 1.1 spec of OneRoster. The in-memory construct can also be used to import into various systems, test-systems, and other EdTech applications.

Creates

  • Academic Sessions
  • Classes
  • Courses
  • Demographics
  • Enrollments
  • Grades
  • Manifest
  • Org
  • Staff
  • Students

School Year generated runs from 8/16/{currentYear} to 8/15/{nextSchoolYear}

Semesters (Terms)

  • Full Year
  • MP1
  • MP2
  • MP3
  • MP4
  • Semester 1
  • Semester 2
  • Summer Semester

Getting Started

Dependencies

  • .NET 10
  • Bogus 35.6.5
  • CsvHelper 33.1.0

Installing

Copy generated dll into your bin

Executing program

Simplest Execution

	var oneRoster = new OneRoster();

Generating Files

	OneRoster oneRoster = new();
	oneRoster.OutputCSVFiles();
	oneRoster.OutputOneRosterZipFile();

This generates the needed OneRoster files to the current application's base directory path OneRoster folder. Then compiles the files into a OneRoster.zip file

    OneRoster oneRoster = new(new() { SchoolCount = 3 });

The ability to set the number of generated schools. The default is 22.

Configurable Settings

The argument for the constructor is a configurable record with optional fields that default to the following:

Setting Default
ClassSize 20
IncrementalDaysToCreate null
MaxTeacherClassCount 8
SchoolCount 22
StaffIdStart 1
StudentIdStart 910000000
StudentsPerGrade 200

More documentation to come.

CI/CD

The GitHub Actions workflow builds, packs, and publishes the NuGet package on every push to main.

To skip the CI build (and NuGet publish), include --no-ci in your commit message:

git commit -m "WIP: working on v1.2 support --no-ci"

The entire build job is skipped when the commit message contains --no-ci.

Help

Please add an issue to this project

https://github.com/bergerb/OneRosterSampleDataGenerator/issues

Authors

Brent Berger hachyderm.io/@bergerb

Version History

  • 2.1.1-beta
    • Fix demographics.csv column names and add missing columns
    • Fix classes.csv SubjectCodes -> subjectCodes casing
    • Add missing courseSourcedId column to enrollments.csv
  • 2.1.0-beta
    • Refactor IExportable to reduce maintenance cost for new file specs
  • 2.0.0-beta
    • Upgrade to .NET 10
    • Updated NuGet packages to latest versions

License

This project is licensed under the Unlicense

About

No description, website, or topics provided.

Resources

License

Stars

4 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages