© 2017 Dominic V. Lacroix
Demonstration MERN full-stack application using machine learning, state management, REST-ish API, and Google Maps API. This project is still in development.
This project was bootstrapped with Create React App.
This project uses a modified version of the genetic algorithm developped by Randal Olson and made available in his Data Analysis and Machine Learning Projects repository (https://github.com/rhiever/Data-Analysis-and-Machine-Learning-Projects).
Epic Road Trips is a full-stack MERN stack app creating optimized travel routes with large number of stop overs. It circumvents the travelling salesman problem by using a simple genetic algorithm to iteratively optimizes stop over orderto create a route visiting all waypoints while travelling the least amount of distance.
Communication between the React GUI, the MongoDB database, and Google APIs are handled via an Express server setup to handle CRUD operations.
Private and curated data are stored in MongoDB collections.
User Authentication and Authorization is handled with password hashing using bcrypt and with verification and token generation via jsonwebtoken.
Authorized users have access to additional features, inlcuding the ability to save and modify curated trips to their own account, creating and saving new trips targeting sights of their own choice, and the ability to follow, comment, and vote on curated trips.
Curated road trips are a series of curated optimized trips created using the application. They group top sights from around the world into thematic trips at a variety of scales.
Trips generated by authorized users are stored as sub-documents within each user document. They can be retrieved and edited using the React GUI.
The javascript code used by the Express server to find the optimal travel route is a translation and modification of the original Python source code provided by Randy Olson as part of his Optimal Road Trip Project.
The source code is made available under the OSI-approved MIT license and a Creative Commons Attribution license (CC BY 4.0 license).