Git Product home page Git Product logo

signpost's Introduction

Signpost

For those of us who have had the good sense and fortune (or possibly misfortune?) to play one of the Dark Souls series, we're intimately familiar with the mystical orange soapstone. This item allows players to drop messages anywhere within their world that will then appear to other players in their own worlds. These are used to hint, warn, amuse or (more often than not troll) other players as they journey through the treacherous land of Lordran.

Overview of My Submission

SignPost

I took inspiration from the idea of the orange soapstone - specifically being able to drop messages at any location for others to read - and came up with the idea of 'SignPost', a geo-social network. This is a platform that allows you to drop messages (signposts) anywhere you like and to read the messages other people have left, where you're located. This could be great for directions, sports (cross-country hiking), games, etc - but is mostly just a fun idea for a hackathon.

SignPost is an Android app supported exclusively by the MongoDB Atlas platform, from user-authentication and login through to geo-querying and search. The app has four core features:

  • Signup and authentication using your Google credentials (via MongoDB Realm).
  • Browsing a map marked with "signposts" - messages dropped by other users near your location.
  • Dropping a signpost yourself.
  • Searching for signposts across the world

1. A map filled with signposts

Once logged in (via your Google credentials) you're presented with a map zoomed in on your current location. The app fetches any messages in your local area and plots them on the map for you to interact with. These appear as orange markers, and will display the message when touched.

{% youtube RDmtvayeyg0 %}

2. Dropping your own signpost on the map

If you have something to say you can easily post your own message on the map. Just tap the exact point at which you want to post it and type away.

{% youtube 77qtHJAXCio %}

3. Searching for signposts across the world

You can search for messages across the whole world, thanks to the Atlas search integration. Simply click the search icon (top right) pick the message from your search results and your map will be immediately transported around the world.

{% youtube TD9oVm_x9vY %}

How does it all hang together?

The SignPost app is backed completely by the MongoDB Atlas platform, and uses a number of its features:

  • Realm / Google Authentication to seamlessly add google user signon and tracking to the application.

  • MongoDB Atlas with Geospatial Indexes to allow the plotting of messages with their latitude/longitude co-ordinates, and to query records within the locality of a point.

  • Atlas Search to make it trivial to map the signpost messages into a free text search.

  • Realm Functions to provide a serverless set of backend APIs for the three key functions of the app - reading, writing and searching for messages.

Architecture

In summary, MongoDB Atlas was able to provide a complete back-end stack (with the exception of Google Maps) to develop a fully functional Android application, even though I'd never written a line of Android code before ๐Ÿ˜ฒ

[Note]: # (Please make sure the project links to the appropriate GitHub repository, and includes the Apache-2 permissive license and README.)

Submission Category:

Choose Your Own Adventure

Link to Code

{% github https://github.com/lucas-matt/signpost %}

Additional Resources / Info

signpost's People

Contributors

notmattlucas avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.