├── additional.d.ts
├── constants
├── forms.json
├── responsive.ts
├── index.ts
├── colors.ts
├── additionalConstants.ts
├── csv_parser.test.ts
├── Animal Form.csv
├── questions.json
└── csv_parser.ts
├── public
├── logo.png
├── favicon.ico
├── EdLawLogo.png
├── resources
│ ├── formDesign.png
│ └── formRoutes.png
└── vercel.svg
├── styles
├── themes
│ ├── index.ts
│ └── getLightTheme.tsx
├── component
│ └── StartComplaint.module.css
├── globals.css
└── Home.module.css
├── models
├── answer.ts
├── index.ts
├── form.ts
└── question.ts
├── .babelrc
├── .husky
└── pre-commit
├── .eslintrc
├── next.config.js
├── .prettierrc.json
├── next-env.d.ts
├── docker-compose.yml
├── components
├── LandingPage
│ ├── LandingStyles.tsx
│ ├── BottomButtonBar.tsx
│ ├── SubMenuItem.tsx
│ ├── LandingContent.tsx
│ ├── LandingSplitPage.tsx
│ ├── RightsPrsMenu.tsx
│ ├── LandingAboutPrs.tsx
│ └── LandingStudentRightsGuide.tsx
├── LoadingSpinner.tsx
├── Critical
│ ├── Logo.tsx
│ ├── BottomBar.tsx
│ ├── SplitPage.tsx
│ ├── NavBar.tsx
│ ├── FormTemplate.tsx
│ └── SideProgressBar.tsx
├── DynamicForm
│ ├── MyContinue.tsx
│ ├── MyInput.tsx
│ ├── Tooltip.tsx
│ ├── ChooseFormType.tsx
│ ├── MyRadio.tsx
│ └── MyResult.tsx
├── FormikExample
│ ├── MyCheckbox.tsx
│ └── MySelect.tsx
├── FormStyles
│ ├── Button.tsx
│ ├── TextArea.tsx
│ ├── QuestionLayout.tsx
│ ├── RadioButton.tsx
│ ├── PasswordInputBox.tsx
│ ├── QuestionText.tsx
│ ├── ExtraStyles.tsx
│ ├── InputBox.tsx
│ └── ContactInfo.tsx
├── Login
│ ├── LoginAbstraction.tsx
│ ├── LoginStyling.tsx
│ ├── ForgotPassword.tsx
│ ├── HatImage.tsx
│ ├── SignIn.tsx
│ ├── LoginContainer.tsx
│ └── SignUp.tsx
└── MainPage.tsx
├── utils
├── isSignedIn.ts
├── FormContext.ts
└── isWellFormed.ts
├── pages
├── api
│ ├── connectTest.ts
│ ├── auth
│ │ ├── signup.ts
│ │ └── [...nextauth].ts
│ └── form
│ │ ├── retrieve.ts
│ │ ├── group
│ │ ├── retrieve.ts
│ │ └── save.ts
│ │ ├── concern
│ │ ├── retrieve.ts
│ │ └── save.ts
│ │ ├── district
│ │ ├── retrieve.ts
│ │ └── save.ts
│ │ ├── additionalinfo
│ │ ├── retrieve.ts
│ │ └── save.ts
│ │ ├── contactinfo
│ │ ├── retrieve.ts
│ │ └── save.ts
│ │ ├── save.ts
│ │ └── questions
│ │ └── upload.ts
├── prs.tsx
├── info.tsx
├── _app.tsx
├── signin.tsx
├── signup.tsx
├── home.tsx
├── index.tsx
├── forgotpassword.tsx
├── _document.tsx
├── admin.tsx
└── form
│ ├── README.md
│ ├── district.tsx
│ ├── group.tsx
│ ├── concern.tsx
│ ├── contactinfo.tsx
│ ├── index.tsx
│ └── additionalinfo.tsx
├── types.d.ts
├── .gitignore
├── hooks
└── widthHook.ts
├── tsconfig.json
├── jest.config.js
├── server
├── _dbConnect.ts
└── crypto.ts
├── LICENSE
├── README.md
└── package.json
/additional.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.css'
2 |
--------------------------------------------------------------------------------
/constants/forms.json:
--------------------------------------------------------------------------------
1 | {
2 | "animalForm": 0,
3 | "actualForm": 1
4 | }
--------------------------------------------------------------------------------
/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sandboxnu/edulaw/main/public/logo.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sandboxnu/edulaw/main/public/favicon.ico
--------------------------------------------------------------------------------
/styles/themes/index.ts:
--------------------------------------------------------------------------------
1 | export { default as getLightTheme } from './getLightTheme'
2 |
--------------------------------------------------------------------------------
/public/EdLawLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sandboxnu/edulaw/main/public/EdLawLogo.png
--------------------------------------------------------------------------------
/constants/responsive.ts:
--------------------------------------------------------------------------------
1 | export const CUTOFFS = {
2 | mobile: 768,
3 | tablet: 768,
4 | }
5 |
--------------------------------------------------------------------------------
/models/answer.ts:
--------------------------------------------------------------------------------
1 | export interface Answer {
2 | content?: string
3 | route: number
4 | }
5 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["next/babel"],
3 | "plugins": [["styled-components", { "ssr": true }]]
4 | }
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx lint-staged
5 | npm test
6 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@typescript-eslint/recommended", "prettier", "next/core-web-vitals"]
3 | }
4 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | module.exports = {
3 | reactStrictMode: true,
4 | }
5 |
--------------------------------------------------------------------------------
/public/resources/formDesign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sandboxnu/edulaw/main/public/resources/formDesign.png
--------------------------------------------------------------------------------
/public/resources/formRoutes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sandboxnu/edulaw/main/public/resources/formRoutes.png
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "semi": false,
3 | "trailingComma": "es5",
4 | "singleQuote": true,
5 | "tabWidth": 2,
6 | "useTabs": false
7 | }
8 |
--------------------------------------------------------------------------------
/models/index.ts:
--------------------------------------------------------------------------------
1 | export type { Question } from './question'
2 | export type { Answer } from './answer'
3 | export { forms } from './form'
4 | export type { Forms } from './form'
5 |
--------------------------------------------------------------------------------
/constants/index.ts:
--------------------------------------------------------------------------------
1 | export { default as forms } from './forms.json'
2 | export { default as districts } from './districts.json'
3 | export { default as schools } from './schools.json'
4 |
--------------------------------------------------------------------------------
/models/form.ts:
--------------------------------------------------------------------------------
1 | import { forms } from '../constants'
2 |
3 | const typedForms = forms as Forms
4 |
5 | export interface Forms {
6 | animalForm: number
7 | actualForm: number
8 | }
9 | export { typedForms as forms }
10 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
14 | The Problem Resolution System (PRS) is the Massachusetts Department of 15 | Elementary and Secondary Education's (DESE) system for addressing 16 | complaints about students' education rights and the legal 17 | requirements for education. 18 | 19 | If you think a school or district has violated a student's 20 | rights 21 | 22 | , you can submit a complaint online. 23 |
24 |26 | This tool can walk you through the process of writing and submitting a 27 | PRS complaint. Use the navigation bar on the left to learn more about 28 | PRS and the types of situations that the tool covers. 29 |
30 |32 | When you are ready, you can select "Continue" at the bottom 33 | to start your complaint. Please note that this resource only applies 34 | to students in Massachusetts. 35 |
36 |Upload csv below
44 | setFile(e.target.files?.item(0) || undefined)} 48 | /> 49 | 65 |54 | If you feel like the questions in this guide aren't addressing your 55 | concerns, call the EdLaw Project Intake line at{' '} 56 | 617.910.5829, or email us at{' '} 57 | edlawproject@publiccouncil.net 58 |
59 | ) 60 | return ( 61 |54 | The Problem Resolution System (PRS) is the Department of Elementary 55 | and Secondary Education's (DESE) system for addressing complaints 56 | about students’ educational rights. More information about PRS and 57 | what happens when you file a complaint is available{' '} 58 | 59 | here. 60 | 61 |
62 |64 | This guide will walk you through the process of filing a complaint. 65 | After getting your background information, we'll go through a 66 | series of questions about your concerns, and 67 | suggest legal language to include in your complaint if the 68 | guide identifies that a legal right may have been violated. If 69 | you'd rather file the complaint with PRS directly (without the 70 | suggestions in this guide) you can do so{' '} 71 | here. 72 |
73 |82 | Still, filing a PRS complaint is important because DESE is not aware 83 | of problems in the district unless people file complaints, and your 84 | complaint may help not only your student but also other students 85 | across Massachusetts. If you have questions, or if the tool is not 86 | addressing your concerns as you're going through the questions to 87 | write the complaint, call the EdLaw Project intake line at (617) 88 | 910-5829, or fill out the Helpline Intake Form{' '} 89 | here. 90 |
91 |17 | PRS is the The Massachusetts Department of Elementary and Secondary 18 | Education’s (DESE) dispute resolution system to respond to complaints 19 | that a school isn’t following the law. 20 |
21 |29 | You can file a complaint directly with DESE, or using our tool. The 30 | tool walks through the process and suggests information to include, 31 | and then submits the complaint to DESE. 32 |
33 |
35 | Directly with DESE:
36 |
37 | You can file a complaint online directly with DESE here. If you have
38 | questions, want to talk to someone about your concern, or want to
39 | request a paper complaint, you can also call PRS at 781-338-3700. PRS
40 | has interpreters to provide language access assistance.
41 |
42 | This quick guide shows what DESE’s form looks like and explains what
43 | information to include in each section.
44 |
45 | Using our walkthrough tool:
46 | Our PRS tool can help you file a PRS complaint by walking you through
47 | the process of writing and submitting the complaint. The tool collects
48 | all of the basic information that PRS needs, and then asks questions
49 | to identify information you should include in the section where you
50 | describe your concerns.
51 |
60 | PRS handles complaints that allege a school or a district in
61 | Massachusetts is not meeting legal requirements for education. You can
62 | file a complaint if you have concerns that a school is violating an
63 | individual student’s education rights, or a group of students’
64 | education rights.
65 |
66 | These are some requirements for the complaint:
67 |
83 | Explore our Student Rights Guides to learn more about the types of 84 | concerns included in our walkthrough tool. 85 |
86 |
94 | Anyone can file, including a parent, social worker, attorney,
95 | counselor, or other third party. If you are not the parent, you will
96 | need to obtain the parent’s or education decision maker’s permission
97 | to file a complaint related to a specific child.
98 |
99 |
100 | You can’t file a complaint anonymously. PRS requires that you include
101 | your name and contact information to submit the complaint.
102 |
111 | PRS will notify the school district of your complaint and will reach 112 | out to the district to get more information. The school district will 113 | write a report, and you will have a chance to respond if you disagree. 114 | Then, PRS will make a decision and can order the school district to do 115 | something to address your concern. 116 |
117 |13 | Our PRS tool can help you file a PRS complaint by walking you through 14 | the process of writing and submitting the complaint. The tool asks 15 | questions about your concerns to identify specific legal rights that 16 | may have been violated. 17 |
18 |20 | These guides provide an overview of the rights that are included in 21 | the guides, so that you can get an idea of whether your concerns fit 22 | within the information included in the guides. Explore the guides 23 | below to learn more about what kinds of situations are included in the 24 | tool. 25 |
26 |32 | Students have the right to be free from unjust discipline. The tool 33 | covers students’ legal rights when a school is trying to suspend or 34 | expel them. 35 |
36 |38 | 39 | What is a suspension? 40 | 41 |
42 |44 | A student is suspended if they are excluded from their classroom. This 45 | includes both in-school and out-of-school suspensions. 46 |
47 |A student is suspended if:
49 |61 | 62 | What is an expulsion? 63 | 64 |
65 |67 | A student is expelled if they are excluded from their classroom for 68 | more than 90 days. This includes students who are excluded 69 | indefinitely or permanently. 70 |
71 |73 | 74 | There are different laws and requirements depending on the reason 75 | the school is disciplining the student.{' '} 76 | 77 |
78 |80 | The tool covers the requirements for all three types of discipline:{' '} 81 |
82 |
84 | Code of Conduct Violations:
85 |
86 | The school is accusing the student of breaking a school rule.
87 |
90 | Expellable Offenses:
91 |
92 | The school is accusing the student of bringing a weapon or drugs to
93 | school, or assaulting school staff.
94 |
97 | Felony Complaint:
98 |
99 | The school is excluding the student because of a felony complaint or
100 | adjudication that is unrelated to school.
101 |
104 | 105 | 106 | How do I know why the school is disciplining the student? 107 | 108 | 109 |
110 |112 | The school has to tell the student and their parent/guardian why 113 | they’re disciplining the student. If the school told you about the 114 | discipline in writing, the information should be in that letter or 115 | email. Call the EdLaw Project intake line if you’re not sure why the 116 | student is being disciplined. 117 |
118 |123 | Students with disabilities have the right to a public education that 124 | meets their needs. The tool covers the requirements for the process of 125 | identifying whether a student has a disability, determining what kinds 126 | of services they need, and making a plan for the student to access the 127 | services. 128 |
129 |131 | 132 | Please note that the tool only covers the requirements for the 133 | special education process. 134 | 135 |
136 |138 | The questions will identify issues where the school clearly did or 139 | didn’t do something (for example, the school didn’t follow the right 140 | timeline for an evaluation, or the school isn’t providing the services 141 | in the student’s IEP). 142 |
143 |145 | The questions don’t cover disagreements about what the student needs 146 | (for example, whether the student is eligible for special education 147 | services, or whether the student needs to be in a smaller classroom), 148 | because those situations require more specific details about the 149 | student. 150 |
151 |153 | Sometimes, a school follows the right process, but the special 154 | education plan the school offers doesn’t work for the student. If that 155 | is the case, the questions in the tool won’t address all of your 156 | concerns. Call the EdLaw Project intake line if you have questions 157 | about whether your situation can be addressed through a PRS complaint, 158 | or if other steps might make more sense. 159 |
160 |
165 | A student is being bullied when another student’s (or group of
166 | students’) actions hurt them. Bullying can be when:
167 |
188 | Students have the right to have their schools prevent and respond to 189 | bullying. The tool covers the requirements the school has to follow 190 | when they learn a student has been bullied, and the requirements for 191 | the school to have a Bullying Prevention Plan in place. 192 |
193 |