diff --git a/db.sqlite3 b/db.sqlite3
index 498ec9f..2ab7428 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ
diff --git a/studentapp/static/css/ocr_form.css b/studentapp/static/css/ocr_form.css
new file mode 100644
index 0000000..1d5c231
--- /dev/null
+++ b/studentapp/static/css/ocr_form.css
@@ -0,0 +1,70 @@
+.vertical-center {
+ min-height: 100%;
+ min-height: 100vh;
+
+ display: flex;
+ align-items: center;
+}
+
+.form-container {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ flex: 1;
+ margin-left: 2vw;
+ margin-right: 2vw;
+ height: 80vh;
+}
+
+.input-container {
+ min-height: 5vh;
+ display: flex;
+ align-items: center;
+}
+
+.image-result-container {
+ display: flex;
+ flex: 1;
+}
+
+.image-container {
+ border-color: black;
+ border-width: medium;
+ border-style: dashed;
+ margin-right: 1vw;
+ flex: 1;
+}
+
+.image {
+ width: 100%;
+ height: 100%;
+ object-position: 0% 0%;
+ object-fit: scale-down;
+}
+
+.result-container {
+ border-style: dashed;
+ border-width: medium;
+ margin-left: 1vw;
+ flex: 1;
+ font-family: monospace;
+}
+
+.result-default {
+ border-color: black;
+}
+
+.result-error {
+ border-color: red;
+}
+
+.result-success {
+ border-color: green;
+}
+
+.button-container {
+ min-height: 5vh;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+}
diff --git a/studentapp/static/js/ocr_form.js b/studentapp/static/js/ocr_form.js
new file mode 100644
index 0000000..a9c431c
--- /dev/null
+++ b/studentapp/static/js/ocr_form.js
@@ -0,0 +1,41 @@
+$(document).ready(function() {
+ var $imageInput = $("[data-js-image-input]");
+ var $imageContainer = $("[data-js-image-container]");
+ var $resultContainer = $("[data-js-result-container]");
+ $imageInput.change(function(event) {
+ event.stopPropagation();
+ event.preventDefault();
+ var file = event.target.files[0];
+
+ var fileReader = new FileReader();
+ fileReader.onload = (function(theFile) {
+ return function(event) {
+ $imageContainer.html('');
+ };
+ })(file);
+ fileReader.readAsDataURL(file);
+ });
+ $("[data-js-go-button]").click(function(event) {
+ event.stopPropagation();
+ event.preventDefault();
+ data = new FormData();
+ data.append('image', $imageInput[0].files[0]);
+ $.post({
+ url: "ocr",
+ data: data,
+ cache: false,
+ contentType: false,
+ processData: false
+ }).done(function(data) {
+ console.log(data);
+ $resultContainer.removeClass("result-default result-error");
+ $resultContainer.addClass("result-success");
+ $resultContainer.html(data.utf8_text);
+ })
+ .fail(function(jqXHR) {
+ $resultContainer.removeClass("result-default result-success");
+ $resultContainer.addClass("result-error");
+ $resultContainer.html('I AM ERROR');
+ });
+ });
+});
diff --git a/studentapp/templates/ocr_form.html b/studentapp/templates/ocr_form.html
new file mode 100644
index 0000000..981f3d5
--- /dev/null
+++ b/studentapp/templates/ocr_form.html
@@ -0,0 +1,46 @@
+
+{% load static %}
+
+