Skip to content

nasreekar/GeoNotes

Repository files navigation

GeoNotes

Description

A simple mobile application that allows users to save location based notes on a map. These notes can be displayed on the map where they were saved and viewed by the user that created the note.

Features

List the main features of your app. For example:

  1. Google+ login
  2. Display list of notes
  3. Location Based
  4. Google Maps Clustering
  5. Swipe to delete (both directions) on Notes List
  6. Long press on note item to add it on home screen App widget

Technology Stack Used

  1. Android (Java)
  2. Firebase (Google Login)
  3. Firestore (for data persistence)
  4. Google Cluster API (to cluster all pointers in that area)
  5. Lottie (for animation)
  6. MaterialDialog (for displaying saved noted Info)
  7. Butterknife (View Injection)

Commit History

Commits are made at regular intervals and all those can be seen here

Future Updates/Modifications

Many functionalities can either be added or modified to the current application. Few of the things that can be either modified or added are:

  1. Edit Note functionality
  2. Color coding of notes
  3. Better Architecture pattern (MVP/MVVM, SOLID etc)
  4. Update App widget to show a list of all notes added (only title) and clicking on any item to open details of the note
  5. Allow the user to set a note private so that its not displayed in other's map

Bugs

There might be some bugs that would have crept in and went unnoticed while developing, but my highest priority is to implement the functionality as per requirements and these bugs would be fixed in coming updated versions/releases.

Testing

For testing purposes, you can run use the following credentials.

email: [email protected]

password: password

Screens

Map screen (FootprintFragment) - Displays all the pointers of all users (color coded. Red for own notes, Blue for other users markers)

Notes List (NotesListFragment) - Displays only Notes of the logged in user (To read the notes of other users, navigate to map screen and click on any blue marker which will show a window and on clicking on that a bottom dialog appears with more details.) Clicking on any of the card views in this screen will open a bottom dialog sheet with more details. Clicking on the map in card view will open google maps.

Home Screen - GeoNotes HomeScreen Marker Window Details Screen Extended
NotesList Share Profile Favorites

App Functionality

video

Hiding API Keys

The problem I faced while setting up the repository is I entered the API key in a tracked file and pushed it directly to Github. Checking this into source control can expose your key to the public and And I started receiving emails from GitGuardian that I'm exposing the API keys.

Screenshot-2019-08-14-at-12-11-05-PM.png

So I had to figure out how to fix this issue and found these articles helpful.

Contribution

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

MIT