This is a small pet project ive had on my mind for a little while. Simply put its a TSP solver with a gui around it. Ill be building this out in my spare time to get a more comfortable with building out entire projects. pet project where users can use go, enter coordinates of sereral places they would like to visit, and a best path is returned.
- Golang, Javascript, React, more to come
- alpha complete
- frontend
- add title
- add map
- add visualization for coordinates
- add visualization during optimization (connect all points and randomly iterate through paths)
- add popup alerts for error messages
- backend
- standardize path finding so we can easily add in new attemptes without having to rewrite frontend/backend interactions
- optimize path finding
- cached path finding to cut down on computation time
- add a nieve random search endpoint
- integrations
- add database to periodically store user trips for analysis later
- explore storing summary data
- store longer data set which can be used to test proposed solution against true solution and measured for speed
- add database to periodically store user trips for analysis later
- frontend
adding improvements/tweaks to be made here before they are pulled into a next version
- optimize path finding
- add simulated annealing find best path
- add controls to be able to commit a specific amount of computation time to calculating an optimal route
- use go ffi to leverage speed and efficiency of a rust library
- integrations
- add user accounts & authentication
- add centralized logging
- log rotate set up upon vagrant up
- logging levels used
- improve system resiliancy
- Dockerize/Pod-ify application
- use system to manage clusters
- application on vm to restart services as required
- do not allow system to get overloaded when optimizing requests
- backplaneing returns appropriate error code instead of taking on too much work
- queue requests if they cannot currently be run
- investigate hosting application over multiple machines
- Dockerize/Pod-ify application
- optimize website
- profile react componants
- compile react code to static js files and serve directly via nginx or apache
- profile reverse proxy
- functionality improvements
- users can select a starting point from which all paths begin
- users can select an ending point at which all paths end (potentially the starting point)
- users users can see their search history
- users can look up famous lanmarks by name and their long & lat will be added automatically
- some sort of admin portal where we can see uptodate monitoring of the system
- explore use of web gl http://examples.webglearth.com/#markers
- users can log into an account of their own
- users can go to a profile page and edit information about themselves
- road data taken into account
- host version of the site online somewhere
- create tests
- connect tests to github to testing will happen on pushes
- deployment
- expore exporting as an rpm or set of rpms
- System resiliancy
- improve go instalation
- programs run as a service
- logging improvements
- centralized logging service
- log files written
- log rotate initialized
- improve header
- login button floats to the far right right
- add log in page
Past efforts:
- POC complete
- users have a portal where they can enter a list of coordinates.
- users can submit these coordinates to the server and have an optimized route returned to them
- backend support
- front end support
- communication between the two via reverse proxy for single enpoint
- basic front end styling
- basic make file added
- command to rebuild go server
- command to run node server
- abstraction between host machine (runs in a virtual machine)
- project can be cloned and built on a clean machine (untested but as long as a machine supports vagrant there shouldnt be any issue)