This app solves the problem of people wanting to be more aware of their surroundings and lack of proper channels for efficient communication between residents of a particular neighbourhood.
This app provides a platform to facilitate the flow of information between the Residents of a particular neighbourhood. The Residents will be able to share information which they feel is useful for the community, from a pothole hindering the traffic, a new shop opening up in your block to situations that are more severe in nature, resident helps you be up-to-date with the affairs of your neighbourhood.
This app lets users stay informed of events in their surroundings and make decisions accordingly to avoid inconveniences, potentially harmful situations and take advantage of opportunities that are available. The posts have the location at which they're made, and so when the the users of the app of refresh their feed, all the posts in the vicinity of 2km would be rendered to their feed. The posts have a fixed life span after which they expire and no longer appear on the feeds.
Their are options to upvote, downvote and flag the posts. The flagged posts are be operated on by the Perspective API which classifies the text content and image of the posts as appropriate and inappropriate. The posts classified as inappropriate get taken down. The users will also be able to see the posts that they have made.
Use cases - Many services are being suspended due to the lockdown resulting in mass confusion. Resident will help to notify the neighbourhood whether a particular service is functional. In case of emergencies, Rescue services may take some time. Resident can raise awareness in the community to help in the meanwhile. Ex - Kerala Airplane crash. Users can also be aware of potholes, waterlogged roads, roadblocks etc.
We had problems with timestamps in mongodb to measure the time lapsed since the post is made which was crucial for the post expiry feature. We found a work around by keeping track of time lapsed of posts in firebase.
Initially we had problems with incorporating the perspective API into our backend application, which we solved using asyncronicity in javascript.
Initially we had problems with uploading pictures in firebase which we later solved by realizing and incorporating the changes in syntax made in the new firebase API.
We had problems setting up Google authentication with MongoDB and it turned out that since the front end was done using Flutter it had to be done using Firebase. So, we decided to switch the Google authentication to Firebase.
Discussion