From 41b0da723cc8cebd28d678ab140c226cb8113bbb Mon Sep 17 00:00:00 2001
From: kinitrupti
Date: Thu, 31 Mar 2016 17:21:26 +0530
Subject: modified-funcnames-frontpg

---
 PythonTBC/settings.py                            |   2 +
 base.html                                        | 428 +++++++++++++++++++++++
 tbc/certificate/tbc_certificate.tex              |   6 +
 tbc/forms.py                                     |   2 +-
 tbc/models.py                                    |   3 +-
 tbc/static/css/base.css                          |   0
 tbc/static/css/responsive.css                    |   0
 tbc/static/js/.jshintrc                          |   0
 tbc/static/js/bootstrap-affix.js                 |   0
 tbc/static/js/bootstrap-alert.js                 |   0
 tbc/static/js/bootstrap-button.js                |   0
 tbc/static/js/bootstrap-carousel.js              |   0
 tbc/static/js/bootstrap-collapse.js              |   0
 tbc/static/js/bootstrap-dropdown.js              |   0
 tbc/static/js/bootstrap-modal.js                 |   0
 tbc/static/js/bootstrap-popover.js               |   0
 tbc/static/js/bootstrap-scrollspy.js             |   0
 tbc/static/js/bootstrap-tab.js                   |   0
 tbc/static/js/bootstrap-tooltip.js               |   0
 tbc/static/js/bootstrap-transition.js            |   0
 tbc/static/js/bootstrap-typeahead.js             |   0
 tbc/static/js/jquery.js                          |   0
 tbc/static/js/tests/index.html                   |   0
 tbc/static/js/tests/phantom.js                   |   0
 tbc/static/js/tests/server.js                    |   0
 tbc/static/js/tests/unit/bootstrap-affix.js      |   0
 tbc/static/js/tests/unit/bootstrap-alert.js      |   0
 tbc/static/js/tests/unit/bootstrap-button.js     |   0
 tbc/static/js/tests/unit/bootstrap-carousel.js   |   0
 tbc/static/js/tests/unit/bootstrap-collapse.js   |   0
 tbc/static/js/tests/unit/bootstrap-dropdown.js   |   0
 tbc/static/js/tests/unit/bootstrap-modal.js      |   0
 tbc/static/js/tests/unit/bootstrap-phantom.js    |   0
 tbc/static/js/tests/unit/bootstrap-popover.js    |   0
 tbc/static/js/tests/unit/bootstrap-scrollspy.js  |   0
 tbc/static/js/tests/unit/bootstrap-tab.js        |   0
 tbc/static/js/tests/unit/bootstrap-tooltip.js    |   0
 tbc/static/js/tests/unit/bootstrap-transition.js |   0
 tbc/static/js/tests/unit/bootstrap-typeahead.js  |   0
 tbc/static/js/tests/vendor/jquery.js             |   0
 tbc/static/js/tests/vendor/qunit.css             |   0
 tbc/static/js/tests/vendor/qunit.js              |   0
 tbc/static/templates/editors-picks.html          |  26 ++
 tbc/templates/base.html                          | 188 ++++++++--
 tbc/templates/tbc/aicte-books.html               |   4 +-
 tbc/templates/tbc/book-details.html              |  11 +-
 tbc/templates/tbc/book-review-details.html       |   4 +-
 tbc/templates/tbc/book-review.html               |   4 +-
 tbc/templates/tbc/books_under_progress.html      |   2 +-
 tbc/templates/tbc/browse-books.html              |   4 +-
 tbc/templates/tbc/completed_books.html           |   2 +-
 tbc/templates/tbc/get-certificate.html           |   2 +-
 tbc/templates/tbc/link_image.html                |   2 +-
 tbc/templates/tbc/login.html                     |   4 +-
 tbc/templates/tbc/review-proposal.html           |  12 +-
 tbc/urls.py                                      |  91 ++---
 tbc/views.py                                     |  98 +++---
 57 files changed, 742 insertions(+), 153 deletions(-)
 create mode 100755 base.html
 create mode 100644 tbc/certificate/tbc_certificate.tex
 mode change 100755 => 100644 tbc/static/css/base.css
 mode change 100755 => 100644 tbc/static/css/responsive.css
 mode change 100755 => 100644 tbc/static/js/.jshintrc
 mode change 100755 => 100644 tbc/static/js/bootstrap-affix.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-alert.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-button.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-carousel.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-collapse.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-dropdown.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-modal.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-popover.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-scrollspy.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-tab.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-tooltip.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-transition.js
 mode change 100755 => 100644 tbc/static/js/bootstrap-typeahead.js
 mode change 100755 => 100644 tbc/static/js/jquery.js
 mode change 100755 => 100644 tbc/static/js/tests/index.html
 mode change 100755 => 100644 tbc/static/js/tests/phantom.js
 mode change 100755 => 100644 tbc/static/js/tests/server.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-affix.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-alert.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-button.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-carousel.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-collapse.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-dropdown.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-modal.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-phantom.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-popover.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-scrollspy.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-tab.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-tooltip.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-transition.js
 mode change 100755 => 100644 tbc/static/js/tests/unit/bootstrap-typeahead.js
 mode change 100755 => 100644 tbc/static/js/tests/vendor/jquery.js
 mode change 100755 => 100644 tbc/static/js/tests/vendor/qunit.css
 mode change 100755 => 100644 tbc/static/js/tests/vendor/qunit.js
 create mode 100644 tbc/static/templates/editors-picks.html
 mode change 100755 => 100644 tbc/templates/base.html
 mode change 100755 => 100644 tbc/templates/tbc/login.html
 mode change 100755 => 100644 tbc/views.py

diff --git a/PythonTBC/settings.py b/PythonTBC/settings.py
index 4d99488..28eda1d 100644
--- a/PythonTBC/settings.py
+++ b/PythonTBC/settings.py
@@ -141,6 +141,8 @@ INSTALLED_APPS = (
     'south',
     'commentingapp',
     'tbc_error_page',
+    'taggit',
+    'taggit_templatetags2',
 )
 
 
diff --git a/base.html b/base.html
new file mode 100755
index 0000000..e47cbf6
--- /dev/null
+++ b/base.html
@@ -0,0 +1,428 @@
+{% load static %}
+{% load taggit_templatetags2_tags %}
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+        <title>
+       {% block title %}
+       Python Textbook Companion Project | FOSSEE, IIT Bombay
+       {% endblock %}
+     </title>
+   {% block meta %}
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="">
+   {% endblock %}
+   
+   <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css" /> 
+   <link rel ="stylesheet" href="{% static 'css/responsive.css' %}" type="text/css"/>
+<style>
+.showonhover .hovertext { display: none;}
+.showonhover:hover .hovertext {display: inline;}
+a.viewdescription {color:#999;}
+a.viewdescription:hover {background-color:#999; color: White;}
+.hovertext {position:absolute;z-index:1000;border:1px solid #ffd971;background-color:#fffdce;padding:11px;width:250px;font-size: 0.75em;}
+</style>    
+<style>
+        .module-list {
+            float: left;
+            height: 220px;
+            margin-top: 20px;
+            margin-bottom: 20px;
+            margin-left: 50px;
+            padding: 10px;
+            padding-bottom: 25px;
+            position: relative;
+            width: 300px;
+            background: #2c3e50;
+        }
+        .module-list img {
+            height: 220px;
+        }
+        .module-list img:hover{
+            height: 220px;
+            border-radius: 15px;
+        }
+
+        .module-list a{
+            color: #ffffff;
+        }
+       .navbar .container {
+            max-width: 1100px;
+        }
+        #content-wrap{
+            max-width: 1100px;
+            margin: 0 auto;
+        }
+        input[type="text"] {
+            width: 100%;
+        }
+        input[type="password"] {
+            width: 100%;
+        }
+        .gsc-search-button,
+        .gsc-clear-button {
+            position: relative;
+            top: -2px;
+        }
+       .badge-custom {
+            padding: 1.5px 7px 1.5px;
+            font-size: 12.025px;
+            font-weight: bold;
+            white-space: nowrap;
+            color: #ffffff;
+            background-color: #f89406;
+            -webkit-border-radius: 9px;
+            -moz-border-radius: 9px;
+            border-radius: 15px;
+        }
+
+        .tooltip-inner {
+            background-color: #1ABC9C;
+            width: 150px;
+        }
+
+        .tooltip.bottom .tooltip-arrow {
+            border-bottom: 5px solid #1ABC9C;
+        }
+    </style>
+<style>
+      
+span.question {
+  cursor: pointer;
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  background-color: #89A4CC;
+  line-height: 16px;
+  color: White;
+  font-size: 13px;
+  font-weight: bold;
+  border-radius: 8px;
+  text-align: center;
+  position: relative;
+}
+span.question:hover { background-color: #3D6199; }
+
+    </style>
+   {% block css %}
+    <style type="text/css">
+      body {
+        padding-top: 60px;
+        padding-bottom: 40px;
+      }
+    </style>
+   {% endblock %}
+   </head>
+
+<body>
+<div class="navbar navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="brand" href="/">Python Textbook Companion <sup><span style="font-size:12px; color: white;">beta</span></sup></a>
+          <div class="nav-collapse collapse">
+
+            <ul class="nav pull-right">
+              <li class="dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="{% url 'tbc:AboutPytbc' %}">TBC Coding Guidelines</a></li>
+                  <li><a href="http://fossee.in" target="_blank">FOSSEE</a></li>
+                  <li><a href="http://python.fossee.in" target="_blank">Python Team</a></li>
+                </ul>
+              </li>
+	            <li class="dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Textbooks<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="{% url 'tbc:CompletedBooks' %}">Completed Books</a></li>
+                  <li><a href="{% url 'tbc:BooksUnderProgress' %}">Books Under Progress</a></li>
+                </ul>
+              </li>
+              <li><a href="{% url 'tbc:InternshipForms' %}">Internship Forms</a></li>
+
+            {% if user %}
+                {% if proposal_position %}
+                     <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ user.first_name }}<span class="badge-custom" rel="tooltip" title="Pending Proposal Position: {{ proposal_position }}" data-placement="bottom" style="margin-left:5px; margin-right:5px; display: inline-block">{{ proposal_position }}</span>
+                        <b class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                          <li><a href="{% url 'tbc:SubmitBook' %}">Submit Book (OLD)</a></li>
+                          <li><a href="{% url 'tbc:ListAICTE' %}">Submit Proposal</a></li>
+                          <li><a href="{% url 'tbc:SubmitSample' %}">Submit Sample Notebook</a></li>
+                          <li><a href="{% url 'tbc:ConfirmBookDetails' %}">Submit Codes</a></li>
+                          <li><a href="{% url 'tbc:GetCertificate' %}">Get Certificate</a></li>
+                          <li><a href="{% url 'tbc:UpdateProfile' %}">Update Profile</a></li>
+                          <li><a href="{% url 'tbc:UpdatePassword' %}">Update Password</a></li>
+                          <li><a href="{% url 'tbc:UserLogout' %}">Logout</a></li>
+                        </ul>
+                     </li>
+                {% else %}
+                     <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ user.first_name }}<b class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                          <li><a href="{% url 'tbc:SubmitBook' %}">Submit Book (OLD)</a></li>
+                          <li><a href="{% url 'tbc:ListAICTE' %}">Submit Proposal</a></li>
+                          <li><a href="{% url 'tbc:SubmitSample' %}">Submit Sample Notebook</a></li>
+                          <li><a href="{% url 'tbc:ConfirmBookDetails' %}">Submit Codes</a></li>
+                          <li><a href="{% url 'tbc:GetCertificate' %}">Get Certificate</a></li>
+                          <li><a href="{% url 'tbc:UpdateProfile' %}">Update Profile</a></li>
+                          <li><a href="{% url 'tbc:UpdatePassword' %}">Update Password</a></li>
+                          <li><a href="{% url 'tbc:UserLogout' %}">Logout</a></li>
+                        </ul>
+                     </li>
+                {% endif %}
+            {% endif %}
+
+            {% if reviewer %}
+                 <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ reviewer.first_name }} {{ reviewer.last_name }} <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                      <li><a href="{% url 'tbc:BookReview' %}">Review Books</a></li>
+                      <li><a href="{% url 'tbc:ReviewProposals' %}">Review Proposals</a></li>
+                      <li><a href="{% url 'tbc:UserLogout' %}">Logout</a></li>
+                    </ul>
+                 </li>
+            {% endif %}
+
+            {% if anonymous %}
+                  <li><a href="{% url 'tbc:UserLogin' %}">Login</a></li>
+                  <li><a href="{% url 'tbc:UserRegister' %}">Sign Up</a></li>
+            {% endif %}
+
+            </ul> <!--/.nav  -->
+          </div><!--/.nav-collapse -->
+        </div>
+      </div>
+    </div>
+    <div class="container">
+	{% block content %}
+	{% if up %}
+        <center>
+            <div class="alert" style="width:500px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>Book has been uploaded successfully !</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if login %}
+        <center>
+            <div class="alert" style="width:150px;height:23px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>Login Successful !</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if logout %}
+        <center>
+            <div class="alert" style="width:300px;height:23px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>You have logged out successfully !</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if update_book %}
+        <center>
+            <div class="alert" style="width:300px;height:23px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>Book has been updated successfully !</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if not_found %}
+        <center>
+            <div class="alert" style="width:650px;height:23px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>It seems that currently there is no book that you can update ! Please submit one.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if proposal_submitted %}
+        <center>
+            <div class="alert" style="width:650px;height:40px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>Thank you for showing interest in contributing to Python TBC. <br>We have received your proposal. Please be patient we will get back to you within few days.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if proposal_pending %}
+        <center>
+            <div class="alert" style="width:650px;height:40px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>You either have a proposal pending or you are already working on a book. You cannot submit a proposal at this moment.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if book_pending %}
+        <center>
+            <div class="alert" style="width:650px;height:40px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>You either have a proposal pending or you are already working on a book. You cannot submit a proposal at this moment.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if no_book_alloted %}
+        <center>
+            <div class="alert" style="width:400px;height:25px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>There is no book alloted to you. You cannot submit codes.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if sample_notebook %}
+        <center>
+            <div class="alert" style="width:550px;height:40px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>Sample notebook has been submitted successfully. Please be patient while the reviewer reviews your codes & get backs to you.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if cannot_submit_sample %}
+        <center>
+            <div class="alert" style="width:400px;height:25px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>You have not been permitted to send sample notebook.</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    {% if bookupdate %}
+        <center>
+            <div class="alert" style="width:400px;height:25px;">
+                <a class="close" data-dismiss="alert" href="#">&times;</a>
+                <p>Thank You ! Codes have been updated successfully !</p>
+            </div>
+        </center>
+        <div class="clearfix"></div>
+    {% endif %}
+    
+<div class="row-fluid">
+ <h3 style='float: left;margin-left: 50px; display: inline-block;'>Editors' Picks</h3>
+<div style="float:right; margin-right: 50px; width: 400px;"><gcse:search></gcse:search>
+    </div>
+<td>
+
+    <span class="showonhover">
+     <span class="question">?</span>
+        <span class="hovertext">
+            Minimum or NO trivial examples<br>
+            Maximum usage of scientific libraries
+        </span>
+    </span>
+</td>
+      {% get_taglist as tags for 'tbc.book' %}
+ <div style="clear:both;"></div>
+      {% for item in items %}
+       {% if item.book.tags.all %}
+<div class ="module-list">
+                <a href="{% url 'tbc:BookDetails' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
+                <center><a href="{% url 'tbc:BookDetails' item.book.id %}">{{ item.book.title }}</a></center>
+            </div>
+      {% endif %}
+   {% endfor %}
+
+
+</div>
+
+
+
+    <div class="row-fluid">
+    <h3 style='float: left;margin-left: 50px; display: inline-block;'>Recent Submissions</h3>
+    <div style="float:right; margin-right: 50px; width: 400px;">
+        <script>
+          (function() {
+            var cx = '001620609421546248003:nyipppxclkw';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+          })();
+        </script>
+        
+    </div>
+    <div style="clear:both;"></div>
+        {% for item in items|slice:":3" %}
+            <div class ="module-list">
+                <a href="{% url 'tbc:BookDetails' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
+                <center><a href="{% url 'tbc:BookDetails' item.book.id %}">{{ item.book.title }}</a></center>
+            </div>
+        {% endfor %}
+    </div>
+    <br>
+    <center> 
+        <a  class="btn btn-primary" href="{% url 'tbc:BrowseBooks' %}">Browse All Books</a>
+    </center>
+    <br>
+    <!-- 
+        <input type=text> <input type=submit value=Search>
+    -->
+ 
+    
+    {% endblock %}
+      <hr>
+      
+      <footer>
+        <center><p>&copy; FOSSEE - IIT Bombay 2014</p></center>
+        <center><img src="{% static 'images/fossee.png' %}" width=100 height=70><br><br>
+        <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</center>
+      </footer>
+
+    </div> <!-- /container -->
+    
+    <script src="{% static 'js/jquery.js' %}"></script>
+    <script src="{% static 'js/bootstrap.min.js' %}"></script>
+    {% block script %}
+    {% endblock %}
+
+    <!-- google analytics -->
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-10406287-2', 'fossee.in');
+      ga('send', 'pageview');
+    </script>
+    <!-- / google analytics -->
+    <!-- Piwik -->
+<script type="text/javascript">
+  var _paq = _paq || [];
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://analytics.spoken-tutorial.org/";
+    _paq.push(['setTrackerUrl', u+'piwik.php']);
+    _paq.push(['setSiteId', 15]);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
+    g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<script type="text/javascript">
+  $(document).ready(function(){
+    $("[rel=tooltip]").tooltip();
+  });
+</script>
+<noscript><p><img src="http://analytics.spoken-tutorial.org/piwik.php?idsite=15" style="border:0;" alt="" /></p></noscript>
+<!-- End Piwik Code -->
+
+</body>
+</html>
diff --git a/tbc/certificate/tbc_certificate.tex b/tbc/certificate/tbc_certificate.tex
new file mode 100644
index 0000000..06def58
--- /dev/null
+++ b/tbc/certificate/tbc_certificate.tex
@@ -0,0 +1,6 @@
+Certificate template for Python Textbook Companion
+Write your own template and use $variable name to substitute that variable
+with the data you want.
+Example use   in the template and then using Template class of the string
+module you can substitute the   with a name you want.
+Note: The template should result in a tex file.
diff --git a/tbc/forms.py b/tbc/forms.py
index 327c32a..f1a1328 100644
--- a/tbc/forms.py
+++ b/tbc/forms.py
@@ -62,7 +62,7 @@ class BookForm(forms.ModelForm):
         self.fields['no_chapters'].label = "Number of Chapters"
     class Meta:
         model = Book
-        exclude = ('contributor', 'approved', 'reviewer')
+        exclude = ('contributor', 'approved', 'reviewer', 'tags')
         widgets = {
         'title':forms.TextInput(attrs={'placeholder':'Title of the Book'}),
         'author':forms.TextInput(attrs={'placeholder':'Author of the Book'}),
diff --git a/tbc/models.py b/tbc/models.py
index 4032125..44571ba 100644
--- a/tbc/models.py
+++ b/tbc/models.py
@@ -3,7 +3,7 @@ from django.contrib.auth.models import User
 from PythonTBC import settings
 from django.contrib.admin.models import LogEntry
 from local import sitemap_path
-
+from taggit.managers import TaggableManager
 
 CATEGORY = (("fluid mechanics", "Fluid Mechanics"),
             ("control systems", "Control Theory & Control Systems"),
@@ -104,6 +104,7 @@ class Book(models.Model):
     contributor = models.ForeignKey(Profile)
     reviewer = models.ForeignKey(Reviewer)
     approved = models.BooleanField(default=False)
+    tags = TaggableManager()
     def __unicode__(self):
         name = self.title or 'Book'
         return '%s'%(name)
diff --git a/tbc/static/css/base.css b/tbc/static/css/base.css
old mode 100755
new mode 100644
diff --git a/tbc/static/css/responsive.css b/tbc/static/css/responsive.css
old mode 100755
new mode 100644
diff --git a/tbc/static/js/.jshintrc b/tbc/static/js/.jshintrc
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-affix.js b/tbc/static/js/bootstrap-affix.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-alert.js b/tbc/static/js/bootstrap-alert.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-button.js b/tbc/static/js/bootstrap-button.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-carousel.js b/tbc/static/js/bootstrap-carousel.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-collapse.js b/tbc/static/js/bootstrap-collapse.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-dropdown.js b/tbc/static/js/bootstrap-dropdown.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-modal.js b/tbc/static/js/bootstrap-modal.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-popover.js b/tbc/static/js/bootstrap-popover.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-scrollspy.js b/tbc/static/js/bootstrap-scrollspy.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-tab.js b/tbc/static/js/bootstrap-tab.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-tooltip.js b/tbc/static/js/bootstrap-tooltip.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-transition.js b/tbc/static/js/bootstrap-transition.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/bootstrap-typeahead.js b/tbc/static/js/bootstrap-typeahead.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/jquery.js b/tbc/static/js/jquery.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/index.html b/tbc/static/js/tests/index.html
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/phantom.js b/tbc/static/js/tests/phantom.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/server.js b/tbc/static/js/tests/server.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-affix.js b/tbc/static/js/tests/unit/bootstrap-affix.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-alert.js b/tbc/static/js/tests/unit/bootstrap-alert.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-button.js b/tbc/static/js/tests/unit/bootstrap-button.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-carousel.js b/tbc/static/js/tests/unit/bootstrap-carousel.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-collapse.js b/tbc/static/js/tests/unit/bootstrap-collapse.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-dropdown.js b/tbc/static/js/tests/unit/bootstrap-dropdown.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-modal.js b/tbc/static/js/tests/unit/bootstrap-modal.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-phantom.js b/tbc/static/js/tests/unit/bootstrap-phantom.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-popover.js b/tbc/static/js/tests/unit/bootstrap-popover.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-scrollspy.js b/tbc/static/js/tests/unit/bootstrap-scrollspy.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-tab.js b/tbc/static/js/tests/unit/bootstrap-tab.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-tooltip.js b/tbc/static/js/tests/unit/bootstrap-tooltip.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-transition.js b/tbc/static/js/tests/unit/bootstrap-transition.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/unit/bootstrap-typeahead.js b/tbc/static/js/tests/unit/bootstrap-typeahead.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/vendor/jquery.js b/tbc/static/js/tests/vendor/jquery.js
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/vendor/qunit.css b/tbc/static/js/tests/vendor/qunit.css
old mode 100755
new mode 100644
diff --git a/tbc/static/js/tests/vendor/qunit.js b/tbc/static/js/tests/vendor/qunit.js
old mode 100755
new mode 100644
diff --git a/tbc/static/templates/editors-picks.html b/tbc/static/templates/editors-picks.html
new file mode 100644
index 0000000..1406cf2
--- /dev/null
+++ b/tbc/static/templates/editors-picks.html
@@ -0,0 +1,26 @@
+<h4>Editors' Picks</h4>
+<p>
+    <ul>
+        <p>
+            <li>
+               
+                <b> </b>Books with minimum or NO trivial examples
+                
+            </li> 
+<li>
+               
+                <b> </b>Books with maximum usage of scientific libraries like Sympy
+               
+            </li> 
+<li>
+               
+                <b> </b>Books with maximum usage of scientific libraries like Sympy
+               
+            </li> 
+<li>
+               
+                <b> </b>Books with maximum functions and classes
+               
+            </li> 
+        </p>
+       
diff --git a/tbc/templates/base.html b/tbc/templates/base.html
old mode 100755
new mode 100644
index 40812eb..3cece1c
--- a/tbc/templates/base.html
+++ b/tbc/templates/base.html
@@ -1,4 +1,5 @@
 {% load static %}
+{% load taggit_templatetags2_tags %}
 <!DOCTYPE html>
 <html lang="en">
   <head>
@@ -16,7 +17,14 @@
    
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css" /> 
    <link rel ="stylesheet" href="{% static 'css/responsive.css' %}" type="text/css"/>
-    <style>
+<style>
+.showonhover .hovertext { display: none;}
+.showonhover:hover .hovertext {display: inline;}
+a.viewdescription {color:#999;}
+a.viewdescription:hover {background-color:#999; color: White;}
+.hovertext {position:absolute;z-index:1000;border:1px solid #ffd971;background-color:#fffdce;padding:11px;width:250px;font-size: 0.75em;}
+</style>    
+<style>
         .module-list {
             float: left;
             height: 220px;
@@ -56,7 +64,7 @@
         .gsc-search-button,
         .gsc-clear-button {
             position: relative;
-            top: -2px;
+            top: 2px;
         }
        .badge-custom {
             padding: 1.5px 7px 1.5px;
@@ -79,7 +87,25 @@
             border-bottom: 5px solid #1ABC9C;
         }
     </style>
+<style>
+      
+span.question {
+  cursor: pointer;
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  background-color: #89A4CC;
+  line-height: 16px;
+  color: White;
+  font-size: 13px;
+  font-weight: bold;
+  border-radius: 8px;
+  text-align: center;
+  position: relative;
+}
+span.question:hover { background-color: #3D6199; }
 
+    </style>
    {% block css %}
     <style type="text/css">
       body {
@@ -106,7 +132,7 @@
               <li class="dropdown">
                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
                 <ul class="dropdown-menu">
-                  <li><a href="{% url 'tbc:AboutPytbc' %}">TBC Coding Guidelines</a></li>
+                  
                   <li><a href="http://fossee.in" target="_blank">FOSSEE</a></li>
                   <li><a href="http://python.fossee.in" target="_blank">Python Team</a></li>
                 </ul>
@@ -114,11 +140,11 @@
 	            <li class="dropdown">
                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Textbooks<b class="caret"></b></a>
                 <ul class="dropdown-menu">
-                  <li><a href="{% url 'tbc:CompletedBooks' %}">Completed Books</a></li>
-                  <li><a href="{% url 'tbc:BooksUnderProgress' %}">Books Under Progress</a></li>
+                  <li><a href="{% url 'tbc:completed_books' %}">Completed Books</a></li>
+                  <li><a href="{% url 'tbc:books_under_progress' %}">Books Under Progress</a></li>
                 </ul>
               </li>
-              <li><a href="{% url 'tbc:InternshipForms' %}">Internship Forms</a></li>
+              <li><a href="{% url 'tbc:internship_forms' %}">Internship Forms</a></li>
 
             {% if user %}
                 {% if proposal_position %}
@@ -126,28 +152,28 @@
                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ user.first_name }}<span class="badge-custom" rel="tooltip" title="Pending Proposal Position: {{ proposal_position }}" data-placement="bottom" style="margin-left:5px; margin-right:5px; display: inline-block">{{ proposal_position }}</span>
                         <b class="caret"></b></a>
                         <ul class="dropdown-menu">
-                          <li><a href="{% url 'tbc:SubmitBook' %}">Submit Book (OLD)</a></li>
-                          <li><a href="{% url 'tbc:ListAICTE' %}">Submit Proposal</a></li>
-                          <li><a href="{% url 'tbc:SubmitSample' %}">Submit Sample Notebook</a></li>
-                          <li><a href="{% url 'tbc:ConfirmBookDetails' %}">Submit Codes</a></li>
-                          <li><a href="{% url 'tbc:GetCertificate' %}">Get Certificate</a></li>
-                          <li><a href="{% url 'tbc:UpdateProfile' %}">Update Profile</a></li>
-                          <li><a href="{% url 'tbc:UpdatePassword' %}">Update Password</a></li>
-                          <li><a href="{% url 'tbc:UserLogout' %}">Logout</a></li>
+                          <li><a href="{% url 'tbc:submit_book' %}">Submit Book (OLD)</a></li>
+                          <li><a href="{% url 'tbc:list_aicte' %}">Submit Proposal</a></li>
+                          <li><a href="{% url 'tbc:submit_sample' %}">Submit Sample Notebook</a></li>
+                          <li><a href="{% url 'tbc:confirm_book_details' %}">Submit Codes</a></li>
+                          <li><a href="{% url 'tbc:get_certificate' %}">Get Certificate</a></li>
+                          <li><a href="{% url 'tbc:update_profile' %}">Update Profile</a></li>
+                          <li><a href="{% url 'tbc:update_password' %}">Update Password</a></li>
+                          <li><a href="{% url 'tbc:user_logout' %}">Logout</a></li>
                         </ul>
                      </li>
                 {% else %}
                      <li class="dropdown">
                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ user.first_name }}<b class="caret"></b></a>
                         <ul class="dropdown-menu">
-                          <li><a href="{% url 'tbc:SubmitBook' %}">Submit Book (OLD)</a></li>
-                          <li><a href="{% url 'tbc:ListAICTE' %}">Submit Proposal</a></li>
-                          <li><a href="{% url 'tbc:SubmitSample' %}">Submit Sample Notebook</a></li>
-                          <li><a href="{% url 'tbc:ConfirmBookDetails' %}">Submit Codes</a></li>
-                          <li><a href="{% url 'tbc:GetCertificate' %}">Get Certificate</a></li>
-                          <li><a href="{% url 'tbc:UpdateProfile' %}">Update Profile</a></li>
-                          <li><a href="{% url 'tbc:UpdatePassword' %}">Update Password</a></li>
-                          <li><a href="{% url 'tbc:UserLogout' %}">Logout</a></li>
+                          <li><a href="{% url 'tbc:submit_book' %}">Submit Book (OLD)</a></li>
+                          <li><a href="{% url 'tbc:list_aicte' %}">Submit Proposal</a></li>
+                          <li><a href="{% url 'tbc:submit_sample' %}">Submit Sample Notebook</a></li>
+                          <li><a href="{% url 'tbc:confirm_book_details' %}">Submit Codes</a></li>
+                          <li><a href="{% url 'tbc:get_certificate' %}">Get Certificate</a></li>
+                          <li><a href="{% url 'tbc:update_profile' %}">Update Profile</a></li>
+                          <li><a href="{% url 'tbc:update_password' %}">Update Password</a></li>
+                          <li><a href="{% url 'tbc:user_logout' %}">Logout</a></li>
                         </ul>
                      </li>
                 {% endif %}
@@ -157,18 +183,17 @@
                  <li class="dropdown">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ reviewer.first_name }} {{ reviewer.last_name }} <b class="caret"></b></a>
                     <ul class="dropdown-menu">
-                      <li><a href="{% url 'tbc:BookReview' %}">Review Books</a></li>
-                      <li><a href="{% url 'tbc:ReviewProposals' %}">Review Proposals</a></li>
+                      <li><a href="{% url 'tbc:book_review' %}">Review Books</a></li>
+                      <li><a href="{% url 'tbc:review_proposals' %}">Review Proposals</a></li>
                       <li><a href="{% url 'tbc:admin_tools' %}">Admin Tools </a></li>
-                      <li><a href="{% url 'tbc:UserLogout' %}">Logout</a></li>
-
+                      <li><a href="{% url 'tbc:user_logout' %}">Logout</a></li>
                     </ul>
                  </li>
             {% endif %}
 
             {% if anonymous %}
-                  <li><a href="{% url 'tbc:UserLogin' %}">Login</a></li>
-                  <li><a href="{% url 'tbc:UserRegister' %}">Sign Up</a></li>
+                  <li><a href="{% url 'tbc:user_login' %}">Login</a></li>
+                  <li><a href="{% url 'tbc:user_register' %}">Sign Up</a></li>
             {% endif %}
 
             </ul> <!--/.nav  -->
@@ -286,6 +311,101 @@
         </center>
         <div class="clearfix"></div>
     {% endif %}
+<div style="float:right; margin-right: 50px; width: 400px;"><gcse:search></gcse:search>
+    </div>
+    <script src="http://code.jquery.com/jquery-1.4.min.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function(){
+            
+            $("#objective").click(function(){
+            $('#details').load('{% static "templates/objectives.html" %}');
+            });
+
+        
+            $("#who").click(function(){
+            $('#details').load('{% static "templates/who.html" %}');
+            });
+
+            $("#how").click(function(){
+            $('#details').load('{% static "templates/how.html" %}');
+            });
+
+            $("#guidelines").click(function(){
+            $('#details').load('{% static "templates/guidelines.html" %}');
+            });
+
+            $("#goodies").click(function(){
+            $('#details').load('{% static "templates/goodie.html" %}');
+            });
+
+            $("#disclaimer").click(function(){
+            $('#details').load('{% static "templates/disclaimer.html" %}');
+            });
+
+            $("#faqs").click(function(){
+            $('#details').load('{% static "templates/faq.html" %}');
+            });
+
+            $("#contact").click(function(){
+            $('#details').load('{% static "templates/contactus.html" %}');
+            });
+        });
+    </script>
+
+
+    <div class="well span3" style="width:18%;margin-left:5px;margin-top:60px;">
+        <div class="nav nav-list">
+            <ul>
+                <li><a id="objective" href="#"><strong>Objective</strong></a></li>
+                <li><a id="who" href="#"><strong>Who can contribute ?</strong></a></li>
+                <li><a id="how" href="#"><strong>How to contribute ?</strong></a></li>
+                <li><a id="guidelines" href="#"><strong>Guidelines for Coding</strong></a></li>
+                <li><a id="goodies" href="#"><strong>Goodies</strong></a></li>
+                <li><a id="disclaimer" href="#"><strong>Disclaimer</strong></a></li>
+                <li><a id="faqs" href="#"><strong>FAQs</strong></a></li>
+                <li><a id="contact" href="#"><strong>Contact</strong></a></li>
+            </ul>
+        </div>
+    </div>
+    <div class="well span9" id="details" style="float:right;width:74%;margin-left:5px;min-height:150px;">
+        <p>The Textbook Companion activity aims to create a repository of reference material for Python by coding solved examples of standard engineering textbooks using Python. This activity intends to,</p>
+         <ul>
+             <li>Make individuals learn Python through a practical approach</li>
+             <li>Provide a huge database of Companions as a learning resource</li>
+             <li>To make it easy for users of such textbooks to start using Python.</li>
+             <li>To improve the documentation available for Python</li>
+        </ul>
+    </div>
+</div>
+
+<div class="row-fluid">
+ <h3 style='float: left;margin-left: 50px; display: inline-block;'>Editors' Picks</h3>
+
+<td>
+
+    <span class="showonhover">
+     <span class="question">?</span>
+        <span class="hovertext">
+            Books with maximum usage of scientific libraries
+        </span>
+    </span>
+</td>
+      {% get_taglist as tags for 'tbc.book' %}
+ <div style="clear:both;"></div>
+      {% for item in items %}
+       {% if item.book.tags.all %}
+<div class ="module-list">
+                <a href="{% url 'tbc:book_details' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
+                <center><a href="{% url 'tbc:book_details' item.book.id %}">{{ item.book.title }}</a></center>
+            </div>
+      {% endif %}
+   {% endfor %}
+
+
+</div>
+
+
+
     <div class="row-fluid">
     <h3 style='float: left;margin-left: 50px; display: inline-block;'>Recent Submissions</h3>
     <div style="float:right; margin-right: 50px; width: 400px;">
@@ -301,24 +421,26 @@
             s.parentNode.insertBefore(gcse, s);
           })();
         </script>
-        <gcse:search></gcse:search>
+        
     </div>
     <div style="clear:both;"></div>
-        {% for item in items %}
+        {% for item in items|slice:":3" %}
             <div class ="module-list">
-                <a href="{% url 'tbc:BookDetails' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
-                <center><a href="{% url 'tbc:BookDetails' item.book.id %}">{{ item.book.title }}</a></center>
+                <a href="{% url 'tbc:book_details' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
+                <center><a href="{% url 'tbc:book_details' item.book.id %}">{{ item.book.title }}</a></center>
             </div>
         {% endfor %}
     </div>
     <br>
     <center> 
-        <a  class="btn btn-primary" href="{% url 'tbc:BrowseBooks' %}">Browse All Books</a>
+        <a  class="btn btn-primary" href="{% url 'tbc:browse_books' %}">Browse All Books</a>
     </center>
     <br>
     <!-- 
         <input type=text> <input type=submit value=Search>
     -->
+ 
+    
     {% endblock %}
       <hr>
       
diff --git a/tbc/templates/tbc/aicte-books.html b/tbc/templates/tbc/aicte-books.html
index a15d686..eb68e2b 100644
--- a/tbc/templates/tbc/aicte-books.html
+++ b/tbc/templates/tbc/aicte-books.html
@@ -16,7 +16,7 @@ function submitCategory()
     <hr>
     <div id="content-wrap">
         <p>Below is the list of AICTE recommended books. You can propose a book just by clicking on the link. However, if you wish to submit your own preferences other than AICTE books, click the button given below.</p>
-        <a href="{% url 'tbc:SubmitProposal' %}" class="btn btn-primary">I don't want to propose AICTE book</a>
+        <a href="{% url 'tbc:submit_proposal' %}" class="btn btn-primary">I don't want to propose AICTE book</a>
         <hr>
         <center><h4>Select a Category</h4></center>
         <form name="aictebooks" action="/submit-aicte-proposal/" method=POST enctype="multipart/form-data">
@@ -52,7 +52,7 @@ function submitCategory()
                         {{ forloop.counter }}
                     </td>
                     <td>
-                        <a href="{% url 'tbc:SubmitAICTEProposal' book.id %}">{{ book.title }} by {{ book.author }}, {{ book.edition }} Edition</a>
+                        <a href="{% url 'tbc:submit_aicte_proposal' book.id %}">{{ book.title }} by {{ book.author }}, {{ book.edition }} Edition</a>
                     </td>
                 </tr>
             {% endfor %}
diff --git a/tbc/templates/tbc/book-details.html b/tbc/templates/tbc/book-details.html
index b161c76..fc67847 100644
--- a/tbc/templates/tbc/book-details.html
+++ b/tbc/templates/tbc/book-details.html
@@ -20,7 +20,7 @@ function redirectToIpynb(notebook)
 {% for image in images %}
     <div class ="module-list">
         {% if image.chapters_set.get.notebook %}
-            <a href="{% url 'tbc:ConvertNotebook' image.chapters_set.get.notebook %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ image.image }}"></a>
+            <a href="{% url 'tbc:convert_notebook' image.chapters_set.get.notebook %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ image.image }}"></a>
         {% else %}
             <img src="{% static 'Python-Textbook-Companions/' %}{{ image.image }}">
         {% endif %}
@@ -36,7 +36,7 @@ function redirectToIpynb(notebook)
 {% for chapter in chapters %}
     <tr>
         <td>
-            <a href="{% url 'tbc:ConvertNotebook' chapter.notebook %}">{{ chapter.name }}</a>
+            <a href="{% url 'tbc:convert_notebook' chapter.notebook %}">{{ chapter.name }}</a>
         </td>
         <td>
             <a href="{% static 'uploads/' %}{{ chapter.notebook }}">Download</a>
@@ -45,7 +45,7 @@ function redirectToIpynb(notebook)
 {% endfor %}
 </table>
 <hr>
-<a class="btn btn-primary btn-large" href="{% url 'tbc:GetZip' book.id %}" style="float:right; margin-top:20px;">Download Book as Zip</a>
+<a class="btn btn-primary btn-large" href="{% url 'tbc:get_zip' book.id %}" style="float:right; margin-top:20px;">Download Book as Zip</a>
 <table>
     <tr>
         <td>Author: &nbsp;&nbsp;</td>
@@ -57,7 +57,7 @@ function redirectToIpynb(notebook)
     </tr>
     <tr>
         <td>ISBN: &nbsp;&nbsp;</td>
-        <td><a href= http://www.isbnsearch.org/isbn/{{book.isbn}} target="_blank">{{book.isbn }}</a></td>
+        <td><a href= http://www.isbnsearch.org/isbn/{{ book.isbn }} target="_blank">{{ book.isbn }}</a></td>
     </tr>
     <tr>
         <td>Contributor: &nbsp;&nbsp;</td>
@@ -77,8 +77,9 @@ function redirectToIpynb(notebook)
     </tr>
     <tr>
         <td>GitHub: &nbsp;&nbsp;</td>
-        <td><a href= 'https://github.com/FOSSEE/Python-Textbook-Companions/tree/master/{{book.title.split|join:"_"}}_by_{{book.author.split|join:"_"}}' target="_blank">{{book.title}}</a></td>
+        <td><a href= 'https://github.com/FOSSEE/Python-Textbook-Companions/tree/master/{{ book.title.split|join:"_" }}_by_{{ book.author.split|join:"_" }}' target="_blank">{{ book.title }}</a></td>
     </tr>
+
 </table>
 
 </div>
diff --git a/tbc/templates/tbc/book-review-details.html b/tbc/templates/tbc/book-review-details.html
index 33401d5..26bf85f 100644
--- a/tbc/templates/tbc/book-review-details.html
+++ b/tbc/templates/tbc/book-review-details.html
@@ -6,7 +6,7 @@
 {% for image in images %}
     <div class ="module-list">
         {% if image.chapters_set.get.notebook %}
-            <a href="{% url 'tbc:ConvertNotebook' image.chapters_set.get.notebook %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ image.image }}"></a>
+            <a href="{% url 'tbc:convert_notebook' image.chapters_set.get.notebook %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ image.image }}"></a>
         {% else %}
             <img src="{% static 'Python-Textbook-Companions/' %}{{ image.image }}">
         {% endif %}
@@ -18,7 +18,7 @@
 <table class="table table-bordered table-hover">
     {% for chapter in chapters %}
         <tr>
-            <td><a href="{% url 'tbc:ConvertNotebook' chapter.notebook %}">{{ chapter.name }}</a></td>
+            <td><a href="{% url 'tbc:convert_notebook' chapter.notebook %}">{{ chapter.name }}</a></td>
         </tr>
     {% endfor %}
 </table>
diff --git a/tbc/templates/tbc/book-review.html b/tbc/templates/tbc/book-review.html
index 7bb88ff..f26c7ba 100644
--- a/tbc/templates/tbc/book-review.html
+++ b/tbc/templates/tbc/book-review.html
@@ -20,13 +20,13 @@
 <center><h3>Books to be reviewed</h3></center>
 <ol>
 {% for book in books %}
-    <li><a href="{% url 'tbc:BookReview' book.id %}">{{ book.title }} {{ book.edition }} Edition</a>
+    <li><a href="{% url 'tbc:book_review' book.id %}">{{ book.title }} {{ book.edition }} Edition</a>
 {% endfor %}
 </ol>
 <center><h3>Reviewed Books</h3></center>
 <ol>
 {% for book in approved_books %}
-<li><a href="{% url 'tbc:BookReview' book.id %}">{{ book.title }} {{ book.edition }} Edition</a></li>
+<li><a href="{% url 'tbc:book_review' book.id %}">{{ book.title }} {{ book.edition }} Edition</a></li>
 {% endfor %}
 <ol>
 {% endblock %}
diff --git a/tbc/templates/tbc/books_under_progress.html b/tbc/templates/tbc/books_under_progress.html
index 494214b..90803ec 100644
--- a/tbc/templates/tbc/books_under_progress.html
+++ b/tbc/templates/tbc/books_under_progress.html
@@ -44,7 +44,7 @@ function submitCategory()
                 {{ forloop.counter }}
             </td>
             <td>
-                    <a href="{% url 'tbc:BookDetails' book.id %}">{{ book.title }} by {{ book.author }}</a>
+                    <a href="{% url 'tbc:book_details' book.id %}">{{ book.title }} by {{ book.author }}</a>
             </td>
         </tr>
         {% endfor %}
diff --git a/tbc/templates/tbc/browse-books.html b/tbc/templates/tbc/browse-books.html
index 1c20ea5..31929b1 100644
--- a/tbc/templates/tbc/browse-books.html
+++ b/tbc/templates/tbc/browse-books.html
@@ -34,8 +34,8 @@ function submitCategory()
 <div class="row-fluid">
     {% for item in items %}
         <div class ="module-list">
-            <a href="{% url 'tbc:BookDetails' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
-            <center><a href="{% url 'tbc:BookDetails' item.book.id %}">{{ item.book.title }}</a></center>
+            <a href="{% url 'tbc:book_details' item.book.id %}"><img src="{% static 'Python-Textbook-Companions/' %}{{ item.image.image }}"></a>
+            <center><a href="{% url 'tbc:book_details' item.book.id %}">{{ item.book.title }}</a></center>
         </div>
     {% endfor %}
     </div>
diff --git a/tbc/templates/tbc/completed_books.html b/tbc/templates/tbc/completed_books.html
index 11bdeb0..44acdc9 100644
--- a/tbc/templates/tbc/completed_books.html
+++ b/tbc/templates/tbc/completed_books.html
@@ -42,7 +42,7 @@ function submitCategory()
                 {{ forloop.counter }}
             </td>
             <td>
-                    <a href="{% url 'tbc:BookDetails' book.id %}">{{ book.title }} by {{ book.author }}</a>
+                    <a href="{% url 'tbc:book_details' book.id %}">{{ book.title }} by {{ book.author }}</a>
             </td>
         </tr>
         {% endfor %}
diff --git a/tbc/templates/tbc/get-certificate.html b/tbc/templates/tbc/get-certificate.html
index 6b6b622..5273efa 100644
--- a/tbc/templates/tbc/get-certificate.html
+++ b/tbc/templates/tbc/get-certificate.html
@@ -16,7 +16,7 @@
                     {{ book.title }} by {{ book.author }}, {{ book.edition }} Edition
                 </td>
                 <td>
-                    <a class="btn btn-primary" href="{% url 'tbc:GetCertificate' book.id %}">Get Certificate</a>
+                    <a class="btn btn-primary" href="{% url 'tbc:get_certificate' book.id %}">Get Certificate</a>
                 </td>
             </tr>
         {% endfor %}
diff --git a/tbc/templates/tbc/link_image.html b/tbc/templates/tbc/link_image.html
index 03cdcec..35d55d5 100644
--- a/tbc/templates/tbc/link_image.html
+++ b/tbc/templates/tbc/link_image.html
@@ -37,7 +37,7 @@
         <b><u> Below are the links to the chapters:</u></b><br>
 
         {% for chapter in chapters %}
-        <a href="{% url 'tbc:ConvertNotebook' chapter.notebook %}" target="_blank">{{ chapter }}</a>
+        <a href="{% url 'tbc:convert_notebook' chapter.notebook %}" target="_blank">{{ chapter }}</a>
         <br>
         {% endfor %}
     </div>
diff --git a/tbc/templates/tbc/login.html b/tbc/templates/tbc/login.html
old mode 100755
new mode 100644
index fc71732..74c6405
--- a/tbc/templates/tbc/login.html
+++ b/tbc/templates/tbc/login.html
@@ -70,8 +70,8 @@
     {% csrf_token %}
         {{ form.as_p }}
         <input class="btn btn-primary"type=submit value=Login>
-        <a href="{% url 'tbc:UserRegister' %}" class="btn btn-primary">Sign Up</a>
-        <a href="{% url 'tbc:ForgotPassword' %}" class="btn btn-primary">Forgot Password</a>
+        <a href="{% url 'tbc:user_register' %}" class="btn btn-primary">Sign Up</a>
+        <a href="{% url 'tbc:forgot_password' %}" class="btn btn-primary">Forgot Password</a>
     </form>
 </div>
 {% endblock %}
diff --git a/tbc/templates/tbc/review-proposal.html b/tbc/templates/tbc/review-proposal.html
index 2499b45..f8b67e0 100644
--- a/tbc/templates/tbc/review-proposal.html
+++ b/tbc/templates/tbc/review-proposal.html
@@ -25,13 +25,13 @@
                                 ISBN: {{ textbook.isbn }}<br>
                                 Year of Pub.: {{ textbook.year_of_pub }}<br>
                                 Category: {{ textbook.category }}<br>
-                                <a class="btn btn-primary btn-mini" href="{% url 'tbc:ReviewProposals' proposal.id textbook.id %}">Approve & Ask for Samples</a>
+                                <a class="btn btn-primary btn-mini" href="{% url 'tbc:review_proposals' proposal.id textbook.id %}">Approve & Ask for Samples</a>
                             </div>
                         </div>
                     </div>
                 {% endfor %}
                 <h5><b>Status:</b> You are yet to review this proposal</h5>
-                <a class="btn btn-primary" href="{% url 'tbc:RejectProposal' proposal.id %}">Reject</a>
+                <a class="btn btn-primary" href="{% url 'tbc:reject_proposal' proposal.id %}">Reject</a>
             </div>
     {% endfor %}
     </ol>
@@ -71,8 +71,8 @@
                 {% ifequal proposal.proposal.status "sample resubmitted" %}
                     {% if proposal.sample.sample_notebook %}
                         <h5><a href="{% static 'Python-Textbook-Companions/' %}{{ proposal.sample.sample_notebook }}">sample notebook</a><br></h5>
-                        <a class="btn btn-primary" href="{% url 'tbc:DisapproveProposal' proposal.proposal.id %}">Disapprove Samples</a>
-                        <a class="btn btn-primary" href="{% url 'tbc:AllotBook' proposal.proposal.id %}">Alot Book</a>
+                        <a class="btn btn-primary" href="{% url 'tbc:disapprove_proposal' proposal.proposal.id %}">Disapprove Samples</a>
+                        <a class="btn btn-primary" href="{% url 'tbc:allot_book' proposal.proposal.id %}">Alot Book</a>
                         <h5>This is resubmission of the sample notebook</h5>
                     {% else %}
                         <h5>Contributor has not re submitted sample notebook yet.</h5>
@@ -81,8 +81,8 @@
                 {% ifequal proposal.proposal.status "sample submitted" %}
                     {% if proposal.sample.sample_notebook %}
                         <h5><a href="{% static 'Python-Textbook-Companions/' %}{{ proposal.sample.sample_notebook }}">sample notebook</a><br></h5>
-                        <a class="btn btn-primary" href="{% url 'tbc:DisapproveProposal' proposal.proposal.id %}">Disapprove Samples</a>
-                        <a class="btn btn-primary" href="{% url 'tbc:AllotBook' proposal.proposal.id %}">Alot Book</a>
+                        <a class="btn btn-primary" href="{% url 'tbc:disapprove_proposal' proposal.proposal.id %}">Disapprove Samples</a>
+                        <a class="btn btn-primary" href="{% url 'tbc:allot_book' proposal.proposal.id %}">Alot Book</a>
                     {% else %}
                         <h5>Contributor has not submitted sample notebook yet.</h5>
                     {% endif %}
diff --git a/tbc/urls.py b/tbc/urls.py
index 6d3cc17..97ac90f 100644
--- a/tbc/urls.py
+++ b/tbc/urls.py
@@ -2,54 +2,55 @@ from django.conf.urls import patterns, include, url
 
 
 urlpatterns = patterns('',
-    url(r'^$', 'tbc.views.Home', name='Home'),
-    url(r'^internship-forms/$', 'tbc.views.InternshipForms', name='InternshipForms'),
-    url(r'^about-pythontbc/$', 'tbc.views.AboutPytbc', name='AboutPytbc'),
-    url(r'^sample-notebook/$', 'tbc.views.SampleIpynb', name='SampleIpynb'),
-    url(r'^register/$', 'tbc.views.UserRegister', name='UserRegister'),
-    url(r'^login/$', 'tbc.views.UserLogin', name='UserLogin'),
-    url(r'^logout/$', 'tbc.views.UserLogout', name='UserLogout'),
-    url(r'^profile/$', 'tbc.views.UserProfile', name='UserProfile'),
-    url(r'^update-profile/$', 'tbc.views.UpdateProfile', name='UpdateProfile'),
-    url(r'^forgot-password/$', 'tbc.views.ForgotPassword', name='ForgotPassword'),
-    url(r'^update-password/$', 'tbc.views.UpdatePassword', name='UpdatePassword'),    
-    url(r'^admin-tools/$', 'tbc.views.admin_tools', name='admin_tools'),    
+    url(r'^$', 'tbc.views.home', name='home'),
+    url(r'^internship-forms/$', 'tbc.views.internship_forms', name='internship_forms'),
+    url(r'^about-pythontbc/$', 'tbc.views.about_pytbc', name='about_pytbc'),
+   
+    url(r'^sample-notebook/$', 'tbc.views.sample_ipynb', name='sample_ipynb'),
+    url(r'^register/$', 'tbc.views.user_register', name='user_register'),
+    url(r'^login/$', 'tbc.views.user_login', name='user_login'),
+    url(r'^logout/$', 'tbc.views.user_logout', name='user_logout'),
+    url(r'^profile/$', 'tbc.views.user_profile', name='user_profile'),
+    url(r'^update-profile/$', 'tbc.views.update_profile', name='update_profile'),
+    url(r'^forgot-password/$', 'tbc.views.forgot_password', name='forgot_password'),
+    url(r'^update-password/$', 'tbc.views.update_password', name='update_password'),
     
-    url(r'^submit-proposal/$', 'tbc.views.SubmitProposal', name='SubmitProposal'),
-    url(r'^submit-aicte-proposal/$', 'tbc.views.ListAICTE', name='ListAICTE'),
-    url(r'^submit-aicte-proposal/(?P<aicte_book_id>\d+)/$', 'tbc.views.SubmitAICTEProposal', name='SubmitAICTEProposal'),
-    url(r'^submit-book/$', 'tbc.views.SubmitBook', name='SubmitBook'),
-    url(r'^submit-sample/$', 'tbc.views.SubmitSample', name='SubmitSample'),
-    url(r'^submit-sample/(?P<proposal_id>\d+)$', 'tbc.views.SubmitSample', name='SubmitSample'),
-    url(r'^submit-sample/(?P<proposal_id>\d+)/(?P<old_notebook_id>\d+)$', 'tbc.views.SubmitSample', name='SubmitSample'),
-    url(r'^confirm-book-details/$', 'tbc.views.ConfirmBookDetails', name='ConfirmBookDetails'),
-    url(r'^submit-book-old/$', 'tbc.views.SubmitBook', name='SubmitBook'),
-    url(r'^submit-code/$', 'tbc.views.SubmitCode', name='SubmitCode'),
-    url(r'^submit-code-old/(?P<book_id>\d+)$', 'tbc.views.SubmitCodeOld', name='SubmitCodeOld'),
-    url(r'^update-content/(?P<book_id>\d+)$', 'tbc.views.UpdateContent', name='UpdateContent'),
-    url(r'^get-zip/(?P<book_id>\d+)$', 'tbc.views.GetZip', name='GetZip'),
-    url(r'^browse-books/$', 'tbc.views.BrowseBooks', name='BrowseBooks'),
-    url(r'^browse-books/(?P<category>.+)$', 'tbc.views.BrowseBooks', name='BrowseBooks'),
-    url(r'^convert-notebook/(?P<notebook_path>.+)$', 'tbc.views.ConvertNotebook', name='ConvertNotebook'),
-    url(r'^book-details/(?P<book_id>\d+)/$', 'tbc.views.BookDetails', name='BookDetails'),
-	url(r'^completed-books/$', 'tbc.views.CompletedBooks', name='CompletedBooks'),
-	url(r'^completed-books/(?P<category>.+)$', 'tbc.views.CompletedBooks', name='CompletedBooks'),
-	url(r'^books-under-progress/$', 'tbc.views.BooksUnderProgress', name='BooksUnderProgress'),
-	url(r'^redirect-ipynb/(?P<notebook_path>.+)$', 'tbc.views.RedirectToIpynb', name='RedirectToIpynb'),
-	url(r'^get-certificate/$', 'tbc.views.GetCertificate', name='GetCertificate'),
-	url(r'^get-certificate/(?P<book_id>\d+)/$', 'tbc.views.GetCertificate', name='GetCertificate'),
+   
+    url(r'^submit-proposal/$', 'tbc.views.submit_proposal', name='submit_proposal'),
+    url(r'^submit-aicte-proposal/$', 'tbc.views.list_aicte', name='list_aicte'),
+    url(r'^submit-aicte-proposal/(?P<aicte_book_id>\d+)/$', 'tbc.views.submit_aicte_proposal', name='submit_aicte_proposal'),
+    url(r'^submit-book/$', 'tbc.views.submit_book', name='submit_book'),
+    url(r'^submit-sample/$', 'tbc.views.submit_sample', name='submit_sample'),
+    url(r'^submit-sample/(?P<proposal_id>\d+)$', 'tbc.views.submit_sample', name='submit_sample'),
+    url(r'^submit-sample/(?P<proposal_id>\d+)/(?P<old_notebook_id>\d+)$', 'tbc.views.submit_sample', name='submit_sample'),
+    url(r'^confirm-book-details/$', 'tbc.views.confirm_book_details', name='confirm_book_details'),
+    url(r'^submit-book-old/$', 'tbc.views.submit_book', name='submit_book'),
+    url(r'^submit-code/$', 'tbc.views.submit_code', name='submit_code'),
+    url(r'^submit-code-old/(?P<book_id>\d+)$', 'tbc.views.submit_code_old', name='submit_code_old'),
+    url(r'^update-content/(?P<book_id>\d+)$', 'tbc.views.update_content', name='update_content'),
+    url(r'^get-zip/(?P<book_id>\d+)$', 'tbc.views.get_zip', name='get_zip'),
+    url(r'^browse-books/$', 'tbc.views.browse_books', name='browse_books'),
+    url(r'^browse-books/(?P<category>.+)$', 'tbc.views.browse_books', name='browse_books'),
+    url(r'^convert-notebook/(?P<notebook_path>.+)$', 'tbc.views.convert_notebook', name='convert_notebook'),
+    url(r'^book-details/(?P<book_id>\d+)/$', 'tbc.views.book_details', name='book_details'),
+	url(r'^completed-books/$', 'tbc.views.completed_books', name='completed_books'),
+	url(r'^completed-books/(?P<category>.+)$', 'tbc.views.completed_books', name='completed_books'),
+	url(r'^books-under-progress/$', 'tbc.views.books_under_progress', name='books_under_progress'),
+	url(r'^redirect-ipynb/(?P<notebook_path>.+)$', 'tbc.views.redirect_to_ipynb', name='redirect_to_ipynb'),
+	url(r'^get-certificate/$', 'tbc.views.get_certificate', name='get_certificate'),
+	url(r'^get-certificate/(?P<book_id>\d+)/$', 'tbc.views.get_certificate', name='get_certificate'),
     
     
-    url(r'^book-review/$', 'tbc.views.BookReview', name='BookReview'),
-    url(r'^proposal-review/$', 'tbc.views.ReviewProposals', name='ReviewProposals'),
-    url(r'^proposal-review/(?P<proposal_id>\d+)/(?P<textbook_id>\d+)$', 'tbc.views.ReviewProposals', name='ReviewProposals'),
-    url(r'^disapprove-sample-notebook/(?P<proposal_id>\d+)$', 'tbc.views.DisapproveProposal', name='DisapproveProposal'),
-    url(r'^allot-book/(?P<proposal_id>\d+)$', 'tbc.views.AllotBook', name='AllotBook'),
-    url(r'^reject-proposal/(?P<proposal_id>\d+)$', 'tbc.views.RejectProposal', name='RejectProposal'),
-    url(r'^book-review/(?P<book_id>\d+)$', 'tbc.views.BookReview', name='BookReview'),
-    url(r'^approve-book/(?P<book_id>\d+)$', 'tbc.views.ApproveBook', name='ApproveBook'),
-    url(r'^notify-changes/(?P<book_id>\d+)$', 'tbc.views.NotifyChanges', name='NotifyChanges'),
-    url(r'^brokenbooks/$', 'tbc.views.get_broken_books', name='brokenbooks'),
+    url(r'^book-review/$', 'tbc.views.book_review', name='book_review'),
+    url(r'^proposal-review/$', 'tbc.views.review_proposals', name='review_proposals'),
+    url(r'^proposal-review/(?P<proposal_id>\d+)/(?P<textbook_id>\d+)$', 'tbc.views.review_proposals', name='review_proposals'),
+    url(r'^disapprove-sample-notebook/(?P<proposal_id>\d+)$', 'tbc.views.disapprove_proposal', name='disapprove_proposal'),
+    url(r'^allot-book/(?P<proposal_id>\d+)$', 'tbc.views.allot_book', name='allot_book'),
+    url(r'^reject-proposal/(?P<proposal_id>\d+)$', 'tbc.views.reject_proposal', name='reject_proposal'),
+    url(r'^book-review/(?P<book_id>\d+)$', 'tbc.views.book_review', name='book_review'),
+    url(r'^approve-book/(?P<book_id>\d+)$', 'tbc.views.approve_book', name='approve_book'),
+    url(r'^notify-changes/(?P<book_id>\d+)$', 'tbc.views.notify_changes', name='notify_changes'),
+    url(r'^brokenbooks/$', 'tbc.views.get_broken_books', name='broken_books'),
     url(r'^link-image/$', 'tbc.views.link_image', name='link_image'),
 
     # ajax urls
diff --git a/tbc/views.py b/tbc/views.py
old mode 100755
new mode 100644
index 7985128..4a469c5
--- a/tbc/views.py
+++ b/tbc/views.py
@@ -55,7 +55,7 @@ def is_reviewer(user):
         return True
 
 
-def InternshipForms(request):
+def internship_forms(request):
     context = {}
     images = []
     if request.user.is_anonymous():
@@ -68,11 +68,11 @@ def InternshipForms(request):
     return render_to_response('tbc/internship-forms.html', context)
 
 
-def SampleIpynb(request):
+def sample_ipynb(request):
     return render_to_response('tbc/sample.html')
 
 
-def AboutPytbc(request):
+def about_pytbc(request):
     context = {}
     images = []
     if request.user.is_anonymous():
@@ -85,7 +85,7 @@ def AboutPytbc(request):
     return render_to_response('tbc/about-pytbc.html', context)
 
 
-def Home(request):
+def home(request):
     context = {}
     images = []
     if request.user.is_anonymous():
@@ -122,7 +122,7 @@ def Home(request):
     if 'bookupdate' in request.GET:
         context['bookupdate'] =True
 
-    books = Book.objects.filter(approved=True).order_by("-id")[0:6]
+    books = Book.objects.filter(approved=True).order_by("-id")
     for book in books:
         try:
             images.append(ScreenShots.objects.filter(book=book)[0])
@@ -152,11 +152,11 @@ def Home(request):
     return render_to_response('base.html', context)
 
 
-def _checkProfile(user):
+def _checkprofile(user):
     return Profile.objects.filter(user=user).exists()
 
 
-def UserLogin(request):
+def user_login(request):
     context = {}
     context.update(csrf(request))
     if 'require_login' in request.GET:
@@ -197,7 +197,7 @@ def UserLogin(request):
     return render_to_response('tbc/login.html', context)
 
 
-def UserRegister(request):
+def user_register(request):
     context = {}
     context.update(csrf(request))
     if request.method == 'POST':
@@ -224,7 +224,7 @@ def UserRegister(request):
     return render_to_response('tbc/register.html', context)
 
 
-def UserProfile(request):
+def user_profile(request):
     context = {}
     user = request.user
     if user.is_authenticated():
@@ -256,13 +256,13 @@ def UserProfile(request):
         return HttpResponseRedirect('/login/?require_login=True')
 
 
-def UpdateProfile(request):
+def update_profile(request):
     user = request.user
     context = {}
     context.update(csrf(request))
     if user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
-    if not _checkProfile(user):
+    if not _checkprofile(user):
         return HttpResponseRedirect("/profile/?update=profile")
     context['user'] = user   
     user_profile = Profile.objects.get(user=user)
@@ -290,7 +290,7 @@ def UpdateProfile(request):
     context['form'] = form
     return render_to_response('tbc/update-profile.html', context)
 
-def UserLogout(request):
+def user_logout(request):
     user = request.user
     if user.is_authenticated() and user.is_active:
         logout(request)
@@ -298,7 +298,7 @@ def UserLogout(request):
     return redirect('/?logout=done')
 
 
-def ForgotPassword(request):
+def forgot_password(request):
     context = {}
     user_emails = []
     context.update(csrf(request))
@@ -328,7 +328,7 @@ def ForgotPassword(request):
         return render_to_response("tbc/forgot-password.html", context)
 
 
-def UpdatePassword(request):
+def update_password(request):
     context = {}
     user = request.user
     context.update(csrf(request))
@@ -366,14 +366,14 @@ def UpdatePassword(request):
         return render_to_response("tbc/login.html", context)
 
 
-def SubmitBook(request):
+def submit_book(request):
     context = {}
     if request.user.is_anonymous():
         return HttpResponseRedirect("/login/?require_login=true")
     else:
         curr_user = request.user
         if curr_user.is_authenticated():
-            if not _checkProfile(curr_user):
+            if not _checkprofile(curr_user):
                 return HttpResponseRedirect("/profile/?update=profile")
     user_profile = Profile.objects.get(user=curr_user)
     curr_proposals = Proposal.objects.filter(user=user_profile)
@@ -414,9 +414,9 @@ def SubmitBook(request):
         
 
 
-def SubmitCodeOld(request, book_id=None):
+def submit_code_old(request, book_id=None):
     user = request.user
-    if not _checkProfile(user):
+    if not _checkprofile(user):
         return HttpResponseRedirect("/profile/?update=profile")
     curr_profile = Profile.objects.get(user=user)
     context = {}
@@ -456,9 +456,9 @@ def SubmitCodeOld(request, book_id=None):
         return render_to_response('tbc/upload-content-old.html', context)
 
 
-def SubmitProposal(request):
+def submit_proposal(request):
     curr_user = request.user
-    if not _checkProfile(curr_user):
+    if not _checkprofile(curr_user):
         return HttpResponseRedirect("/profile/?update=profile")
     user_profile = Profile.objects.get(user=curr_user.id)
     context = {}
@@ -537,12 +537,12 @@ Thank you for showing interest in contributing to Python Textbook Companion Acti
         return HttpResponseRedirect('/?proposal_pending=True')
 
 
-def ListAICTE(request):
+def list_aicte(request):
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
     else:
         curr_user = request.user
-    if not _checkProfile(curr_user):
+    if not _checkprofile(curr_user):
         return HttpResponseRedirect("/profile/?update=profile")
     user_profile = Profile.objects.get(user=curr_user.id)
     user_proposals = Proposal.objects.filter(user=user_profile)
@@ -565,12 +565,12 @@ def ListAICTE(request):
     return render_to_response('tbc/aicte-books.html', context)
 
 
-def SubmitAICTEProposal(request, aicte_book_id=None):
+def submit_aicte_proposal(request, aicte_book_id=None):
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
     else:
         curr_user = request.user
-    if not _checkProfile(curr_user):
+    if not _checkprofile(curr_user):
         return HttpResponseRedirect("/profile/?update=profile")
     user_profile = Profile.objects.get(user=curr_user.id)
     context = {}
@@ -637,7 +637,7 @@ def SubmitAICTEProposal(request, aicte_book_id=None):
         return HttpResponseRedirect('/?proposal_pending=True')
 
 
-def ReviewProposals(request, proposal_id=None, textbook_id=None):
+def review_proposals(request, proposal_id=None, textbook_id=None):
     context = {}
     user = request.user
     if is_reviewer(user):
@@ -689,7 +689,7 @@ def ReviewProposals(request, proposal_id=None, textbook_id=None):
         return HttpResponse("not allowed")
 
 
-def DisapproveProposal(request, proposal_id=None):
+def disapprove_proposal(request, proposal_id=None):
     context = {}
     context.update(csrf(request))
     proposal = Proposal.objects.get(id=proposal_id)
@@ -709,7 +709,7 @@ def DisapproveProposal(request, proposal_id=None):
         return render_to_response('tbc/disapprove-sample.html', context)
 
 
-def AllotBook(request, proposal_id=None):
+def allot_book(request, proposal_id=None):
     context = {}
     proposal = Proposal.objects.get(id=proposal_id)
     proposal.status = "book alloted"
@@ -721,7 +721,7 @@ def AllotBook(request, proposal_id=None):
     return HttpResponseRedirect("/book-review/?book_alloted=done")
 
 
-def RejectProposal(request, proposal_id=None):
+def reject_proposal(request, proposal_id=None):
     context = {}
     context.update(csrf(request))
     proposal = Proposal.objects.get(id=proposal_id)
@@ -746,13 +746,13 @@ def RejectProposal(request, proposal_id=None):
         return render_to_response('tbc/reject-proposal.html', context)
 
 
-def SubmitSample(request, proposal_id=None, old_notebook_id=None):
+def submit_sample(request, proposal_id=None, old_notebook_id=None):
     context = {}
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
     else:
         user = request.user
-    if not _checkProfile(user):
+    if not _checkprofile(user):
         return HttpResponseRedirect("/profile/?update=profile")
     context.update(csrf(request))
     if request.method == "POST":
@@ -793,13 +793,13 @@ def SubmitSample(request, proposal_id=None, old_notebook_id=None):
             return render_to_response('tbc/submit-sample.html', context)
 
 
-def ConfirmBookDetails(request):
+def confirm_book_details(request):
     context = {}
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
     else:
         current_user = request.user
-    if not _checkProfile(current_user):
+    if not _checkprofile(current_user):
         return HttpResponseRedirect("/profile/?update=profile")
     user_profile = Profile.objects.get(user=current_user)
     try:
@@ -843,12 +843,14 @@ def ConfirmBookDetails(request):
         return render_to_response('tbc/confirm-details.html', context)
 
 
-def SubmitCode(request):
+
+
+def submit_code(request):
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
     else:
         user = request.user
-    if not _checkProfile(user):
+    if not _checkprofile(user):
         return HttpResponseRedirect("/profile/?update=profile")
     curr_profile = Profile.objects.get(user=user)
     context = {}
@@ -943,7 +945,7 @@ def SubmitCode(request):
         return render_to_response('tbc/upload-content.html', context)
 
 
-def UpdateContent(request, book_id=None):
+def update_content(request, book_id=None):
     context = {}
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
@@ -983,7 +985,7 @@ def UpdateContent(request, book_id=None):
         return render_to_response('tbc/update-content.html', context)
 
 
-def generateZip(book_id):
+def generate_zip(book_id):
     book = Book.objects.get(id=book_id)
     files_to_zip = []
     file_path = os.path.abspath(os.path.dirname(__file__))
@@ -1003,7 +1005,7 @@ def generateZip(book_id):
     return s, zipfile_name
 
 
-def GetZip(request, book_id=None):
+def get_zip(request, book_id=None):
     user = request.user
     s, zipfile_name = generateZip(book_id)
     resp = HttpResponse(s.getvalue(), mimetype = "application/x-zip-compressed")
@@ -1011,7 +1013,7 @@ def GetZip(request, book_id=None):
     return resp
 
 
-def BookDetails(request, book_id=None):
+def book_details(request, book_id=None):
     context = {}
     if request.user.is_anonymous():
         context['anonymous'] = True
@@ -1029,7 +1031,7 @@ def BookDetails(request, book_id=None):
     return render_to_response('tbc/book-details.html', context)
 
 
-def BookReview(request, book_id=None):
+def book_review(request, book_id=None):
     context = {}
     if is_reviewer(request.user):
         if book_id:
@@ -1066,7 +1068,7 @@ def BookReview(request, book_id=None):
         return render_to_response('tbc/forbidden.html')
 
 
-def ApproveBook(request, book_id=None):
+def approve_book(request, book_id=None):
     context = {}
     user = request.user
     if is_reviewer(request.user):
@@ -1120,7 +1122,7 @@ Congratulations !\nThe book - """+book.title+""" is now complete & published.\nP
         return render_to_response('tbc/forbidden.html')
 
 
-def NotifyChanges(request, book_id=None):
+def notify_changes(request, book_id=None):
     context = {}
     if is_reviewer(request.user):
         book = Book.objects.get(id=book_id)
@@ -1156,7 +1158,7 @@ def NotifyChanges(request, book_id=None):
         return render_to_response('tbc/forbidden.html')
 
 
-def BrowseBooks(request):
+def browse_books(request):
     context = {}
     category = None
     images = []
@@ -1189,10 +1191,10 @@ def BrowseBooks(request):
     return render_to_response('tbc/browse-books.html', context)
 
 
-def ConvertNotebook(request, notebook_path=None):
+
+def convert_notebook(request, notebook_path=None):
     """ Checks for the modified time of ipython notebooks and corresponding html page and replaces html page with 
     new one if corresponding ipython notebook has been modified. """ 
-    
     context = {}
     path = os.path.join(local.path, notebook_path.rsplit(".", 1)[0])
     template_html = path+".html"
@@ -1216,7 +1218,7 @@ def ConvertNotebook(request, notebook_path=None):
     return render_to_response(template_html, context)
 
 
-def CompletedBooks(request):
+def completed_books(request):
     context = {}
     context.update(csrf(request))
     category = "All"
@@ -1240,7 +1242,7 @@ def CompletedBooks(request):
     return render_to_response('tbc/completed_books.html', context)
     
 
-def BooksUnderProgress(request):
+def books_under_progress(request):
     context = {}
     context.update(csrf(request))
     if request.user.is_anonymous():
@@ -1263,7 +1265,7 @@ def BooksUnderProgress(request):
     return render_to_response('tbc/books_under_progress.html', context)
 
 
-def GetCertificate(request, book_id=None):
+def get_certificate(request, book_id=None):
     if request.user.is_anonymous():
         return HttpResponseRedirect('/login/?require_login=True')
     else:
@@ -1340,7 +1342,7 @@ def _make_tbc_certificate(path):
     err = process.communicate()[1]
     return process.returncode, err
 
-def RedirectToIpynb(request, notebook_path=None):
+def redirect_to_ipynb(request, notebook_path=None):
     context = {}
     notebook = notebook_path.split("/")
     notebook[0] = "notebooks"
-- 
cgit 


From 34dcf8cd6a22bb93b8a9a6532f1373fd64048f1c Mon Sep 17 00:00:00 2001
From: kinitrupti
Date: Thu, 21 Apr 2016 11:46:24 +0530
Subject: Add tags module, minor css changes to base.html

---
 requirements.txt        |  2 ++
 tbc/templates/base.html | 46 +++++++++++++++++++++++-----------------------
 2 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/requirements.txt b/requirements.txt
index 6e46e4a..ac72f30 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,3 +12,5 @@ requests==2.6.0
 urllib3==1.10.2
 wsgiref==0.1.2
 scrapy==1.0.3
+django-taggit
+django-taggit-templatetags2
diff --git a/tbc/templates/base.html b/tbc/templates/base.html
index 3cece1c..645ceed 100644
--- a/tbc/templates/base.html
+++ b/tbc/templates/base.html
@@ -89,30 +89,30 @@ a.viewdescription:hover {background-color:#999; color: White;}
     </style>
 <style>
       
-span.question {
-  cursor: pointer;
-  display: inline-block;
-  width: 20px;
-  height: 20px;
-  background-color: #89A4CC;
-  line-height: 16px;
-  color: White;
-  font-size: 13px;
-  font-weight: bold;
-  border-radius: 8px;
-  text-align: center;
-  position: relative;
-}
-span.question:hover { background-color: #3D6199; }
+	span.question {
+	  cursor: pointer;
+	  display: inline-block;
+	  width: 20px;
+	  height: 20px;
+	  background-color: #89A4CC;
+	  line-height: 16px;
+	  color: White;
+	  font-size: 13px;
+	  font-weight: bold;
+	  border-radius: 8px;
+	  text-align: center;
+	  position: relative;
+	}
+	span.question:hover { background-color: #3D6199; }
 
-    </style>
-   {% block css %}
-    <style type="text/css">
-      body {
-        padding-top: 60px;
-        padding-bottom: 40px;
-      }
-    </style>
+	    </style>
+	   {% block css %}
+	    <style type="text/css">
+	      body {
+		padding-top: 60px;
+		padding-bottom: 40px;
+	      }
+</style>
    {% endblock %}
    </head>
 
-- 
cgit 


From 9d4a8bf905c1af386c14ed027f8e61697f740d2a Mon Sep 17 00:00:00 2001
From: kinitrupti
Date: Thu, 21 Apr 2016 12:20:51 +0530
Subject: Reinstate admin tools url

---
 tbc/urls.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tbc/urls.py b/tbc/urls.py
index 97ac90f..6c75ab3 100644
--- a/tbc/urls.py
+++ b/tbc/urls.py
@@ -14,7 +14,7 @@ urlpatterns = patterns('',
     url(r'^update-profile/$', 'tbc.views.update_profile', name='update_profile'),
     url(r'^forgot-password/$', 'tbc.views.forgot_password', name='forgot_password'),
     url(r'^update-password/$', 'tbc.views.update_password', name='update_password'),
-    
+    url(r'^admin-tools/$', 'tbc.views.admin_tools', name='admin_tools'),    
    
     url(r'^submit-proposal/$', 'tbc.views.submit_proposal', name='submit_proposal'),
     url(r'^submit-aicte-proposal/$', 'tbc.views.list_aicte', name='list_aicte'),
-- 
cgit