Skip to content

ashtonthomas/bento-wiki-spider

Repository files navigation

How many hops to Philosophy

https://bento-wiki-spider.herokuapp.com

Self Evaluation

The Good

  • 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)

The Bad

  • 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

This Repo

Done

  • 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)

Not Done

  • 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

This is the start of the java hack project.

  • 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...)

Technologies to tinker with:

  • 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?

References:

Running Deploying

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

For Angular Development

Just run gulp and then open: http://localhost:4567

When a dev server hangs on the port

kill -kill `lsof -t -i tcp:4567`