diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..6e87a00
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# Editor configuration, see http://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..82bebc4
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,16 @@
+## Contributing
+
+### Reporting Issues
+
+Fill out the template as completely as possible.
+
+The more information you can provide, the easier it is to research your issue.
+
+### Development
+
+Fork the repository and make your changes on the `dev` branch.
+
+Create a pull request against the `dev` branch to merge your changes with
+the main repository.
+
+Make sure to include/update unit tests.
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..dc04c3b
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,2 @@
+github: kiswa
+custom: "https://paypal.me/kiswacom"
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..ba8c703
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,31 @@
+---
+name: Bug report
+about: Found a bug with TaskBoard?
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Please complete the following information:**
+- OS: [e.g. Windows 10]
+- Browser [e.g. Chrome, Firefox]
+- Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..e6c0c17
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Got an idea for TaskBoard?
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/boards.png b/.github/boards.png
new file mode 100644
index 0000000..164d163
Binary files /dev/null and b/.github/boards.png differ
diff --git a/.github/settings.png b/.github/settings.png
new file mode 100644
index 0000000..3d82df6
Binary files /dev/null and b/.github/settings.png differ
diff --git a/.github/tasks.png b/.github/tasks.png
new file mode 100644
index 0000000..45e1e2b
Binary files /dev/null and b/.github/tasks.png differ
diff --git a/.gitignore b/.gitignore
index f79ccce..94385d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,52 @@
-api/taskboard.db
-api/uploads/*
-tags
-.idea/*
-vendor/
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/dist-server
+/tmp
+/out-tsc
+
+# dependencies
+/node_modules
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+yarn-error.log
+testem.log
+/typings
+.phpunit.result.cache
+
+# e2e
+/e2e/*.js
+/e2e/*.map
+
+# System Files
+.DS_Store
+Thumbs.db
+
+# Project Specific Files
+/src/api/vendor
+*.db
+*.sqlite
+*.zip
+
diff --git a/.htaccess b/.htaccess
deleted file mode 100644
index 298b0d3..0000000
--- a/.htaccess
+++ /dev/null
@@ -1,18 +0,0 @@
-# Thanks to GliderPro's comment on Issue 102
-SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
-
-
No text
"; - } - }; - - // Takes an array of timestamps and converts them to display dates. - var convertDates = function(timestampArray) { - if (undefined === timestampArray) { - return; - } - - var date = new Date(); - timestampArray.forEach(function(item) { - date.setTime(item.timestamp * 1000); - item.date = date.toLocaleString(); - }); - }, - updateItem = function(item) { - $scope.viewItem = item; - $scope.viewItem.laneName = $scope.laneNames[item.lane_id]; - convertDates($scope.viewItem.ownComment); - convertDates($scope.viewItem.ownAttachment); - convertDates($scope.viewItem.ownActivity); - }; - - $scope.setColor = function(item) { - var color = item.color; - if (item.color != $scope.currentBoard.ownCategory[0].color) - return item.color; - $scope.currentBoard.ownCategory.forEach(function(cat) { - if(cat.id == item.category) { - color = cat.color; - } - }); - return color; - } - - $scope.openItem = function(item, openModal) { - if (undefined === openModal) { - openModal = true; - } - updateItem(item); - $scope.viewItem.disabled = false; - - if (undefined === $scope.viewItem.ownComment) { - $scope.viewItem.ownComment = []; - } - if (undefined === $scope.viewItem.ownAttachment) { - $scope.viewItem.ownAttachment = []; - } - - $scope.fileReset = true; - - if (openModal) { - $('.itemViewModal textarea').css('height', 'auto'); - $('.itemViewModal').modal({ show: true, keyboard:false }); - } - }; - $scope.$parent.openItem = $scope.openItem; - - $scope.editItem = function() { - $scope.itemFormData.loadItem($scope.viewItem); - $('.itemViewModal').modal('hide'); - $('.itemModal').modal('show'); - } - - $scope.deleteItem = function() { - noty({ - text: 'Deleting an item cannot be undone.