This repository is the frontend code for an application named InKind, which is a Ruby For Good project serving Community Education Partnerships (CEP).
Community Education Partnerships' mission is to increase the learning opportunities and enhance the academic achievement of students experiencing homelessness and housing insecurity. Community Education Partnerships offers its students: individualized tutoring and mentoring, backpacks, school supplies, books, learning resources, enrollment assistance, and opportunities to participate in extracurricular enrichment activities.
This app allows CEP volunteers to provide feedback from the mentoring sessions that are a core part of CEP's programming. These sessions provide vital stability to young people who lack access to learning opportunities and face a multitude of challenges that affect their educational outcomes. CEP volunteers form lasting relationships with students, and communicate their needs of food insecurity and other necessities to CEP, ensuring that staff members are able to facilitate the appropriate support for students, and by extension, their families. This app will enable CEP to collect and analyze critical data, facilitate quicker response times to requests for support, and enable them to apply for grant funding, ensuring that their work remains sustainable.
The counterpart to this codebase is inkind-admin
, which is a Ruby on Rails GraphlQL API (and desktop first admin portal).
Thanks for checking us out!
CONTRIBUTING.md
file for a guide on how to get startedPlease feel encouraged to join us on Slack! You can sign up at https://rubyforgood.herokuapp.com
We're in the #team-inkind
channel.
This is a TypeScript/React project that uses GraphQL as it's single endpoint. GraphQL schema is checked in to both inkind
codebases.
This project was initially setup with Create React App. You can learn more this in the Create React App documentation. To learn more about React, check out the React documentation.
If you are unfamiliar with GraphQL, there is no better time to learn. HowToGraphQL is a wonderful interactive tutorial to get acquainted. This project uses Apollo to communicate between the backend and fronted.
asdf plugin-add yarn
& asdf install yarn latest
yarn install
inkind-admin
and work your way down to the server instructions.bin/server
and leave it running.yarn start
in a new shell session. This will open http://localhost:3000 to view the project in your browser. The page will reload as you make edits to TypeScript. You will also see type & lint offenses in the console.yarn test
This will launch the test runner in an interactive watch mode.To log in as a volunteer:
Email: volunteer@cep.dev Password: password
When you make a change that grabs additional fields from a GraphQL query, OR makes a new request to a mutation, you need to regenerate the GraphQL schema in this repository.
yarn schema
bin/server
).yarn schema
to regenerate all graphql Typescript files.