Cities are disconnected from their cities due to a lack of an easy, fast communication platform for reporting issues and sharing positive events in the local community. Cities don't have the resources to engage citizens, and therefore citizens don't know who to call when something concerns them. Because most issues are not life-threatening, people don't report important matters because they don't want to flood 911 calls. Finally, citizens don't have an effective way to inform and share news with the community when a something concerns everyone in the community.
Ok City! is designed to connect cities and their citizens through a voice and location enabled platform that leverages crowdsourcing in smart cities. The platform allows citizens to create location-based reports through text-to-speech, citizens to browse nearby reports from other citizens, and city managers to manage and resolve posts and issues from his city. The system builds a stronger community and increases awareness by enabling citizens help each other by spreading useful knowledge of current events within the community. Cities can be run more effectively due to citizens directly connecting with the city about issues that are pressing for them. Ok City!'s benefits apply not only to city managers, but also to citizens themselves. When something in the community happens that concerns everyone, an easy, simple, and fast post through Ok City! can rapidly notify everyone in the area about the issue. This lets residents know the events occurring around them so that they can better plan around them.
The Ok City! system consists of a mobile application for citizens, a cloud-based, highly scalable backend to handle the internals of the system, and a web portal for city managers. The mobile application enables citizens to create reports by dictating or by direct input, and browse nearby reports filtered by distance and recency. The backend servers are written in Node.js and deployed in the cloud, featuring a scalable, distributed architecture, artificial intelligence for sentiment analysis, and a Big Data NoSQL database.
Ok City!'s goal is to build a smarter, more effective community through a city connected by crowdsourced reports. The platform will both allow the city to better manage itself based upon people's’ observations, and enable citizens to both contribute to and help others gain a greater awareness about their surroundings and city environment.
Ok City: Unifying Mobile, Cloud, and AI Techniques in a Crowdsourcing Application for Smart Cities
1. Unifying Mobile, Cloud, and AI Techniques in a
Crowdsourcing Application for Smart Cities
A Voice and Location Enabled Platform for Connecting Cities and
Their Citizens
By Marc Bacvanski
marc.bacvanski@gmail.com
March 2017
Ok City!
2. Problem: Disconnected Citizens
● Cities don't have resources to engage citizens
● Citizens don't know who to call when something concerns them
● People don't report important matters because they don't want to flood
911 calls
● Citizens don't have an effective way to inform and share good news with
the community
Citizens are disconnected from their cities due to a lack of an
easy, fast communication platform for reporting issues and
sharing positive events in the local community
3. System Requirements: User Stories
● As a city manager, I want to view statistics for my
city so that I can take action on them.
● As a city manager, I want to resolve issues
posted in my city to mark their completion
● As a city manager, I want to moderate posts so
that I can focus on important ones.
● As a citizen, I want to view nearby posts so that I
can know what is going on.
● As a citizen, I want to create posts to inform the
city about problems to be fixed.
4. REST
Sentiment
Text
Post Vis
Post Mgr
Scalable, Mobile Backend AI and ML APIs
NoSQL DatabaseScalable, Mobile Backend
REST
Geo Vis
Post Stats
Post Resolve
Portal Views
Web Sec.
NL API
Citizen
Posting
Citizens
Viewing
City Manager
● System deployed in cloud
● Scalable, distributed architecture
● NoSQL Big Data database
● Implemented latest web technologies: Node.js,
enterprise-grade security
● AI for sentiment analysis
Context Diagram: Ok City System and its Users
● Mobile application featuring
Text-To-Speech
● Material design: consistent
experience from phone to
desktop application
● REST communication with
backend
● Integration with maps and
geolocation
Ok City Cloud Deployment
5. Report stored in database, machine
learning applied for sentiment
Flow of Interactions
Recording a Report
User voice-records a
report in the app
Browse Reports
User can view nearby
reports on a map
Resolving Reports
City manager can resolve
obsolete or completed reports
View Reports & Statistics
City manager can view reports and
powerful statistics about his city
Citizen (Phone)
Reports and statistics
sent to city portal
Report data sent
to user's device
City Portal
Back-end
View Resolved Reports
Users can see their reports
that have been resolved
6. Comparison to Other Systems
Feature Existing Ok City
Geographically Placed Posts
Voice-Activated Posts
Custom Posts
City Manager Portal
City Manager can Resolve Posts
City Statistics: Sentiment, Timeline
Existing systems include: Waze, Yelp, TripAdvisor, city portals like Ask Mountain
View Mobile. These systems have limited functionality.
7. Mobile: Browse Nearby Posts
Opens filter dialogue: filter reports by
recency
Post on map: message, location, and
time of reporting
● Map reflects user-selected filtering
options
● Map centers at user's location, shows
nearby posts
8. Mobile: Record New Post
User can manually edit the recorded
post
Submit report to city, re-record post
● Automatic speech-to-text is
performed on the phone itself to let
citizens record reports hands-free
● Safe to use on the road: no need for
typing
● Sentiment analysis is done once the
text report is sent to the server
9. Mobile: Filter Posts by Location, Time
● Scalability is maintained by having
all filtering done on server-side
● Posts are filtered by time of posting
● Posts that are resolved by the city
are not shown to user
● Posts are only displayed from within
selected geographical view bounds
User can select time period from which
to display reports
11. Web: City Overview - Geo View and Posts
Filter by keyword
Resolve selected
reports
Sentiment of
report: positive or
negative
This page is built using Material Design Lite and JavaScript that interacts with the Google Maps API
as well as the back-end server using REST and JSON.
12. Web: Resolved/Unresolved Citizen Reports
Reports, filtered by
resolved only
Marker on map
with description
and timestamp
The JavaScript running this page is written in EcmaScript 6 using Functional Programming styles and
asynchronous programming techniques using Promises.
13. Web: Pulse of the City - Analytics Visualization
Pie chart of
positive / negative
sentiments
Line chart of
sentiment over
time
More actions in
drawer
Zoom controls for
pagination of data
over time
These graphs use Google's visualization API, and utilize pagination to efficiently handle large
numbers of reports. These visualizations can be easily extended to handle custom visualizations.
15. Component Architecture: Mobile and Web Backends
System architecture presented as UML diagrams, according to the IEEE 1471
standard for representing software architecture.
18. Ok City Vendor-Independent Cloud Deployment
REST
Handler
AI: Sentiment Analysis
Text Analytics
Post Visualization
Post Manager
Scalable, Mobile Backend: Node.js
Mobile
Device
Firewall Load
Balancer
AI and ML APIs
City Portal Firewall Load
Balancer
Scalable MongoDB NoSQL
Database
Scalable, Mobile Backend: Node.js
REST
Handler
Geoquery Visualization
Post Statistics
Post Resolver
Portal Views
Web
Security
Natural Language API
Speech to Text
Report Submitter
Report Mapper
Report Manager
City Statistics
Geo View
19. Technologies Used
Technology Usage
Android Mobile app
Java 8 Programming of Android application
Node.js Web server
Express.js Node.js framework for web applications
EcmaScript 6 Web programming
MongoDB Scalable, NoSQL database
HTML5 + CSS3 Web UI
Material Design Lite Front-end templating
JQuery Client-side scripting
Google Natural Language API Sentiment analysis
Heroku Scalable, cloud hosting from Salesforce
20. Technology Highlights
Cloud Architecture: Flexibility and Autoscaling
● Stateless REST architecture, service-oriented
● Separation of responsibilities, fault-tolerant resiliency
AI and Machine Learning
● Sentiment analysis using Google Natural Language APIs
● Speech-To-Text on mobile application
Security
● OWASP (Open Web Application Security Project) best practices
● Implemented with Lusca: enterprise-grade security package
used in financial industry
User Experience: Material Design
● Easily accessible experience
● Unified experience across mobile and web
21. Future: Deep Learning, Real-Time Streaming
● Sophisticated Deep Learning using custom natural language for
criticality analysis, beyond commercial offerings
● Integration with IoT sensors and video feeds in cities to generate
automatic posts
● Deployment on serverless architecture such as AWS Lambda and
Google Cloud Functions
● Automatic server deployment using Docker
● Big data analytics on nationwide data
● Real-time stream processing
y = softmax(Wx+b)
22. Join Me on Github!
My Profile
Ok City Repos
This is just the beginning. Let's work together on
building the future of connected cities!