Location based social networking.
Although attempted several times in the past, there are compelling upsides to online location based communities.
The primary motivation back in college was to build a network that capitalises on how institutions tend to have a high density of like-minded individuals yet dont have a platform where they can interact with each other about general happenings without sending each other a friend request.
On zooming out, there seemed to be many other places where this could have varying applications:
- A bulletin board - Your local barista might be hosting a coffee making session or your distant neighbours might be hosting a garage sale that you might be interested in.
- A hyperlocal social feed - Pictures from a rainbow you saw from your window; Major construction work being planned that you want to find out what the people from your pin code think about.
- Local news aggregator - Earthquake that is expected to hit the local town; It’s 2020 and you need to urgently find out which local hospitals have oxygen cylinders available as your family members have been affected.
Core
This led to building Periferi - a location based social networking platform where users currently in the same geographic area can socialise directly and engage with the local active community.
Primary features of this network:
- Periferi was purposely built to be open and unrestricted. Anyone in that geographic ‘periferi’ can share and comment on posts and scroll through other past posts.
- Community moderated: Periferis are generated by the community users. This means anyone can mark a geographic area and request a Periferi around it. If one doesnt exist already and more than N people agree with this request, it automatically gets created, ready to be engaged in.
- Recognized areas: Periferis/networks for a town/state/city/recognised establishments will already be available. If you are in multiple periferis based on your location, an intuitive pinch out/pinch in motion will land you in the periferi of your choice.
This allows a user to decide the expanse of the information that they would like to consume and how intimate they would like to be with their interactions. A user would interect differently with their local neighbourhood as compared to posting on a feed available to the entire city.
Attributes
A social networks' success relies heavily on many esoteric factors. Periferi did theoretically check off several of those factors:
- Number of people needed to make the feed exciting (Clustering Coefficient) was low because even smaller communities can engage locally. The network will not get stretched too thin if it grows one zone at a time.
- By keeping Periferi’s open by default, it discouraged close-knit networks which didnt invite new users (low clique clustering)
- The networks were centred to a geographic point, or an overall community and not to specific individuals and their followers. This meant that the network overall would be resilient to individual nodes getting removed (High structural cohesion)
- The viral quotient that comes along with scale-free networks (networks following a power law) is missing in this network to a certain extent.
Implementation
This was an MVP meant to research how social networks work and to understand their complexities. The client application was built on Java as an Android-only app. The backend was deployed on serverless functions and the database was Firebase realtime database.
- The pinch-in/pinch-out mechanism was custom built by using GestureDetectors on a SurfaceView class.
- Google Maps SDK was used with a custom color filter on various geographic layers. Various Marker Drag and Click Listeners were used to build the ability to draw shapes on the map and get back the geocodes.
- Social logins were integrated to acquire quality users. Scripts were written to pre-fill and pre-compose certain recognised Periferis.
- Elementary level of engineering was done on the feed compilation based on the upvotes, the replies and the overall user engagement.
- Codebase for the client app can be found here: https://github.com/shouryalala/periferi-client