Web application to help tenants keep track of documents related to their rental unit
Tenants, especially low-income tenants, and advocates need to be save and organize records related to units and complexes. Records include photos, receipts, the lease terms, notes from the landlord, fees/fines, and incident reports. We're looking for an accessible platform designed for those that BASTA works with -- easy to text or upload in, making metadata clear, and with flexible security settings.
We have managed to get to a point where tenants can send a photo to a phone number and it ends up on Google Drive. We are designing around tenants sending photos of apartment conditions, since the stakes for security are lower.
Next, we're working on implementing a Twilio conversation. Tenants can send in a form, documentation, and add their contact information.
After that, we're building out the retrieval platform. Rather than Google Drive, we're building a custom web platform where organizers and tenants can retrieve the photos they have sent.
For later versions:
- Eventually, we'd also like to be able to auto-generate forms and complaints for repair requests and code complaints.
- Include nudges/to-do lists to let tenants and others know when to submit records or take other actions.
- Incorporate Appraisal District and Census datasets.
- Display data publicly on a map / something visually appealing.
Document types:
- Leases
- Notices
- Photos of conditions
- Apartment Newsletters
- Bills (Utility, Rent, etc)
- Lease Violations
- Court summons
- Petitions
- Letters/notes to MGMT
- Receipts
- Checks
Tenant organizers and tenants facing gaslighting, neglect, or abuse by landlords.
What other resources/tools are currently serving the same need? How does your project set itself apart?
Justfix.nyc creates tech to help tenants, but only for those residing in New York City. PDF checklist for Texans is here. Other big PDF handbooks also exist.
We recently came across this application designed to help human rights organizations organize documents.
Audrey McGlinchy writes about housing, zoning, and eviction in Austin. This recent article discusses ways in which tenants are taken advantage of with mandatory fees.
Here's the link to our Google Drive folder.
Front-end design
User testing
Project management
Developers familiar with our tech stack:
Frontend Client:
- React.JS
- Redux
- GraphQL
- Apollo Client - state management with GraphQL
- Typescript
- Axios
- Firebase (authentication)
- Formik
- FontAwesome
- Styled Components
Backend:
- API - C#/ASP.NET core
- Database - Postgres hosted on Google Cloud Platform
- Authentication - Firebase
TBD.
Most team members use the following tools. Required tools are noted.
- dotnet: Required to compile and run the API. Download here
- nvm: A highly recommended version manager for node. Download here
- If you don't use nvm, then acquiring node directly is required. Download here
Once nvm
is installed, you can cd
into tenant-file/portal-app
and run nvm use
. This will install the appropriate version of node (if not already installed), and set your local environment to the specified version. Currently we're using Node v14 LTS.
Development on the backend requires:
- Docker: Used for having a more easily setup postgres development environment. Install from here
- gcloud: A recommended tool to interact with the google cloud platform. Instruction to install are here
You will need a database running locally for the server to connect to. You can run the local server by executing the ./startup.sh
script in the local-development
folder.
You will need a Google Cloud account to interact with several services that we use (primarily the database).
Once you have a Google Cloud account, follow the instructions here to set up local application credentials. This is currently necessary to run the API.
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli
dotnet ef migrations add <MigrationName> dotnet ef database update
npx apollo schema:download --endpoint=http://localhost:8080 graphql-schema.json
npx apollo client:codegen --localSchemaFile=graphql-schema.json --target=typescript --includes="src/**/*.ts*" --tagName=gql