SF residents issue requests for syringe disposal by creating a tickets and mapping the location of the syringes found in public areas. The app then sends an alert to volunteers to help with disposal. On-duty volunteer(s) will claim the tickets and update the status once the reported syringes have been disposed.
- SF residents map the location of syringe(s) found in public areas.
- Sends alerts to volunteers
- Volunteers accept cases and update status, providing the number of syringes collected from the location.
- SF residents request an area recieves special attention before events.
- Track number of completed disposals by volunteer (response time, number of syringes and location).
- Track historical locations of disposed syringes cleaned up.
- Accept and track volunteer applications.
- Track the progress of volunteers interviews, orientation and safety training.
- Stretch goal: - Interface with 511.org so volunteer can plan travel by bus/train to the location.
- Stretch goal: - Badge system
- Stretch goal: Invite volunteers to appreciation events
- Stretch goal: Create a low threshold incentivized work program using the app. SF residents/erchants may donate to the service, providing stipends to volunteers using a third-party payments through Braintree or Stripe. This would allow homeless and other low-income folks to sign-in for work to earn income.
The app was created using the Angular CLI with the following command:
ng new Application --style=scss --routing --skip-git
--style=scss
- file extension to be used for style files.
--routing
- Generates a routing module named app-routing.module.ts
.
--skip-git
- Skiped initializing a git repository when the app was created since the app was generated inside of an exisiting repository.
# cd into the Application directory
cd Application
# Run the ng build command with the 'prod' and 'output-path' flags
# the output path should point to the 'dist' directory
ng build --prod --output-path dist
# Deploy to Firebase Hosting
firebase deploy --only hosting -m "optional message describing this deploy"
The data is stored in a Firestore databases. Below are the fields for each document type in the database.
- Name
- Location (Street address, City, Zip)
- Phone
- Email opt-in
- Text messages opt-in
- Approved status
- Number of pickups
- Image
- Name
- Location
- Requestor Details
- Requestor Email follow-up?
- Requestor Email
- Number of syringes
- Status (updated by volunteers)
- Requestor Time reported
- Volunteer Time completed
- Name
- Phone
- Address (Street address, City, State, Zip)
- One time / On-going