https://bento-wiki-spider.herokuapp.com
- Well, it "works"
- Used Spark framework for the first time
- Deployment on Heroku via Maven
- Gulp + optimizations setup (see Bendystraw)
- Using Angular 1.5 front-end (not following all of my guidelines but it is something to look at..)
- I'm using Belly's style framework (Makes it a little prettier and shows just another integration)
- Not fully complete - there are some criteria not met
- Logic: Edge cases are probably not handled completely
- Code organization could be improved
- Data persistence is not leveraged outside of the session
- Checks for infinite loops could be handled more appropriately
- No checks for known nodes/paths (potential performance optimization)
- No tests
- The angular code can be found in /source
- The angular project uses brousalis/bendystraw a collection of gulp tasks, configurations
- The styling leverages bellycard/rolodex which is a sass library using functional css
gulp build
will compile front-end resources to/public
- The backend spark files can be found in src/main/java/sparq
- The meat of the logic is in util/PathTracer
- Node, NPM, Bower, Gulp
- brousalis/bendystraw integration (deployment optimizations and more)
- bellycard/rolodex integration
- Base Angular setup with ui-router
- Angular communication with Spark backend
- Spark Setup
- Heroku deployment
- Use session for temp storage (sorry)
- Trace wiki route
- Display hops in angular app
- Configure heroku plugin to include static files (remove target from git repo)
- Use heroku maven plugin to deploy (remove public and target folders from repo)
- Hibernate connection with Derby (failed here: #1)
- Need a better way to develop locally and be able to edit angular code and java code without rebuilding
- Find a way to build on deploy and not commit compiled resources on every change (this is so annoying)
- Show loading while parsing / or show progress (but that will take more changes)
- Configure maven to run gulp build
- Full-stack java-based app
- Web view that accepts a wikipedia url (starting point)
- recursively retrieve the first lowercase link in the main text until the Philosophy page is reached
- persist and present the path taken (include datastore)
- handle edge cases or special scenarios
- display sufficient design and organization of application
- will be mostly new technologies and I get to use an IDE again (not even sure what is on my personal computer...)
- Spark
- Hibernate (nvm)
- Angular (1.5)
- MySQL (maybe use an in memory data store or filestore) - maybe Postgres if I'm deploying to Heroku
- Deploy to Heroku?
- https://github.com/rayokota/generator-angular-spark
- https://sparktutorials.github.io/2016/06/26/ajax-without-writing-javascript.html
- https://blog.openshift.com/developing-single-page-web-applications-using-java-8-spark-mongodb-and-angularjs/
- https://sparktutorials.github.io/2015/08/24/spark-heroku.html
- https://devcenter.heroku.com/articles/connecting-to-relational-databases-on-heroku-with-java
- http://ramonaharrison.github.io/accesscode/java/http/wikipedia/2015/03/27/wikipedia-philosophy/
- https://github.com/ramonaharrison/wikipedia-philosophy
brew // all the things (node, npm)
npm install -g bower
npm install --global gulp-cli
npm install
bower install
gulp build
mvn heroku:deploy
heroku open
// and when things catch fire
heroku logs --tail -a bento-wiki-spider
Or if you really need to get your hands dirty
heroku run bash -a bento-wiki-spider
Just run gulp
and then open: http://localhost:4567
kill -kill `lsof -t -i tcp:4567`