rubyforgood / rubyforgood/endsideout

Admin CSV Import

Open
#66 1 comment 0 reactions 1 assignee View on GitHub

@amcheers is already working on this.

Since Aug 28, 2026.

Dominant language
JavaScript
Stars
11
Forks
4
Avg merge
20h 30m
Merged PRs (30d)
19

Description

What

  • Add a CSV import option to allow bulk creations of the entities in a school

Context

  • This CSV import would only be run when there aren't already existing entities in the school for this year; it does not need to handle merging with intitial data.
  • The import should provide a template to download with the necessary columns
  • The import should be able to create classrooms, teachers, students all at once

AC

  • An admin can download a CSV template from the school's page with the required columns for classrooms, teachers, and students
  • An admin can upload a completed CSV for a school to bulk-create its classrooms, teachers, and students in a single import
  • The import option is only available when the school has no existing classrooms, teachers, or students — if the school already has data, the import is not offered
  • Each classroom row includes at least one program/level so it satisfies the existing "at least one program enrolled" requirement
  • Each student row requires first name, last name, and grade level (gender and email are optional), and associates the student with the classroom and school from their row
  • If any row in the CSV fails validation (missing required field, unrecognized program, etc.), the entire import is rejected as a single transaction — no classrooms, teachers, or students are created — and the admin sees which row(s) and column(s) failed
  • On a fully valid CSV, all classrooms, teachers, and students are created together, with students correctly linked to their classroom

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.