diff --git a/starter/.gitignore b/starter/.gitignore
deleted file mode 100644
index 7af7f04..0000000
--- a/starter/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-.env
\ No newline at end of file
diff --git a/starter/app.js b/starter/app.js
deleted file mode 100644
index ead4ded..0000000
--- a/starter/app.js
+++ /dev/null
@@ -1 +0,0 @@
-console.log('Task Manager App')
diff --git a/starter/package.json b/starter/package.json
deleted file mode 100644
index 12487e7..0000000
--- a/starter/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "jobs",
- "version": "1.0.0",
- "description": "",
- "main": "app.js",
- "scripts": {
- "start": "nodemon app.js"
- },
- "keywords": [],
- "author": "",
- "license": "ISC",
- "dependencies": {
- "dotenv": "^8.2.0",
- "express": "^4.17.1",
- "mongoose": "^5.11.10"
- },
- "devDependencies": {
- "nodemon": "^2.0.7"
- }
-}
diff --git a/starter/public/browser-app.js b/starter/public/browser-app.js
deleted file mode 100644
index 21af4b9..0000000
--- a/starter/public/browser-app.js
+++ /dev/null
@@ -1,87 +0,0 @@
-const tasksDOM = document.querySelector('.tasks')
-const loadingDOM = document.querySelector('.loading-text')
-const formDOM = document.querySelector('.task-form')
-const taskInputDOM = document.querySelector('.task-input')
-const formAlertDOM = document.querySelector('.form-alert')
-// Load tasks from /api/tasks
-const showTasks = async () => {
- loadingDOM.style.visibility = 'visible'
- try {
- const {
- data: { tasks },
- } = await axios.get('/api/v1/tasks')
- if (tasks.length < 1) {
- tasksDOM.innerHTML = '
No tasks in your list
'
- loadingDOM.style.visibility = 'hidden'
- return
- }
- const allTasks = tasks
- .map((task) => {
- const { completed, _id: taskID, name } = task
- return ``
- })
- .join('')
- tasksDOM.innerHTML = allTasks
- } catch (error) {
- tasksDOM.innerHTML =
- 'There was an error, please try later....
'
- }
- loadingDOM.style.visibility = 'hidden'
-}
-
-showTasks()
-
-// delete task /api/tasks/:id
-
-tasksDOM.addEventListener('click', async (e) => {
- const el = e.target
- if (el.parentElement.classList.contains('delete-btn')) {
- loadingDOM.style.visibility = 'visible'
- const id = el.parentElement.dataset.id
- try {
- await axios.delete(`/api/v1/tasks/${id}`)
- showTasks()
- } catch (error) {
- console.log(error)
- }
- }
- loadingDOM.style.visibility = 'hidden'
-})
-
-// form
-
-formDOM.addEventListener('submit', async (e) => {
- e.preventDefault()
- const name = taskInputDOM.value
-
- try {
- await axios.post('/api/v1/tasks', { name })
- showTasks()
- taskInputDOM.value = ''
- formAlertDOM.style.display = 'block'
- formAlertDOM.textContent = `success, task added`
- formAlertDOM.classList.add('text-success')
- } catch (error) {
- formAlertDOM.style.display = 'block'
- formAlertDOM.innerHTML = `error, please try again`
- }
- setTimeout(() => {
- formAlertDOM.style.display = 'none'
- formAlertDOM.classList.remove('text-success')
- }, 3000)
-})
diff --git a/starter/public/edit-task.js b/starter/public/edit-task.js
deleted file mode 100644
index 3bd0eed..0000000
--- a/starter/public/edit-task.js
+++ /dev/null
@@ -1,67 +0,0 @@
-const taskIDDOM = document.querySelector('.task-edit-id')
-const taskNameDOM = document.querySelector('.task-edit-name')
-const taskCompletedDOM = document.querySelector('.task-edit-completed')
-const editFormDOM = document.querySelector('.single-task-form')
-const editBtnDOM = document.querySelector('.task-edit-btn')
-const formAlertDOM = document.querySelector('.form-alert')
-const params = window.location.search
-const id = new URLSearchParams(params).get('id')
-let tempName
-
-const showTask = async () => {
- try {
- const {
- data: { task },
- } = await axios.get(`/api/v1/tasks/${id}`)
- const { _id: taskID, completed, name } = task
-
- taskIDDOM.textContent = taskID
- taskNameDOM.value = name
- tempName = name
- if (completed) {
- taskCompletedDOM.checked = true
- }
- } catch (error) {
- console.log(error)
- }
-}
-
-showTask()
-
-editFormDOM.addEventListener('submit', async (e) => {
- editBtnDOM.textContent = 'Loading...'
- e.preventDefault()
- try {
- const taskName = taskNameDOM.value
- const taskCompleted = taskCompletedDOM.checked
-
- const {
- data: { task },
- } = await axios.patch(`/api/v1/tasks/${id}`, {
- name: taskName,
- completed: taskCompleted,
- })
-
- const { _id: taskID, completed, name } = task
-
- taskIDDOM.textContent = taskID
- taskNameDOM.value = name
- tempName = name
- if (completed) {
- taskCompletedDOM.checked = true
- }
- formAlertDOM.style.display = 'block'
- formAlertDOM.textContent = `success, edited task`
- formAlertDOM.classList.add('text-success')
- } catch (error) {
- console.error(error)
- taskNameDOM.value = tempName
- formAlertDOM.style.display = 'block'
- formAlertDOM.innerHTML = `error, please try again`
- }
- editBtnDOM.textContent = 'Edit'
- setTimeout(() => {
- formAlertDOM.style.display = 'none'
- formAlertDOM.classList.remove('text-success')
- }, 3000)
-})
diff --git a/starter/public/favicon.ico b/starter/public/favicon.ico
deleted file mode 100644
index fd350db..0000000
Binary files a/starter/public/favicon.ico and /dev/null differ
diff --git a/starter/public/index.html b/starter/public/index.html
deleted file mode 100644
index 9f5d52b..0000000
--- a/starter/public/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Task Manager
-
-
-
-
-
-
-
-
-
diff --git a/starter/public/main.css b/starter/public/main.css
deleted file mode 100644
index 3f3f394..0000000
--- a/starter/public/main.css
+++ /dev/null
@@ -1,446 +0,0 @@
-@import url('https://fonts.googleapis.com/css?family=Montserrat:400|Inconsolata:400');
-*,
-::after,
-::before {
- box-sizing: border-box;
-}
-:root {
- /* COLORS */
- /* primary */
- --primary-0: #f0efff;
- --primary-50: #d8d6ff;
- --primary-100: #c1beff;
- --primary-200: #aaa5ff;
- --primary-300: #938dff;
- --primary-400: #7b74ff;
- /* main */
- --primary-500: #645cff;
- --primary-600: #554ed9;
- --primary-700: #4640b3;
- --primary-800: #37338c;
- --primary-900: #282566;
- --primary-1000: #191740;
- --primary-1100: #0a0919;
- /* grey */
- --grey-0: #fafbfc;
- --grey-50: #f2f4f8;
- --grey-100: #eaedf3;
- --grey-200: #e2e7ef;
- --grey-300: #dbe0ea;
- --grey-400: #d3dae6;
- --grey-500: #cbd3e1;
- --grey-600: #adb3bf;
- --grey-700: #8e949e;
- --grey-800: #70747c;
- --grey-900: #51545a;
- --grey-1000: #333538;
- --grey-1100: #141516;
-
- /* rest */
- --black: #222;
- --white: #fff;
- --red-light: #f8d7da;
- --red-dark: #842029;
- --green-light: #d1e7dd;
- --green-dark: #0f5132;
-
- /* typography */
- --headingFont: 'Inconsolata', monospace;
- --bodyFont: 'Montserrat', sans-serif;
- --smallText: 0.7em;
- /* rest */
- --backgroundColor: var(--grey-50);
- --textColor: var(--grey-1000);
- --borderRadius: 0.25rem;
- --letterSpacing: 1px;
- --transition: 0.3s ease-in-out all;
- --max-width: 1120px;
- --fixed-width: 600px;
- /* box shadows */
- --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
- --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
- 0 2px 4px -1px rgba(0, 0, 0, 0.06);
- --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
- 0 4px 6px -2px rgba(0, 0, 0, 0.05);
- --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
- 0 10px 10px -5px rgba(0, 0, 0, 0.04);
-}
-
-html {
- font-size: 112.5%;
-}
-
-body {
- background: var(--backgroundColor);
- color: var(--textColor);
- font-family: var(--bodyFont);
- font-weight: 400;
- line-height: 1.75;
-}
-
-p {
- margin-bottom: 1.5rem;
- max-width: 40em;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5 {
- margin: 0;
- margin-bottom: 1.38rem;
- font-family: var(--headingFont);
- font-weight: 400;
- line-height: 1.3;
- text-transform: capitalize;
- letter-spacing: var(--letterSpacing);
-}
-
-h1 {
- font-size: 3.052rem;
-}
-
-h2 {
- font-size: 2.441rem;
-}
-
-h3 {
- font-size: 1.953rem;
-}
-
-h4 {
- font-size: 1.563rem;
-}
-
-h5 {
- font-size: 1.25rem;
-}
-
-small,
-.text-small {
- font-size: var(--smallText);
-}
-
-ul {
- padding: 0;
- list-style-type: none;
-}
-a {
- text-decoration: none;
-}
-/*************
- Buttons
-*************/
-
-.btn {
- cursor: pointer;
- appearance: none;
- color: var(--white);
- background: var(--primary-500);
- border: none;
- border-radius: var(--borderRadius);
- letter-spacing: var(--letterSpacing);
- padding: 0.375rem 0.75rem;
- box-shadow: var(--shadow-1);
- transition: var(--transition);
- text-transform: capitalize;
-}
-
-.btn:hover {
- color: var(--white);
- background: var(--primary-700);
- box-shadow: var(--shadow-2);
-}
-button.small {
- padding: 0.25rem 0.5rem;
- font-size: var(--smallText);
-}
-button.hipster {
- color: var(--primary-500);
- background: var(--primary-50);
- box-shadow: var(--shadow-1);
-}
-button.hipster:hover {
- background: var(--primary-100);
- box-shadow: var(--shadow-2);
-}
-button.block {
- width: 100%;
-}
-
-/*************
- FORM
-*************/
-form {
- width: 100%;
- background: var(--white);
- border-radius: var(--borderRadius);
- box-shadow: var(--shadow-2);
- padding: 2rem 2.5rem;
-}
-label {
- display: block;
- font-size: var(--smallText);
- margin-bottom: 0.5rem;
- text-transform: capitalize;
-}
-
-input,
-textarea {
- width: 100%;
- padding: 0.375rem 0.75rem;
- border-radius: var(--borderRadius);
- background: var(--grey-50);
- border-color: transparent;
- border: 1px solid var(--grey-300);
-}
-.form-row {
- margin-bottom: 1rem;
-}
-textarea {
- width: 100%;
- height: 7rem;
-}
-
-::placeholder {
- color: var(--grey-600);
-}
-.form-alert {
- color: var(--red-dark);
- letter-spacing: var(--letterSpacing);
- text-transform: capitalize;
-}
-
-.task-form,
-.single-task-form {
- width: 90vw;
- max-width: var(--fixed-width);
- margin: 0 auto;
- margin-top: 6rem;
-}
-.task-form h4 {
- text-align: center;
-}
-.task-form .form-alert {
- margin-top: 1rem;
-}
-.submit-btn {
- width: 100%;
- margin-top: 1rem;
-}
-@media screen and (min-width: 576px) {
- .form-control {
- display: flex;
- }
- .task-input {
- border-radius: 0;
- border-top-left-radius: var(--borderRadius);
- border-bottom-left-radius: var(--borderRadius);
- }
- .submit-btn {
- margin-top: 0;
- width: 175px;
- border-radius: 0;
- border-top-right-radius: var(--borderRadius);
- border-bottom-right-radius: var(--borderRadius);
- }
-}
-form > :first-child {
- margin-top: 0;
-}
-form > :last-child {
- margin-bottom: 0;
-}
-/* Basic Classes */
-.alert {
- padding: 0.375rem 0.75rem;
- margin-bottom: 1rem;
- border-color: transparent;
- border-radius: var(--borderRadius);
-}
-
-.alert-success {
- color: var(--green-dark);
- background-color: var(--green-light);
-}
-.alert-danger {
- color: var(--red-dark);
- background-color: var(--red-light);
-}
-.text-danger {
- color: var(--red-dark);
-}
-.text-success {
- color: var(--green-dark);
-}
-/* loading */
-@keyframes spinner {
- to {
- transform: rotate(360deg);
- }
-}
-
-.loading {
- width: 6rem;
- height: 6rem;
- border-radius: 50%;
- border: 3px solid #ccc;
- border-top-color: var(--clr-primary-5);
- animation: spinner 0.6s linear infinite;
-}
-.loading {
- margin: 0 auto;
-}
-/* form loading */
-
-.form-loading {
- position: relative;
-}
-.form-loading::before {
- background: var(--white);
- position: absolute;
- content: '';
- height: 100%;
- width: 100%;
- top: 0;
- left: 0;
- border-radius: var(--borderRadius);
- opacity: 0.8;
-}
-
-.form-loading::after {
- content: '';
- position: absolute;
- top: calc(50% - 3rem);
- left: calc(50% - 3rem);
- width: 6rem;
- height: 6rem;
- border-radius: 50%;
- border: 3px solid #ccc;
- border-top-color: var(--clr-primary-5);
- animation: spinner 0.6s linear infinite;
-}
-
-/*************
- TASKS
-*************/
-.empty-list {
- text-align: center;
-}
-.tasks-container {
- width: 100%;
- width: 90vw;
- max-width: var(--fixed-width);
- margin: 0 auto;
- margin-top: 2rem;
- padding-bottom: 4rem;
-}
-.tasks {
- display: grid;
- gap: 1rem;
-}
-.single-task {
- padding: 1rem 2.5rem;
- background: var(--white);
- border-radius: var(--borderRadius);
- box-shadow: var(--shadow-2);
- transition: var(--transition);
- display: flex;
- justify-content: space-between;
- align-items: center;
-}
-.single-task:hover {
- box-shadow: var(--shadow-4);
-}
-.single-task h5 {
- margin-bottom: 0;
-}
-.single-task span {
- display: inline-block;
- width: 0.5rem;
- height: 0.5rem;
- margin-left: -1.25rem;
- margin-right: 1.5rem;
-}
-.single-task .fa-check-circle {
- font-size: 1rem;
- color: var(--green-dark);
- visibility: hidden;
-}
-.task-completed h5 {
- text-decoration: line-through;
-}
-.task-completed .fa-check-circle {
- visibility: visible;
-}
-.loading-text {
- visibility: hidden;
-}
-/* Task Links */
-.task-links {
- display: flex;
- align-items: center;
- gap: 0 0.5rem;
-}
-.delete-btn,
-.edit-link {
- background: transparent;
- font-size: 0.75rem;
- border: transparent;
- cursor: pointer;
-}
-.edit-link {
- color: var(--green-dark);
-}
-.delete-btn {
- color: var(--red-dark);
-}
-
-/*************
- SINGLE TASK
-*************/
-
-.single-task-form h4 {
- text-align: center;
-}
-
-.single-task-form p {
- margin-bottom: 0;
- margin-top: 0;
-}
-
-.single-task-form .form-control {
- display: grid;
- grid-template-columns: 150px 1fr;
- align-items: center;
- justify-items: start;
- gap: 0 1rem;
- margin-bottom: 0.75rem;
-}
-
-.single-task-form label {
- margin-bottom: 0;
- font-size: 1rem;
-}
-
-.task-edit-completed {
- width: auto;
-}
-.back-link {
- display: block;
- width: 250px;
- margin: 0 auto;
- text-align: center;
- margin-top: 6rem;
- background: var(--black);
-}
-.back-link:hover {
- background: var(--black);
- opacity: 0.75;
-}
-
-.single-task-form .form-alert {
- text-align: center;
- margin-top: 1rem;
-}
diff --git a/starter/public/normalize.css b/starter/public/normalize.css
deleted file mode 100644
index 2768db4..0000000
--- a/starter/public/normalize.css
+++ /dev/null
@@ -1,351 +0,0 @@
-/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
-
-/* Document
- ========================================================================== */
-
-/**
- * 1. Correct the line height in all browsers.
- * 2. Prevent adjustments of font size after orientation changes in iOS.
- */
-
-html {
- line-height: 1.15; /* 1 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/* Sections
- ========================================================================== */
-
-/**
- * Remove the margin in all browsers.
- */
-
-body {
- margin: 0;
-}
-
-/**
- * Render the `main` element consistently in IE.
- */
-
-main {
- display: block;
-}
-
-/**
- * Correct the font size and margin on `h1` elements within `section` and
- * `article` contexts in Chrome, Firefox, and Safari.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * 1. Add the correct box sizing in Firefox.
- * 2. Show the overflow in Edge and IE.
- */
-
-hr {
- box-sizing: content-box; /* 1 */
- height: 0; /* 1 */
- overflow: visible; /* 2 */
-}
-
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-
-pre {
- font-family: monospace, monospace; /* 1 */
- font-size: 1em; /* 2 */
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Remove the gray background on active links in IE 10.
- */
-
-a {
- background-color: transparent;
-}
-
-/**
- * 1. Remove the bottom border in Chrome 57-
- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
- */
-
-abbr[title] {
- border-bottom: none; /* 1 */
- text-decoration: underline; /* 2 */
- text-decoration: underline dotted; /* 2 */
-}
-
-/**
- * Add the correct font weight in Chrome, Edge, and Safari.
- */
-
-b,
-strong {
- font-weight: bolder;
-}
-
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-
-code,
-kbd,
-samp {
- font-family: monospace, monospace; /* 1 */
- font-size: 1em; /* 2 */
-}
-
-/**
- * Add the correct font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` elements from affecting the line height in
- * all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Remove the border on images inside links in IE 10.
- */
-
-img {
- border-style: none;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * 1. Change the font styles in all browsers.
- * 2. Remove the margin in Firefox and Safari.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit; /* 1 */
- font-size: 100%; /* 1 */
- line-height: 1.15; /* 1 */
- margin: 0; /* 2 */
-}
-
-/**
- * Show the overflow in IE.
- * 1. Show the overflow in Edge.
- */
-
-button,
-input {
- /* 1 */
- overflow: visible;
-}
-
-/**
- * Remove the inheritance of text transform in Edge, Firefox, and IE.
- * 1. Remove the inheritance of text transform in Firefox.
- */
-
-button,
-select {
- /* 1 */
- text-transform: none;
-}
-
-/**
- * Correct the inability to style clickable types in iOS and Safari.
- */
-
-button,
-[type='button'],
-[type='reset'],
-[type='submit'] {
- -webkit-appearance: button;
-}
-
-/**
- * Remove the inner border and padding in Firefox.
- */
-
-button::-moz-focus-inner,
-[type='button']::-moz-focus-inner,
-[type='reset']::-moz-focus-inner,
-[type='submit']::-moz-focus-inner {
- border-style: none;
- padding: 0;
-}
-
-/**
- * Restore the focus styles unset by the previous rule.
- */
-
-button:-moz-focusring,
-[type='button']:-moz-focusring,
-[type='reset']:-moz-focusring,
-[type='submit']:-moz-focusring {
- outline: 1px dotted ButtonText;
-}
-
-/**
- * Correct the padding in Firefox.
- */
-
-fieldset {
- padding: 0.35em 0.75em 0.625em;
-}
-
-/**
- * 1. Correct the text wrapping in Edge and IE.
- * 2. Correct the color inheritance from `fieldset` elements in IE.
- * 3. Remove the padding so developers are not caught out when they zero out
- * `fieldset` elements in all browsers.
- */
-
-legend {
- box-sizing: border-box; /* 1 */
- color: inherit; /* 2 */
- display: table; /* 1 */
- max-width: 100%; /* 1 */
- padding: 0; /* 3 */
- white-space: normal; /* 1 */
-}
-
-/**
- * Add the correct vertical alignment in Chrome, Firefox, and Opera.
- */
-
-progress {
- vertical-align: baseline;
-}
-
-/**
- * Remove the default vertical scrollbar in IE 10+.
- */
-
-textarea {
- overflow: auto;
-}
-
-/**
- * 1. Add the correct box sizing in IE 10.
- * 2. Remove the padding in IE 10.
- */
-
-[type='checkbox'],
-[type='radio'] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Correct the cursor style of increment and decrement buttons in Chrome.
- */
-
-[type='number']::-webkit-inner-spin-button,
-[type='number']::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Correct the odd appearance in Chrome and Safari.
- * 2. Correct the outline style in Safari.
- */
-
-[type='search'] {
- -webkit-appearance: textfield; /* 1 */
- outline-offset: -2px; /* 2 */
-}
-
-/**
- * Remove the inner padding in Chrome and Safari on macOS.
- */
-
-[type='search']::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * 1. Correct the inability to style clickable types in iOS and Safari.
- * 2. Change font properties to `inherit` in Safari.
- */
-
-::-webkit-file-upload-button {
- -webkit-appearance: button; /* 1 */
- font: inherit; /* 2 */
-}
-
-/* Interactive
- ========================================================================== */
-
-/*
- * Add the correct display in Edge, IE 10+, and Firefox.
- */
-
-details {
- display: block;
-}
-
-/*
- * Add the correct display in all browsers.
- */
-
-summary {
- display: list-item;
-}
-
-/* Misc
- ========================================================================== */
-
-/**
- * Add the correct display in IE 10+.
- */
-
-template {
- display: none;
-}
-
-/**
- * Add the correct display in IE 10.
- */
-
-[hidden] {
- display: none;
-}
diff --git a/starter/public/task.html b/starter/public/task.html
deleted file mode 100644
index 7b90525..0000000
--- a/starter/public/task.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- Edit Task
-
-
-
-
-
-
-
-
-