change how course titles are generated; add Makefile

master
Joshua Herring 1 month ago
parent 305ce56989
commit b27d5067c6

4
.gitignore vendored

@ -1,2 +1,4 @@
config.json config.json
users.csv *.csv
*.csv
grading_data_generator

@ -0,0 +1,13 @@
cleandata:
rm users.csv sections.csv
cleanbinary:
rm user_data_generator
clean: cleandata cleanbinary
build:
go build -o grading_data_generator
rerun: clean build
./grading_data_generator

@ -1,5 +1,5 @@
module maurer/user_data_generator module maurer/grading_data_generator
go 1.26.1 go 1.26.1
require github.com/brianvoe/gofakeit/v6 v6.28.0 // indirect require github.com/brianvoe/gofakeit/v6 v6.28.0

@ -19,6 +19,471 @@ var course_type = []string{
"E", "E",
} }
var course_information = []Section{
{CourseNumber: "B560",
CourseTitle: "Academic Legal Writing: Dissertation Fundamentals"},
{CourseNumber: "B652",
CourseTitle: "Accounting for Lawyers"},
{CourseNumber: "B713",
CourseTitle: "Administrative Law"},
{CourseNumber: "B528",
CourseTitle: "Advanced Appellate Advocacy"},
{CourseNumber: "B631",
CourseTitle: "Advanced Bankruptcy: Business Reorganization"},
{CourseNumber: "B634",
CourseTitle: "Advanced Constitutional Law: Issues Related to the Press"},
{CourseNumber: "B634",
CourseTitle: "Advanced Constitutional Law"},
{CourseNumber: "B595",
CourseTitle: "Advanced Environmental Law and Practice"},
{CourseNumber: "B639",
CourseTitle: "Advanced Legal Research"},
{CourseNumber: "B639",
CourseTitle: "Advanced Legal Research: LLMs and SJDs"},
{CourseNumber: "B791",
CourseTitle: "Advanced Legal Writing"},
{CourseNumber: "B517",
CourseTitle: "Advanced Patent Law"},
{CourseNumber: "B720",
CourseTitle: "Advanced Trial Practice"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: ABA"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: AIPLA"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: External Moot Court Team"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: IP"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: International Patent Drafting"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: LawMeet"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: Moot Court Board"},
{CourseNumber: "B734",
CourseTitle: "Advocacy: Pace Moot Court Team"},
{CourseNumber: "B540",
CourseTitle: "After Atrocities: Processes of Post-Conflict Justice"},
{CourseNumber: "B570",
CourseTitle: "American Constitutional Law for Foreign Lawyers"},
{CourseNumber: "B659",
CourseTitle: "American Legal History"},
{CourseNumber: "B729",
CourseTitle: "Antitrust Law"},
{CourseNumber: "B642",
CourseTitle: "Appellate Advocacy"},
{CourseNumber: "B671",
CourseTitle: "Appellate Practice and Procedure"},
{CourseNumber: "B671",
CourseTitle: "Appellate Practice and Procedure: Criminal Appeal: From Transcript to Argument"},
{CourseNumber: "B710",
CourseTitle: "Cybersecurity Clinic"},
{CourseNumber: "B769",
CourseTitle: "Banking Law"},
{CourseNumber: "B725",
CourseTitle: "Bankruptcy"},
{CourseNumber: "B793",
CourseTitle: "Business and Human Rights"},
{CourseNumber: "B632",
CourseTitle: "Business Planning"},
{CourseNumber: "B614",
CourseTitle: "Career Choices"},
{CourseNumber: "B674",
CourseTitle: "Center for Constitutional Democracy"},
{CourseNumber: "B781",
CourseTitle: "Children and the Law"},
{CourseNumber: "B533",
CourseTitle: "Civil Procedure"},
{CourseNumber: "B534",
CourseTitle: "Civil Procedure II"},
{CourseNumber: "B580",
CourseTitle: "Civil Rights Statutes"},
{CourseNumber: "B506",
CourseTitle: "Climate Law and Policy"},
{CourseNumber: "B688",
CourseTitle: "Community Legal Clinic"},
{CourseNumber: "B748",
CourseTitle: "Comparative Law: Comparative Legal Systems"},
{CourseNumber: "B748",
CourseTitle: "Comparative Law: Constitutional Design and the Economy"},
{CourseNumber: "B748",
CourseTitle: "Comparative Law: Islam and Human Rights"},
{CourseNumber: "B667",
CourseTitle: "Complex Litigation"},
{CourseNumber: "B745",
CourseTitle: "Conflict of Laws"},
{CourseNumber: "B558",
CourseTitle: "Conservation Law Clinic"},
{CourseNumber: "B575",
CourseTitle: "Constitutional Design in Multiethnic Societies"},
{CourseNumber: "B760",
CourseTitle: "Constitutional History Colloquium"},
{CourseNumber: "B513",
CourseTitle: "Constitutional Law"},
{CourseNumber: "B668",
CourseTitle: "Constitutional Law II"},
{CourseNumber: "B606",
CourseTitle: "Constitutional Litigation"},
{CourseNumber: "B501",
CourseTitle: "Contracts"},
{CourseNumber: "B662",
CourseTitle: "Copyright Law"},
{CourseNumber: "B656",
CourseTitle: "Corporate Finance Law"},
{CourseNumber: "B700",
CourseTitle: "Corporate Taxation"},
{CourseNumber: "B653",
CourseTitle: "Corporations"},
{CourseNumber: "B511",
CourseTitle: "Criminal Law"},
{CourseNumber: "B545",
CourseTitle: "Criminal Law Externship"},
{CourseNumber: "B786",
CourseTitle: "Criminal Procedure Capstone"},
{CourseNumber: "B604",
CourseTitle: "Criminal Procedure: LLM"},
{CourseNumber: "B602",
CourseTitle: "Criminal Procedure: Trial"},
{CourseNumber: "B601",
CourseTitle: "Criminal Process: Investigation"},
{CourseNumber: "B587",
CourseTitle: "Cybersecurity Law I"},
{CourseNumber: "B738",
CourseTitle: "Cybersecurity Law II"},
{CourseNumber: "B710",
CourseTitle: "Cybersecurity Law Clinic"},
{CourseNumber: "B581",
CourseTitle: "Decision Making for Lawyers: Concepts, Duties and Skills"},
{CourseNumber: "B714",
CourseTitle: "Deliberative Leadership"},
{CourseNumber: "B563",
CourseTitle: "Domestic Relations Mediation"},
{CourseNumber: "B680",
CourseTitle: "Employment Discrimination"},
{CourseNumber: "B719",
CourseTitle: "Employment Law"},
{CourseNumber: "B590",
CourseTitle: "Entertainment Law"},
{CourseNumber: "B561",
CourseTitle: "Entrepreneurship Law Clinic"},
{CourseNumber: "B740",
CourseTitle: "Estate Planning"},
{CourseNumber: "B611",
CourseTitle: "Ethics and Compliance"},
{CourseNumber: "B755",
CourseTitle: "European Union Law"},
{CourseNumber: "B723",
CourseTitle: "Evidence"},
{CourseNumber: "B691",
CourseTitle: "Family and Children Mediation Clinic"},
{CourseNumber: "B608",
CourseTitle: "Family Law"},
{CourseNumber: "B532",
CourseTitle: "Federal Circuit Advocacy"},
{CourseNumber: "B739",
CourseTitle: "Federal Criminal Law and White Collar Crime"},
{CourseNumber: "B571",
CourseTitle: "Federal Habeas Litigation"},
{CourseNumber: "B733",
CourseTitle: "Federal Jurisdiction"},
{CourseNumber: "B789",
CourseTitle: "Feminist Jurisprudence"},
{CourseNumber: "B568",
CourseTitle: "Gender and The Law"},
{CourseNumber: "B536",
CourseTitle: "Health Law"},
{CourseNumber: "B536",
CourseTitle: "Health Privacy Law"},
{CourseNumber: "B793",
CourseTitle: "Human Rights"},
{CourseNumber: "B669",
CourseTitle: "Immigration Law"},
{CourseNumber: "B655",
CourseTitle: "Information Privacy and Security Management Practicum"},
{CourseNumber: "B708",
CourseTitle: "Information Privacy Law I"},
{CourseNumber: "B728",
CourseTitle: "Information Privacy Law II"},
{CourseNumber: "B587",
CourseTitle: "Information Security Law"},
{CourseNumber: "B710",
CourseTitle: "Independent Clinical Project"},
{CourseNumber: "B572",
CourseTitle: "Intellectual Property Clinic"},
{CourseNumber: "B551",
CourseTitle: "Intellectual Property Externship"},
{CourseNumber: "B544",
CourseTitle: "Intellectual Property Transactions"},
{CourseNumber: "B726",
CourseTitle: "Intellectual Property/Antitrust"},
{CourseNumber: "B620",
CourseTitle: "International Business Negotiations"},
{CourseNumber: "B735",
CourseTitle: "International Business Transactions"},
{CourseNumber: "B565",
CourseTitle: "International Criminal Law"},
{CourseNumber: "B783",
CourseTitle: "International Environmental Law"},
{CourseNumber: "B549",
CourseTitle: "International Intellectual Property"},
{CourseNumber: "B665",
CourseTitle: "International Law"},
{CourseNumber: "B666",
CourseTitle: "International Securities Regulation"},
{CourseNumber: "B759",
CourseTitle: "International Trade"},
{CourseNumber: "B792",
CourseTitle: "Internet Law"},
{CourseNumber: "B792",
CourseTitle: "Internet Law: Political and Legal Dimensions"},
{CourseNumber: "B638",
CourseTitle: "Introduction to American Legal Research"},
{CourseNumber: "B782",
CourseTitle: "Introduction to Environmental Law"},
{CourseNumber: "B650",
CourseTitle: "Introduction to Income Tax"},
{CourseNumber: "B504",
CourseTitle: "Introduction to Law"},
{CourseNumber: "B567",
CourseTitle: "IP Practicum: Legal Aspects of Music"},
{CourseNumber: "B698",
CourseTitle: "Judicial Field Placements"},
{CourseNumber: "B788",
CourseTitle: "Labor and Employment Arbitration"},
{CourseNumber: "B663",
CourseTitle: "Labor Law I"},
{CourseNumber: "B615",
CourseTitle: "Land Use Controls"},
{CourseNumber: "B661",
CourseTitle: "Law and Biomedical Advance"},
{CourseNumber: "B658",
CourseTitle: "Law and Education: Advanced School Law"},
{CourseNumber: "B658",
CourseTitle: "Law and Education: Higher Education"},
{CourseNumber: "B658",
CourseTitle: "Law and Education: Leadership in Special Education"},
{CourseNumber: "B658",
CourseTitle: "Law and Education: Legal Perspectives on Education"},
{CourseNumber: "B658",
CourseTitle: "Law and Education: Workshop on Probs in Ed Leadership"},
{CourseNumber: "B761",
CourseTitle: "Law and Philanthropy"},
{CourseNumber: "B592",
CourseTitle: "Law and Political Theory: Institutional Analysis & Development"},
{CourseNumber: "B730",
CourseTitle: "Law and Religion"},
{CourseNumber: "B744",
CourseTitle: "Law and Social Psychology"},
{CourseNumber: "B678",
CourseTitle: "Law and Sports"},
{CourseNumber: "B674",
CourseTitle: "Law Journal: Indiana Journal of Global Legal Studies"},
{CourseNumber: "B674",
CourseTitle: "Law Journal: Indiana Law Journal"},
{CourseNumber: "B674",
CourseTitle: "Law Journal: Indiana Journal of Law and Social Equality"},
{CourseNumber: "B685",
CourseTitle: "The Lawyer as a Business Executive"},
{CourseNumber: "B539",
CourseTitle: "Lawyering in the Public Interest"},
{CourseNumber: "B530",
CourseTitle: "Legal Discourse and Legal Writing for LLM and MCL Students"},
{CourseNumber: "B582",
CourseTitle: "Legal Issues in Mergers and Acquisitions"},
{CourseNumber: "B508",
CourseTitle: "Legal Operations"},
{CourseNumber: "B614",
CourseTitle: "The Legal Profession (for 1Ls)"},
{CourseNumber: "B614",
CourseTitle: "Legal Profession for Foreign Lawyers"},
{CourseNumber: "B542",
CourseTitle: "Legal Research and Writing I"},
{CourseNumber: "B543",
CourseTitle: "Legal Research and Writing II"},
{CourseNumber: "B554",
CourseTitle: "Legislation"},
{CourseNumber: "B564",
CourseTitle: "Litigation Drafting"},
{CourseNumber: "B771",
CourseTitle: "Mediation"},
{CourseNumber: "B771",
CourseTitle: "Mediation for LLMs"},
{CourseNumber: "B582",
CourseTitle: "Mergers and Acquisitions"},
{CourseNumber: "B508",
CourseTitle: "Modern Small Firm Practice"},
{CourseNumber: "B623",
CourseTitle: "Negotiable Instruments"},
{CourseNumber: "B620",
CourseTitle: "Negotiations"},
{CourseNumber: "B537",
CourseTitle: "Nonprofit Law Clinic"},
{CourseNumber: "B569",
CourseTitle: "Nonprofit Organizations"},
{CourseNumber: "B681",
CourseTitle: "Partnership Tax"},
{CourseNumber: "B743",
CourseTitle: "Patent Law"},
{CourseNumber: "B559",
CourseTitle: "Patent Prosecution"},
{CourseNumber: "B785",
CourseTitle: "Patent Trial Practice"},
{CourseNumber: "B643",
CourseTitle: "Poverty Law"},
{CourseNumber: "B564",
CourseTitle: "Pre-trial Litigation"},
{CourseNumber: "B564",
CourseTitle: "Pre-trial Litigation: Courtroom Procedure"},
{CourseNumber: "B564",
CourseTitle: "Pre-trial Litigation: Criminal Practice"},
{CourseNumber: "B564",
CourseTitle: "Pre-trial Litigation: Depositions"},
{CourseNumber: "B622",
CourseTitle: "Principles of Law and Economics"},
{CourseNumber: "B514",
CourseTitle: "Private Practice Externship"},
{CourseNumber: "B654",
CourseTitle: "Products Liability"},
{CourseNumber: "B515",
CourseTitle: "Project Management"},
{CourseNumber: "B521",
CourseTitle: "Property"},
{CourseNumber: "B564",
CourseTitle: "Protection Order Litigation"},
{CourseNumber: "B547",
CourseTitle: "Public Interest Internship Program"},
{CourseNumber: "B675",
CourseTitle: "Public Natural Resources"},
{CourseNumber: "B507",
CourseTitle: "Public Speaking"},
{CourseNumber: "B756",
CourseTitle: "Race, American Society and the Law"},
{CourseNumber: "B749",
CourseTitle: "Real Estate Finance"},
{CourseNumber: "B775",
CourseTitle: "Real Estate Transactions"},
{CourseNumber: "B603",
CourseTitle: "Remedies and Equity"},
{CourseNumber: "B524",
CourseTitle: "Representing the State"},
{CourseNumber: "B670",
CourseTitle: "Sales"},
{CourseNumber: "B672",
CourseTitle: "Secured Transactions"},
{CourseNumber: "B727",
CourseTitle: "Securities Regulation"},
{CourseNumber: "B538",
CourseTitle: "Semester Public Interest Program"},
{CourseNumber: "B649",
CourseTitle: "State and Local Tax"},
{CourseNumber: "B519",
CourseTitle: "State Constitutional Law"},
{CourseNumber: "B588",
CourseTitle: "Strategies in Critical Reading and Writing: Family Law"},
{CourseNumber: "B751",
CourseTitle: "Survey of Intellectual Property"},
{CourseNumber: "B526",
CourseTitle: "Tax Policy Colloquium"},
{CourseNumber: "B736",
CourseTitle: "Topics in Tax: Strategic Business and Tax Planning"},
{CourseNumber: "B531",
CourseTitle: "Torts"},
{CourseNumber: "B758",
CourseTitle: "Trademark and Unfair Competition"},
{CourseNumber: "B709",
CourseTitle: "Transactional Drafting"},
{CourseNumber: "B709",
CourseTitle: "Transactional Drafting: Anatomy of a Deal"},
{CourseNumber: "B709",
CourseTitle: "Transactional Drafting: Real Estate"},
{CourseNumber: "B709",
CourseTitle: "Transactional Drafting: Tax"},
{CourseNumber: "B722",
CourseTitle: "Trial Advocacy"},
{CourseNumber: "B768",
CourseTitle: "Water Law"},
{CourseNumber: "B550",
CourseTitle: "Wildlife Law"},
{CourseNumber: "B645",
CourseTitle: "Wills & Trusts"},
{CourseNumber: "L641",
CourseTitle: "Constitutionalism in the Middle East"},
{CourseNumber: "L710",
CourseTitle: "Seminar in Law and Society: Immigration Law"},
{CourseNumber: "L710",
CourseTitle: "Seminar in Law and Society: Work, Family, and the Law"},
{CourseNumber: "L710",
CourseTitle: "Seminar in Law and Society: Law and Language"},
{CourseNumber: "L782",
CourseTitle: "Seminar in Administrative Law: Lawyering in the Modern Administrative State"},
{CourseNumber: "L766",
CourseTitle: "Seminar in Children and the Law: Reproduction and Childhood"},
{CourseNumber: "L766",
CourseTitle: "Seminar in Children and the Law"},
{CourseNumber: "L703",
CourseTitle: "Seminar in Commercial Law: Consumer Credit"},
{CourseNumber: "L770",
CourseTitle: "Seminar in Comparative Inequality"},
{CourseNumber: "L770",
CourseTitle: "Seminar in Comparative Law: Islamic Law"},
{CourseNumber: "L736",
CourseTitle: "Seminar in Congress, the Presidency and the Courts"},
{CourseNumber: "L799",
CourseTitle: "Seminar in Constitutional Law: The Courts, the Democratic Process, and the People"},
{CourseNumber: "L684",
CourseTitle: "Seminar in Constitutional Design: Rights, Gender, and States of Emergency"},
{CourseNumber: "L799",
CourseTitle: "Seminar in Constitutional Law"},
{CourseNumber: "L799",
CourseTitle: "Seminar in Constitutional Law: First Amendment"},
{CourseNumber: "L799",
CourseTitle: "Seminar in Constitutional Law: Second Amendment"},
{CourseNumber: "L799",
CourseTitle: "Seminar in Constitutional Law: Sexuality, Reproduction, and the Constitution"},
{CourseNumber: "L690",
CourseTitle: "Seminar in Corporate Law: Financial Regulation"},
{CourseNumber: "L690",
CourseTitle: "Seminar in Corporate Law: Law and Practice Intellegence Age"},
{CourseNumber: "L776",
CourseTitle: "Seminar in Criminal Law: Current Issues in Law and Procedure"},
{CourseNumber: "L776",
CourseTitle: "Seminar in Criminal Law: Federal Sentencing"},
{CourseNumber: "L776",
CourseTitle: "Seminar in Criminal Law: Punishment in Theory and Practice"},
{CourseNumber: "L728",
CourseTitle: "Seminar in Globalization"},
{CourseNumber: "L664",
CourseTitle: "Seminar in Information Privacy"},
{CourseNumber: "L712",
CourseTitle: "Seminar in International Law: Drone Law"},
{CourseNumber: "L730",
CourseTitle: "Seminar in Intellectual Property"},
{CourseNumber: "L730",
CourseTitle: "Seminar in Intellectual Property: Data Law and Policy"},
{CourseNumber: "L637",
CourseTitle: "Seminar in Introduction to Biotechnological Innovation"},
{CourseNumber: "L797",
CourseTitle: "Seminar in Jurisprudence"},
{CourseNumber: "L750",
CourseTitle: "Seminar in Law and Development"},
{CourseNumber: "L713",
CourseTitle: "Seminar in Law and Economics"},
{CourseNumber: "L796",
CourseTitle: "Seminar in Law and Medicine"},
{CourseNumber: "L748",
CourseTitle: "Seminar in Law and Psychology of Crime, Culpability, and Punishment"},
{CourseNumber: "L724",
CourseTitle: "Seminar in Law and Society of China"},
{CourseNumber: "L773",
CourseTitle: "Seminar in Tax Policy"},
{CourseNumber: "L636",
CourseTitle: "Seminar in Transnational Law"},
{CourseNumber: "L639",
CourseTitle: "Seminar in the Supreme Court as an Institution"},
{CourseNumber: "L714",
CourseTitle: "Seminar on Judicial Conduct"},
}
type User struct { type User struct {
UID string `json:"uid"` UID string `json:"uid"`
FirstName string `json:"first_name"` FirstName string `json:"first_name"`
@ -36,15 +501,15 @@ type Section struct {
} }
type Config struct { type Config struct {
NumberOfUsers int `json:"number_of_users"` NumberOfUsers int `json:"number_of_users"`
NumberOfSections int `json:"number_of_sections"` NumberOfSections int `json:"number_of_sections"`
NumberOfInstructors int `json:"number_of_instructors"` NumberOfInstructors int `json:"number_of_instructors"`
PercentStatus map[string]int `json:"percent_status"` PercentStatus map[string]int `json:"percent_status"`
} }
var statuses = []string{"JD", "LLM", "MCL", "PHD", "SJD", "MLS", "SPEC", "MNR", "CERT"} var statuses = []string{"JD", "LLM", "MCL", "PHD", "SJD", "MLS", "SPEC", "MNR", "CERT"}
func GenerateUserData (config Config) { func GenerateUserData(config Config) {
// Build a weighted list of statuses // Build a weighted list of statuses
weightedStatuses := make([]string, 0, 100) weightedStatuses := make([]string, 0, 100)
for status, pct := range config.PercentStatus { for status, pct := range config.PercentStatus {
@ -118,13 +583,13 @@ func GenerateSectionData(config Config) {
sections := make([]Section, config.NumberOfSections) sections := make([]Section, config.NumberOfSections)
for i := range sections { for i := range sections {
sections[i] = Section{
SectionID: sectionIDs[i], my_section := course_information[rand.Intn(len(course_information))]
CourseNumber: courseNumbers[i], my_section.SectionID = sectionIDs[i]
Instructor: instructorNames[rand.Intn(len(instructorNames))], my_section.Instructor = instructorNames[rand.Intn(len(instructorNames))]
CourseTitle: gofakeit.BookTitle(), my_section.CourseType = course_type[rand.Intn(len(course_type))]
CourseType: course_type[rand.Intn(len(course_type))], sections[i] = my_section
}
} }
f, err := os.Create("sections.csv") f, err := os.Create("sections.csv")

Loading…
Cancel
Save