Codechella Crisis Response App Spec V1
Internal Definitions
- Crisis: A period of immense difficulty or danger (i.e Social unrest, natural disasters, conflict zones, Food deserts, High senior citizen density, High poverty rates, Shootings and terrorist attacks)
- Verified Crisis: A crisis that is internally recognized in our system -> might not need this
Product description
An application curated to crisis zones to facilitate dissemination of mission critical information from source to key partners with minimal lag time.
- Web Application
a) For citizens - curate and display information with degree of confidence in validity (tackle misinformation)
b) For responders - cluster and aggregate relevant information that can help responders deal with situations using up to date info, visualize data
- Text Notifications (secondary focus) - Text important updates to users who opt in
Value proposition #Hackforgood (lets define our MVP)
Helping individuals get access to accurate information from sources on the ground with little to no lag time.
MVP questions (IMPORTANT !!!!)
_ How will a user using the app get info specific to their location? _
Do they have to enter location or can we use browser to get their location and backend logic to determine if there is a crisis? -> we may be able to simplify this by just using categories to search by at all times instead of maintaining current crises
We should give a user predefined categories to select from to get tweets i.e help, aid, food
How do we know what regions to run our program in and when?
How do we know what regions have an ongoing crisis? -> can simplify as mentioned above
How will our app find a crisis zone and start displaying information?
If a "verified" crisis we display info otherwise display null? -> we may be able to simplify this by just using categories to search by at all times (i.e help, food, resources, aid) instead of maintaining a list of current crises
Use case examples
-
I am in a small town and there is a natural disaster near me and I need to immediately know if there are people near me I can help or aid resources close to me.
-
I am a first responder in a civil war and I want to use the data visualisation to see where there are clusters of affected people so I can deploy my resources best.
-
I am a senior citizen living in a food desert and don't have immediate access to people near me. I want to find the closest grocery store, restaurant or facility offering free food for the homeless or elderly.
Key features
-
Embed filtered relevant tweets in the web page tweet IDs will have to be retrieved from the backend using a GET request to our API Frontend Team
-
Display data visualization and relevant information to first responders Frontend & Data Team
-
Give all users filter tweet clusters by keyword same as end user but responders get data visualisation e.g. help, hurt, injured (When a user clicks a category we send a GET request to our backend) Frontend Team
-
Confidence score in the validity of a tweet. Using internal logic how accurate do we believe a tweet is Backend/Data Team
-
Internal API for frontend team to use Backend/Data Team
-
Texts Twilio(last priority) - the only way to send a text using the API is if a user initiates the action as we don't have access to that data so we would need someone to either sign up for the notification in the app or tweet at us etc. Tech heavy - save for last
Moonshot features
- Link to other resources in the area i.e locally owned businesses etc.
Deliverables (per person)
Front end:
- React web app - Nandini and Luisa
- Home page: 1. Responders section, same information of citizens but with data visualization. 2. Citizens sections. 3. Deployment (discuss with backend team)
Backend
- Tweet filtration - pull the right relevant tweets from the API and store them
- Misinformation Logic - confidence score for tweet validity
- API for frontend
- Tweet Database
Product roadmap/timeline
First review **20th (11pm EST) (10pm CT) (8pm PST) :
-
Misinformation logic and tweet storage database first rev - Gobind
-
Tweet filtration/streaming and internal API for frontend first rev - Gobind
-
Web app mockup & skeleton (answer questions about database, hosting and full stack linking to our endpoints - we need to discuss how you want to receive data and what data you want to receive i.e the ID of a tweet for you to fetch to embed on the page) - Luisa
Second review 21st (2pm EST) (1pm CT) (11am PST) :
-
Misinformation logic and tweet storage database complete Data Visualization - Gobind
-
Tweet filtration/streaming and internal API for frontend complete - Gobind
-
Webpage functional & start tying into backend - Frontend Team
Final review 21st (11pm EST) (10pm CT) (8pm PST) :
- Fully functional application with Backend and Frontend Tied into each other and us as users doing testing. Gobind
- Video for submission purposes
Devpost Submission 22nd (9am EST) (8am CT) (6am PST)
API Usage:
" cd react-flask-app"
(using two terminal windows)
In the first: " yarn start" (frontend server)
In the second: " yarn start-api" (backend server both served on post localhost:5000)