Skip to content

Placemark web app, allowing creation and management of user-generated 'Spots', including cloud-based image hosting

Notifications You must be signed in to change notification settings

Kwee-Veen/SpotHop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpotHop

Readme_Image

SpotHop is a placemark-focused application, allowing creation and management of user-generated 'Spots'.
Users can sign up and log in, create and manage their own spots, and view those of other users.
Spots can include a name and description, a category, and lat/long coordinates.
Images can also be uploaded for spots, which are cloud-hosted (Cloudinary).

Analytics are generated for all saved spots, including a breakdown by spot category and user vs. global spots.
Searches can be performed to only display spots meeting specific criteria, including name, category, coordinates and user-generated.
User accounts can be deleted; the first user to be created is also designated as the admin, and can view, modify and delete all user accounts.


SpotHop is hosted by both Render:
https://spothop.onrender.com/
and Glitch:
https://spothop.glitch.me/

Spothop is also a REST API; users and spots can be created, found and deleted through HTTP requests.
The API is supported by Swagger 2.0 documentation, with descriptions of all API functions and secure testing facilitated.
Spothop is secured using cookie authentication (web app) and JSON Web Token JWT authentication (API).


Test-driven development was employed in building SpotHop, and a full suite of tests for both the web app and API are provided.

SpotHop's default persistence route is MongoDB, cloud-hosted (Cloud Atlas), JSON persistence can be employed by tweaking the src/server.js file from:

db.init("mongo");
to:
db.init();


The following environmental variables must be specified in order to reproduce this web app:
COOKIE_NAME (String)
COOKIE_PASSWORD (String)
db (String - Cloud Atlas MongoDB server connection string)
cloudinary_name (String - Cloudinary credentials)
cloudinary_key (String - Cloudinary credentials)
cloudinary_secret (String - Cloudinary credentials)