The live site is available here: Accubus
This is the documentation for Team Busted. A basic guide on how to set up your development environment will be detailed below. We use two GitHub repositories, one for misclelenous code that's written for the project (i.e Formatting data, cleaning up data etc). Our second repository is of the main application itself. This is the actual codebase for the deployed application.
We use Git and GitHub to manage our source code.
We use a branching model for Git called GitFlow. We are not adhering to the complex nature of the original version, we have watered it down but we still mantain it's core idea. We have a development
branch and a master
branch. All contributors branch off the development branch and develop features on there. Before pushing their branch to be merged on the development branch, they should make sure to git pull
so as to get any recent changes on the development
that might have been added. Before pushing, the contributor should also make sure that all intergration tests are passing.
Once code has been pushed and a pull request made, other members of the team must review the code and leave a "thumbs up" emoticon if they're happy with the code otherwise leave comments outlining what could be improved (etc).
Feature branches are merged after they've gone through a code review. Each feature branch must at least get 2 thumbs ups(contributor approvals) before being merged.
Code on the development
branch is merged into the master
branch at the end of the sprint.
- Contributors should not merge their own branches
We take a test driven approach in developing our project. We write failing tests first then the code to make them pass. After the tests pass, time should be spent on refactoring the code.
For Python we follow the PEP8 styleguide. This styleguide gives details pertaining to issues such as variable naming, code folding e.t.c Details can be found here
For JavaScript we follow Google's style guide. Details can be found here
Appear For days that we can't come into college
GoogleDocs General documentation, meeting minutes, retrospective,
Jira Project management, Kanban, Burndown Chart, Task management
Slack Instant messaging
Travis Continuous Integration and testing builds
Git and Github Source code management, version control
Branch names are prefixed by the collaborator's initials. Names should be descriptive. (see examples below)
nn_create_mongodb_database
co_make_app_footer
gh_display_station_graph
tl_render_time_json
e.t.c
$ ssh root@178.62.29.173
- note that password log in is disabled. You need the private key to gain access.
From inside the mongo shell you need to run the following to index the gps locations
$ mongo
> use accubusDB
> db.stops.createIndex( { location: "2dsphere" } )
$ /srv/AppEnv/appdata
$ /srv/AppEnv/
$ sudo systemctl start mongodb
$ sudo systemctl stop mongodb
The following must be executed if any changes are made to the app.
$ systemctl start emperor.uwsgi
$ systemctl stop emperor.uwsgi
$ /srv/AppEnv/uwsgi.log