Architecture - PCNI/homeless-helper GitHub Wiki
High-Level Architecture
Data Sources
Update job postings (tools.update_jobs)
- Query Indeed.com RSS feed for new jobs.
- Insert new jobs to 'resource' collection.
- Check for expired jobs and remove from 'resource' collection.
Update bed availability (tools.update_beds)
- Query NJHMIS for beds.csv.
- Update bed availability for each shelter in 'resource' collection.
Update shelters (tools.update_shelters)
- Query OpenHMIS API and add new shelter resources.
- Perform reverse geocoding via Google Maps API.
- Insert new shelters to 'resource' collection.
Clients
Mobile Web Application
All mobile web methods reside in the '/mobile' namespace.
iOS Application
Methods to support iOS requests:
- /api/resource/get
- /api/resource/list
- /ios/admin
- /ios/admin/update
- /ios/shelter_register
- /ios/job_new
Telephony Application
Inbound Twilio requests query 'resource' collection.
Methods to support Twilio requests:
- /api/resource/sms_inbound
- /api/resource/voice_inbound
- /api/resource/voice_zipcode
Analytics
Localytics: iOS app event tracking
Google Analytics: Web app event tracking