Skip to content
Anup Mantri edited this page May 10, 2023 · 23 revisions

Last edit May 9th, 2023

Compass Logo

Welcome to the Compass GitHub Wiki!

Compass is a civic app we are building for the San Francisco Unified School District. The app seeks to assist Teachers with setting and tracking goals for students with disabilities.

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Fine Tuning Your Code
  4. Resources

About The Project

Hello, Engineers seeking to contribute to the Compass app! This Wiki is set up to guide you on how to contribute to the repo, and will hopefully answer a few of your questions as to what phase the project is in and how to adopt issues and build out components. This wiki will be updated when possible, revision date noted at the top of the Wiki.

Project Overview

Project Compass is a web app designed to make it simple/easier for Case Managers and Para-educators in a school district to set and record IEP (Individual Educational Plan) data for students with disabilities, based on the initial out-of-app IEP goals that The Case Managers and the student’s stakeholders (usually parents and any specialists) agree upon annually.

Historically, Case Managers (CM's) would use non-specific software like spreadsheets, passing the IEP activities on to the Para-educators (Paras) in the form of verbal guidance and printouts. The Paras would then use the CM's guidance to have set activities with the students, reporting back on the student's progress when they could. While handling the IEP data collection this way works okay, not only is challenging to communicate and adapt to situations like absences and progress hiccups, a CM's and Para's schedules might not match up often during the day, and sometimes a Para or CM could have a challenging class and not have the time or attention available to collect activity data easily.

The Compass app seeks to make CM's setup of the data collection activities straightforward, but most importantly seeks to make the data collection for the Paras fast and simple for their students' activities. After the data is collected by Paras via Compass, the app seeks to visualize that data in order for the CM to review so that they can adjust the activities for the student and compose reports for the stakeholders. You can learn more about it at the project’s source of truth


(back to top)

Current Teams

Compass is split up into five teams, though we currently all meet together weekly to update all teams on progress. Most teams also have a separate meeting during the week. You can find out more on our Slack, which you can join on our site here

The teams are:

  • Groups 1 - 3 - the project is currently split up into the different views our app will present:
    • Group 1: The Case Manager View - A web app with browser-first view, for the setup of the Caseload:
      • Students and their IEPs. (The students are unique to the Case Manager for that school year)
      • Para-educators the Case Manager assigns to data collection for a student on the Caseload (Some Paras assist more than one CM)
    • Group 2: The Para-educator View - A web app with mobile-first view, for the Para to collect data
    • Group 3: The Data Visualization - Graphs and charts for the CM View to visualize the collected data
  • Design Team: Handling the styling and visual layout of the differentparts of the app
  • Tech Team (Us!): Programming and deploying the app!

Current Project Status

We are currently on the tail end of the design phase, and the Design Team and Project Management teams are deciding what components are needed and how the app should look and flow.

Current Development Phase

The MVP (Minimum Viable Product) for the app is Group 1's work: the Case Manager Initial View. The Para view and Data Visualization view will inform how we set that up, but they are not a necessary part of coding the MVP. Currently we are writing up new issues in the GitHub Projects board for Compass, and self-assigning them. We are currently working on any components we are sure will be needed, and displaying them in the Case Manager Dashboard file as React Components.

Tech Stack

  • TypeScript
  • React
  • Next
  • tRPC
  • Node
  • PostgreSQL
  • Zapatos
  • Docker (optional)

(back to top)

Getting Started

Please use the Repo's README to handle installation. You must contact a team member on Slack on our proj-compass-tech channel to get Auth working, but can do work without that step if you change your url after running "npm run dev" to localhost:3000/cmDashboard, but without logging in you will get Auth errors and will not be able to use the user flows like adding students or staff without hardcoding a CM user_id in your frontend component.

Using GitHub Issues

Adding Components

  • File structure - src

    • Pages (frontend urls)
    • Components (frontend component builds)
    • Backend
      • db/migrations/1_initial-migrations.sql
      • Routers
    • Styles
  • Data Flow

Git Workflow

Submitting Pull Requests

  • Push to your branch in GitHub (git push origin mybranchname)
  • Open a pull request and use the balloon-with-upward-arrow icon to link to the issue
  • Submit the Pull Request
  • Assign 1-2 team members to review the PR
  • Follow up on comments, and push committed edited code to your branch on GitHub
  • After approval, squash and merge your PR
  • Delete branch

Code Review Process


(back to top)

Fine Tuning Your Code

Naming Conventions

  • Frontend React Components
  • Frontend Pages urls
  • Backend Db PostgreSQL schema
  • tRPC functions

Testing

Using Linters

CSS Options


(back to top)

Resources

Significant Links

Glossary Of Terms


(back to top)

Clone this wiki locally