Skip to content

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

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages