The big task for this sprint was to sort out everything I needed for my mid-project demonstration. I ended up setting up both continuous integration and cloud deployment too, it made my demonstration a little nicer.
Next sprint will most likely end up being a code review and refactor, then I should be done with the server-side of my project (excluding the accursed pathfinding). We'll have to see how much I can get through.
This presentation was for my dissertation's second marker, they had no idea what my project was about and I was being assessed on the technical work at this point in the project. Therefore the main points I covered in my slides were:
- What are the aims and objectives of my project?
- How does my project aim to accomplish these?
- What does the application do?
- Project architecture
- Code walkthrough and demonstration
After covering all of this in reasonable details I had written 6 slides in total (including a few of title pages) and made a nice diagram.
The diagram shows how the
/location route works and the speaker notes for this in-particular explain why the server is used as an intermediary for the FourSquare API instead of calling it straight from the client.
Cloud deployment & continuous integration
The technical work for this sprint was pretty small, I spent my time trying to keep my presentation down to 10 minutes with all my talk which left 5 minutes for questions. It was difficult but I managed it..
Heroku cloud deployment
So I published my server to Heroku using a remote git branch, whenever I pushed to this branch it would update the server running on Heroku.
One issue I had with publishing to Heroku was setting up my server's port. Heroku sets a port for each dyno (virtual machine) when it's created, in my code I was explicitly setting the port. Thankfully it was a relatively easy fix after a little bit of Googling, I had to use the environment port! My port definition ended up being:
const port = process.env.PORT || 3000;
Where the process environment had defined a port for me to use, I would use that. Otherwise good old port 3000 had me covered.
Travis continuous integration
After adding this to my test set in the
package.json of my project, I ran the test command to see if I had any errors and proceeded to fix them (I might have missed a few semi-colons)!
Hooking up Github, Travis and Heroku
This bit took a while, lots of fiddly config. issues were had. But after setting up the options needed by both Travis and Heroku all was done. Now whenever I push to the master branch of my Github repo it kicks of Travis and if the build is successful it deploys to Heroku.
Subscribe to The Man Cave
Get the latest posts delivered right to your inbox