1. GeoWall
Project in Mobile and Pervasive Systems
Prof. Alessio Vecchio Sara Egidi
Alessio Villardita
Università di Pisa - Computer Engineering A.A. 2015/2016
2. Overview
GeoWall is an application that allows
users to leave messages to virtual
walls placed
around
the world
3. Functional Requirements
• Walls can be placed anywhere
• To read a wall, the user must be within its range
• Unreachable walls cannot be opened
• Users must be registered to use the service
• Users either may leave text or photo messages
4. Technical Requirements
• Use of fine location through GPS, WiFi and mobile networks
• Real-time notifications for messages, walls and geofencing
• Google Maps API
• Internet connection always enabled
• Camera to take photos
8. Future developments
Features:
• Polymorphic fab
Create a new wall if there is no
wall near or automatically write
to the joined wall (select if
more than one)
• Expiring walls
• Friends list
User lists for:
• Recently visited walls
• Favorite walls
• Walls where has left messages
Notifications:
• On new message in a favourite walls
• On new message in a written wall
Editor's Notes
The aim of this application is to provide its users with geolocalized walls (i.e. bulletin boards).
GeoWall is an Android application that lets users leave messages to virtual walls placed around the globe.
When getting physically close to a wall, people are able to open it, read the messages other users have left and post new messages.
Also, a user can open a new wall at a new site, and thereafter everybody else will be able to post to that wall.
All of this happens in real-time.
Firebase, Google API
A cloud-hosted NoSQL database. Data is stored as JSON, synced across connected devices in milliseconds, and available when your app goes offline.
Remains responsive regardless of network latency or Internet connectivity so your Firebase app works offline. Data synchronizes when connectivity returns
Handles the complexity of realtime synchronization and provides flexible conflict resolution
Accessible directly from client SDKs, or from your server with the REST API
Instead of typical HTTP requests, the Firebase Realtime Database uses data synchronization—every time data changes, any connected device receives that update within milliseconds. Provide collaborative and immersive experiences without thinking about networking code.
The Firebase Realtime Database lets you build rich, collaborative applications by allowing secure access to the database directly from client-side code. Data is persisted locally, and even while offline, realtime events continue to fire, giving the end user a responsive experience. When the device regains connection, the Realtime Database synchronizes the local data changes with the remote updates that occurred while the client was offline, merging any conflicts automatically.
The Realtime Database provides a flexible, expression-based rules language, called Firebase Realtime Database Security Rules, to define how your data should be structured and when data can be read from or written to. When integrated with Firebase Authentication, developers can define who has access to what data, and how they can access it.
The Realtime Database is a NoSQL database and as such has different optimizations and functionality compared to a relational database. The Realtime Database API is designed to only allow operations that can be executed quickly. This enables you to build a great realtime experience that can serve millions of users without compromising on responsiveness. Because of this, it is important to think about how users need to access your data and then structure it accordingly.
Put here screenshots of each activity; they have to show specific application behaviors, such as entering and exiting the geofences, the wall activity, the enabled and disabled walls.