diff --git a/readme.md b/readme.md
index ab3368923577a4a93a7aedd86161e9aa8c2a898b..93dd9e238548efd031376c7f54e58c06d7a89741 100644
--- a/readme.md
+++ b/readme.md
@@ -47,6 +47,7 @@ DATABASES = {
 STATIC_ROOT = '/tmp/static' # Warning! `/tmp` directory can be flushed in any moment; use a persistent one; e.g. ~/tmp/static
 MEDIA_ROOT = '/tmp/media' # Warning! `/tmp` directory can be flushed in any moment; use a persistent one, e.g. ~/tmp/media
 ```
+ - Update migration db scrpit from file structure (`./scheduling-system/smash/manage.py makemigrations`)
  - Create the database by applying migrations (`./scheduling-system/smash/manage.py migrate`)
  - Create the first, administrative, user-  (`./scheduling-system/smash/manage.py createsuperuser`)
 
diff --git a/smash/web/forms.py b/smash/web/forms.py
index 408692484881f932e22a2fc4c9b6680c4aec7780..dc593518c4aba102681d6db89d394a9caba8565a 100644
--- a/smash/web/forms.py
+++ b/smash/web/forms.py
@@ -47,6 +47,12 @@ class AppointmentDetailForm(ModelForm):
         model = Appointment
         fields = '__all__'
 
+
+class AppointmentAddForm(ModelForm):
+    class Meta:
+        model = Appointment
+        exclude = ['is_finished']
+
 class VisitDetailForm(ModelForm):
     class Meta:
         model = Visit
diff --git a/smash/web/models.py b/smash/web/models.py
index 5e4684b16cf55234b56a6bf6df941969b08599b1..5feb23ac3020c932909b2248a9153d69311e39bd 100644
--- a/smash/web/models.py
+++ b/smash/web/models.py
@@ -152,9 +152,11 @@ class Visit(models.Model):
         verbose_name='Has ended',
         default=False
     )
+    def __unicode__(self):
+        return "%s %s" % (self.subject.first_name, self.subject.last_name)
 
     def __str__(self):
-        return "%s %s %d" % (self.subject.first_name, self.subject.last_name, self.assesmentNo)
+        return "%s %s" % (self.subject.first_name, self.subject.last_name)
 
 
 class Item (models.Model):
@@ -360,7 +362,8 @@ class Appointment(models.Model):
         verbose_name='Visit ID'
     )
     datetime_when = models.DateTimeField(
-        verbose_name='Appointment on'
+        verbose_name='Appointment on',
+        null=True
     )
     length = models.IntegerField(
         verbose_name='Appointment length (in minutes)'
diff --git a/smash/web/templates/assignments/add.html b/smash/web/templates/assignments/add.html
new file mode 100644
index 0000000000000000000000000000000000000000..699842b68862f56bd589f156cdc9633b858ba5bd
--- /dev/null
+++ b/smash/web/templates/assignments/add.html
@@ -0,0 +1,91 @@
+{% extends "_base.html" %}
+{% load static %}
+{% load filters %}
+
+{% block styles %}
+{{ block.super }}
+	<!-- DataTables -->
+  <link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}">
+{% endblock styles %}
+
+{% block page_title %}'assignments'{% endblock page_title %}
+{% block page_header %}New appointment{% endblock page_header %}
+{% block page_description %}{% endblock page_description %}
+
+{% block title %}{{ block.super }} - Add new appoitnment{% endblock %}
+
+{% block breadcrumb %}
+{% include "assignments/breadcrumb.html" %}
+{% endblock breadcrumb %}
+
+{% block maincontent %}
+
+{% block content %}
+<div class="box box-info">
+	<div class="box-header with-border">
+		<a href="{% url 'web.views.assignments' %}" class="btn btn-block btn-default">Cancel</a>
+	</div>
+
+	{% comment %} <div class="box-header with-border">
+		<h3 class="box-title">Adding an assignment</h3>
+	</div>{% endcomment %}
+
+	<form method="post" action="" class="form-horizontal">
+		{% csrf_token %}
+
+		<div class="box-body">
+      <div class="col-sm-6">
+  			{% for field in form %}
+  				<div class="form-group {% if field.errors %}has-error{% endif %}">
+  					<label for="inputEmail3" class="col-sm-4 control-label">
+  						{{ field.label }}
+  					</label>
+
+  					<div class="col-sm-8">
+  						{{ field|add_class:'form-control' }}
+  					</div>
+
+  					{% if field.errors %}
+  						<span class="help-block">
+  							{{ field.errors }}
+  						</span>
+  					{% endif %}
+  				</div>
+  			{% endfor %}
+      </div>
+		</div><!-- /.box-body -->
+
+		<div class="box-footer">
+			<div class="col-sm-6">
+				<button type="submit" class="btn btn-block btn-success">Add</button>
+			</div>
+			<div class="col-sm-6">
+				<a href="{% url 'web.views.visits' %}" class="btn btn-block btn-default">Cancel</a>
+			</div>
+		</div><!-- /.box-footer -->
+	</form>
+</div>
+
+{% endblock %}
+
+
+{% endblock maincontent %}
+
+{% block scripts %}
+	{{ block.super }}
+
+	<script src="{% static 'AdminLTE/plugins/datatables/jquery.dataTables.min.js' %}"></script>
+	<script src="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.min.js' %}"></script>
+	<script>
+		$(function () {
+			$('#table').DataTable({
+			  "paging": true,
+			  "lengthChange": false,
+			  "searching": true,
+			  "ordering": true,
+			  "info": true,
+			  "autoWidth": false
+			});
+		});
+	</script>
+{% endblock scripts %}
diff --git a/smash/web/templates/assignments/details.html b/smash/web/templates/assignments/details.html
index 39a97f2d09c13d1db18de2f77f953aa953645b9a..727ce3b8375dd19b650f82e7e7d7d076a500c85f 100644
--- a/smash/web/templates/assignments/details.html
+++ b/smash/web/templates/assignments/details.html
@@ -7,7 +7,7 @@
   <link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}">
 {% endblock styles %}
 
-{% block page_title %}'Assignments'{% endblock page_title %}
+{% block page_title %}'assignments'{% endblock page_title %}
 {% block page_header %}Assignment's details{% endblock page_header %}
 {% block page_description %}details{% endblock page_description %}
 
diff --git a/smash/web/templates/visits/add.html b/smash/web/templates/visits/add.html
index 852234f42c2f49acda45203d8ee43203d44323f2..f21345d834014b216766ae589e501e0dd900c5a5 100644
--- a/smash/web/templates/visits/add.html
+++ b/smash/web/templates/visits/add.html
@@ -12,10 +12,10 @@
 {% block page_header %}New visit{% endblock page_header %}
 {% block page_description %}{% endblock page_description %}
 
-{% block title %}{{ block.super }} - Add new subject{% endblock %}
+{% block title %}{{ block.super }} - Add new visit{% endblock %}
 
 {% block breadcrumb %}
-{% include "subjects/breadcrumb.html" %}
+{% include "visits/breadcrumb.html" %}
 {% endblock breadcrumb %}
 
 {% block maincontent %}
diff --git a/smash/web/templates/visits/details.html b/smash/web/templates/visits/details.html
index e4f260d547bd124590a7df27fdb7267986a0bbef..94bac5ca1e293062d47ad4e2e709acfee66290f5 100644
--- a/smash/web/templates/visits/details.html
+++ b/smash/web/templates/visits/details.html
@@ -68,6 +68,14 @@
   <h3 class="box-title">Visit's assignments</h3>
 </div>
 
+<div>
+	<a href="{% url 'web.views.assignment_add' vid %}" class="btn btn-app">
+      <i class="fa fa-plus"></i>
+      Add new assignment
+    </a>
+</div>
+
+
 {% if loApp %}
 <table id="table" class="table table-bordered table-striped">
   <thead>
diff --git a/smash/web/urls.py b/smash/web/urls.py
index 33bec41175ab23a39b0ee7c776aad60717adfb26..bf8d87bd8cdf5660c5dd901288d462d1373c0c31 100644
--- a/smash/web/urls.py
+++ b/smash/web/urls.py
@@ -19,6 +19,7 @@ from web import views
 urlpatterns = [
     url(r'assignments$', views.assignments, name='web.views.assignments'),
     url(r'assignments/details/(?P<id>\d+)$', views.assignment_details, name='web.views.assignment_details'),
+    url(r'assignments/add/(?P<id>\d+)$', views.assignment_add, name='web.views.assignment_add'),
 
     url(r'visits$', views.visits, name='web.views.visits'),
     url(r'visits/details/(?P<id>\d+)$', views.visit_details, name='web.views.visit_details'),
diff --git a/smash/web/views.py b/smash/web/views.py
index 30b06e6e6cf586b7386c2df72fdb6c1d7bb6f5e5..bb4b1a28479bcd509ce1f816b19803bc189a4574 100644
--- a/smash/web/views.py
+++ b/smash/web/views.py
@@ -65,12 +65,13 @@ def visits(request):
 def visit_details(request, id):
 	displayedVisit = Visit.objects.get(id=id)
 	visFinished = displayedVisit.is_finished
+	vid = displayedVisit.id
 	displayedSubject = displayedVisit.subject
 	listOfAppointments = displayedVisit.appointment_set.all()
 	vform = VisitDetailForm(instance=displayedVisit)
 	sform = SubjectDetailForm(instance=displayedSubject)
 
-	return wrap_response(request, 'visits/details.html', {'vform': vform, 'sform': sform, 'loApp': listOfAppointments, 'visFinished': visFinished})
+	return wrap_response(request, 'visits/details.html', {'vform': vform, 'sform': sform, 'loApp': listOfAppointments, 'visFinished': visFinished, 'vid': vid})
 
 
 def visit_add(request):
@@ -240,3 +241,17 @@ def assignments(request):
 def assignment_details(request, id):
 	form = AppointmentDetailForm(instance=Appointment.objects.get(id=id))
 	return wrap_response(request, 'assignments/details.html', {'form': form})
+
+
+def assignment_add(request, id):
+	if request.method == 'POST':
+		form = AppointmentAddForm(request.POST, request.FILES)
+		if form.is_valid():
+			form.save()
+			return redirect(visit_details, id=id)
+	else:
+		form = AppointmentAddForm(initial={'visit': id})
+		form.fields['visit'].widget = forms.HiddenInput()
+
+	vid = id
+	return wrap_response(request, 'assignments/add.html', {'form': form, 'visitID': vid})