|
|
@@ -0,0 +1,243 @@
|
|
|
+Django Hackathon Starter
|
|
|
+------------------------
|
|
|
+
|
|
|
+## What is Django Hackathon Starter
|
|
|
+
|
|
|
+> Django Hackathon Starter aims to be a project which will aggegrate data from several APIs, producing a RESTful API which can be consumed by a client (also intended to be built).
|
|
|
+
|
|
|
+Our deployment can be found [here](http://django-hackathon-starter.herokuapp.com/hackathon/).
|
|
|
+
|
|
|
+## Running this project
|
|
|
+
|
|
|
+In order to run this project, do the following:
|
|
|
+
|
|
|
+ # Install the requirements
|
|
|
+ pip install -r requirements.txt
|
|
|
+
|
|
|
+ # Perform database migrations
|
|
|
+ python manage.py migrate
|
|
|
+
|
|
|
+ # Run the server
|
|
|
+ python manage.py runserver
|
|
|
+
|
|
|
+## Front End dependencies
|
|
|
+
|
|
|
+This project relies on Bower for all front end libraries, to avoid pushing up large libraries such as `jQuery` and `Bootstrap`. To install `bower`, you will need to install `npm`, which now comes bundled with `node.js`. To install `npm`, simply install [node as follows](https://github.com/joyent/node/wiki/installing-node.js-via-package-manager).
|
|
|
+
|
|
|
+First, install `bower`:
|
|
|
+
|
|
|
+ npm install -g bower
|
|
|
+
|
|
|
+Then:
|
|
|
+
|
|
|
+ bower install
|
|
|
+
|
|
|
+This will download and extract all the packages listed within `bower.json`. **Under no circumstance should any front-end libraries manually be pushed up to the repository.**
|
|
|
+
|
|
|
+Two routes have currently been set up, which are located at:
|
|
|
+
|
|
|
+ # First test route
|
|
|
+ http://127.0.0.1:8000/hackathon/
|
|
|
+
|
|
|
+ # Second test route
|
|
|
+ http://127.0.0.1:8000/hackathon/test
|
|
|
+
|
|
|
+
|
|
|
+## Testing
|
|
|
+
|
|
|
+This project aims to be as close to 100% tested as possible. For a good guide to testing using Python and `Mock`, `Nosetests` and `Unittests` libraries, please [read here](http://docs.python-guide.org/en/latest/writing/tests/).
|
|
|
+
|
|
|
+To run the tests:
|
|
|
+
|
|
|
+ hackthon-starter $ nosetests --with-coverage --cover-package=hackathon/
|
|
|
+
|
|
|
+You will see an output as shown below:
|
|
|
+
|
|
|
+ Name Stmts Miss Cover Missing
|
|
|
+ --------------------------------------------------------------------
|
|
|
+ hackathon/__init__.py 0 0 100%
|
|
|
+ hackathon/admin.py 3 3 0% 1-5
|
|
|
+ hackathon/forms.py 9 9 0% 1-11
|
|
|
+ hackathon/migrations/0001_initial.py 6 6 0% 2-14
|
|
|
+ hackathon/migrations/__init__.py 0 0 100%
|
|
|
+ hackathon/models.py 6 6 0% 1-11
|
|
|
+ hackathon/scripts/__init__.py 0 0 100%
|
|
|
+ hackathon/scripts/samplescript.py 5 5 0% 3-10
|
|
|
+ hackathon/scripts/steam.py 17 17 0% 1-24
|
|
|
+ hackathon/tests.py 1 0 100%
|
|
|
+ hackathon/urls.py 3 3 0% 1-5
|
|
|
+ hackathon/views.py 52 52 0% 1-120
|
|
|
+ --------------------------------------------------------------------
|
|
|
+ TOTAL 102 101 1%
|
|
|
+ ----------------------------------------------------------------------
|
|
|
+ Ran 0 tests in 0.194s
|
|
|
+
|
|
|
+## Code evaluation
|
|
|
+
|
|
|
+In order to write clean code with a consistent style guide, we'll be using `Pylint` to maintain our code. Pylint will display a ton of messages regarding things that should be fixed. A sample output from running `pylint views.py` is shown below:
|
|
|
+
|
|
|
+ (web)λ pylint views.py
|
|
|
+ No config file found, using default configuration
|
|
|
+ ************* Module hackathon.views
|
|
|
+ C: 7, 0: Trailing whitespace (trailing-whitespace)
|
|
|
+ W: 11, 0: Found indentation with tabs instead of spaces (mixed-indentation)
|
|
|
+ W: 12, 0: Found indentation with tabs instead of spaces (mixed-indentation)
|
|
|
+ W: 15, 0: Found indentation with tabs instead of spaces (mixed-indentation)
|
|
|
+ C: 59, 0: Wrong continued indentation.
|
|
|
+ 'hackathon/register.html',
|
|
|
+ ^ | (bad-continuation)
|
|
|
+ C: 60, 0: Wrong continued indentation.
|
|
|
+ {'user_form': user_form, 'registered': registered} )
|
|
|
+ ^ | (bad-continuation)
|
|
|
+ C: 60, 0: No space allowed before bracket
|
|
|
+ {'user_form': user_form, 'registered': registered} )
|
|
|
+ ^ (bad-whitespace)
|
|
|
+ C: 69, 0: Line too long (103/100) (line-too-long)
|
|
|
+ C:116, 0: Exactly one space required after comma
|
|
|
+ return render(request,'hackathon/steam.html', {"game": game })
|
|
|
+ ^ (bad-whitespace)
|
|
|
+ C:116, 0: No space allowed before bracket
|
|
|
+ return render(request,'hackathon/steam.html', {"game": game })
|
|
|
+ ^ (bad-whitespace)
|
|
|
+ C: 1, 0: Missing module docstring (missing-docstring)
|
|
|
+ W: 7, 0: Relative import 'scripts.steam', should be 'hackathon.scripts.steam' (relative-import)
|
|
|
+ C: 10, 0: Missing function docstring (missing-docstring)
|
|
|
+ C: 14, 0: Missing function docstring (missing-docstring)
|
|
|
+ W: 14, 9: Unused argument 'request' (unused-argument)
|
|
|
+ C: 17, 0: Missing function docstring (missing-docstring)
|
|
|
+ C: 21, 0: Missing function docstring (missing-docstring)
|
|
|
+ C: 62, 0: Missing function docstring (missing-docstring)
|
|
|
+ C:103, 0: Missing function docstring (missing-docstring)
|
|
|
+ C:110, 0: Missing function docstring (missing-docstring)
|
|
|
+ C:113, 4: Invalid variable name "SteamUN" (invalid-name)
|
|
|
+ C:114, 4: Invalid variable name "steamID" (invalid-name)
|
|
|
+ C:118, 0: Missing function docstring (missing-docstring)
|
|
|
+ W: 4, 0: Unused RequestContext imported from django.template (unused-import)
|
|
|
+ W: 4, 0: Unused loader imported from django.template (unused-import)
|
|
|
+
|
|
|
+
|
|
|
+ Report
|
|
|
+ ======
|
|
|
+ 53 statements analysed.
|
|
|
+
|
|
|
+ Statistics by type
|
|
|
+ ------------------
|
|
|
+
|
|
|
+ +---------+-------+-----------+-----------+------------+---------+
|
|
|
+ |type |number |old number |difference |%documented |%badname |
|
|
|
+ +=========+=======+===========+===========+============+=========+
|
|
|
+ |module |1 |NC |NC |0.00 |0.00 |
|
|
|
+ +---------+-------+-----------+-----------+------------+---------+
|
|
|
+ |class |0 |NC |NC |0 |0 |
|
|
|
+ +---------+-------+-----------+-----------+------------+---------+
|
|
|
+ |method |0 |NC |NC |0 |0 |
|
|
|
+ +---------+-------+-----------+-----------+------------+---------+
|
|
|
+ |function |8 |NC |NC |0.00 |0.00 |
|
|
|
+ +---------+-------+-----------+-----------+------------+---------+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ External dependencies
|
|
|
+ ---------------------
|
|
|
+ ::
|
|
|
+
|
|
|
+ django
|
|
|
+ \-contrib
|
|
|
+ | \-auth (hackathon.views)
|
|
|
+ \-http (hackathon.views)
|
|
|
+ \-shortcuts (hackathon.views)
|
|
|
+ \-template (hackathon.views)
|
|
|
+ \-loader (hackathon.views)
|
|
|
+ hackathon
|
|
|
+ \-forms (hackathon.views)
|
|
|
+ \-scripts
|
|
|
+ \-steam (hackathon.views)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Raw metrics
|
|
|
+ -----------
|
|
|
+
|
|
|
+ +----------+-------+------+---------+-----------+
|
|
|
+ |type |number |% |previous |difference |
|
|
|
+ +==========+=======+======+=========+===========+
|
|
|
+ |code |59 |59.00 |NC |NC |
|
|
|
+ +----------+-------+------+---------+-----------+
|
|
|
+ |docstring |1 |1.00 |NC |NC |
|
|
|
+ +----------+-------+------+---------+-----------+
|
|
|
+ |comment |29 |29.00 |NC |NC |
|
|
|
+ +----------+-------+------+---------+-----------+
|
|
|
+ |empty |11 |11.00 |NC |NC |
|
|
|
+ +----------+-------+------+---------+-----------+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Duplication
|
|
|
+ -----------
|
|
|
+
|
|
|
+ +-------------------------+------+---------+-----------+
|
|
|
+ | |now |previous |difference |
|
|
|
+ +=========================+======+=========+===========+
|
|
|
+ |nb duplicated lines |0 |NC |NC |
|
|
|
+ +-------------------------+------+---------+-----------+
|
|
|
+ |percent duplicated lines |0.000 |NC |NC |
|
|
|
+ +-------------------------+------+---------+-----------+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Messages by category
|
|
|
+ --------------------
|
|
|
+
|
|
|
+ +-----------+-------+---------+-----------+
|
|
|
+ |type |number |previous |difference |
|
|
|
+ +===========+=======+=========+===========+
|
|
|
+ |convention |18 |NC |NC |
|
|
|
+ +-----------+-------+---------+-----------+
|
|
|
+ |refactor |0 |NC |NC |
|
|
|
+ +-----------+-------+---------+-----------+
|
|
|
+ |warning |7 |NC |NC |
|
|
|
+ +-----------+-------+---------+-----------+
|
|
|
+ |error |0 |NC |NC |
|
|
|
+ +-----------+-------+---------+-----------+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Messages
|
|
|
+ --------
|
|
|
+
|
|
|
+ +--------------------+------------+
|
|
|
+ |message id |occurrences |
|
|
|
+ +====================+============+
|
|
|
+ |missing-docstring |9 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |mixed-indentation |3 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |bad-whitespace |3 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |unused-import |2 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |invalid-name |2 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |bad-continuation |2 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |unused-argument |1 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |trailing-whitespace |1 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |relative-import |1 |
|
|
|
+ +--------------------+------------+
|
|
|
+ |line-too-long |1 |
|
|
|
+ +--------------------+------------+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Global evaluation
|
|
|
+ -----------------
|
|
|
+ Your code has been rated at 5.28/10
|
|
|
+
|
|
|
+## Contributors
|
|
|
+
|
|
|
+* David Leonard
|
|
|
+* Eswari Swarna
|
|
|
+* Marco Quezada
|
|
|
+* Wan Kim Mok
|