feat: Update Boilerplate to match Refactored User Stories (#15)
* Initial Refactor * Updated Tests, Added samples files, removed user stories * Add `dotenv` package * Update assertion-analyser.js Co-authored-by: Shaun Hamilton <51722130+Sky020@users.noreply.github.com> * Update assertion-analyser.js Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> * Update assertion-analyser.js Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com> * Remove unneeded files * Remove unneeded Code Co-authored-by: SaintPeter <rex.schrader@gmail.com> Co-authored-by: Shaun Hamilton <51722130+Sky020@users.noreply.github.com> Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
This commit is contained in:
committed by
GitHub
parent
46d8807939
commit
1d7e913ee7
+32
-27
@@ -1,42 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Welcome to HyperDev!</title>
|
||||
<meta name="description" content="A cool thing made with HyperDev">
|
||||
<link id="favicon" rel="icon" href="https://hyperdev.com/favicon-app.ico" type="image/x-icon">
|
||||
<title>Issue Tracker</title>
|
||||
<link rel="icon" type="image/png" href="https://cdn.freecodecamp.org/universal/favicons/favicon-16x16.png" />
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="/public/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>
|
||||
ISQA_4 - Issue Tracker
|
||||
Issue Tracker
|
||||
</h1>
|
||||
</header>
|
||||
<div id='userstories' style='margin-left: 5%; margin-top: 5%'>
|
||||
<h3>User Stories</h3>
|
||||
<ol>
|
||||
<li>I can <b>POST</b> <code>/api/issues/{projectname}</code> with form data containing required <i>issue_title</i>, <i>issue_text</i>, <i>created_by</i>, and optional <i>assigned_to</i> and <i>status_text</i>.</li>
|
||||
<li>The object saved (and returned) will include all of those fields (blank for optional no input) and also include <i>created_on</i>(date/time), <i>updated_on</i>(date/time), <i>open</i>(boolean, true for open, false for closed), and <i>_id</i>.</li>
|
||||
<li>I can <b>PUT</b> <code>/api/issues/{projectname}</code> with a <i>_id</i> and any fields in the object with a value to object said object. Returned will be 'successfully updated' or 'could not update '+_id. This should always update <i>updated_on</i>. If no fields are sent return 'no updated field sent'.</li>
|
||||
<li>I can <b>DELETE</b> <code>/api/issues/{projectname}</code> with a <i>_id</i> to completely delete an issue. If no _id is sent return '_id error', success: 'deleted '+_id, failed: 'could not delete '+_id.</li>
|
||||
<li>I can <b>GET</b> <code>/api/issues/{projectname}</code> for an array of all issues on that specific project with all the information for each issue as was returned when posted.</li>
|
||||
<li>I can filter my get request by also passing along any field and value in the query(ie. <code>/api/issues/{project}?open=false</code>). I can pass along as many fields/values as I want.</li>
|
||||
<li>All 11 functional tests are complete and passing.</li>
|
||||
</ol>
|
||||
<br>
|
||||
<h3>Example get usage:</h3>
|
||||
<section style="margin: 0 50px;">
|
||||
<h3>Example <code>GET</code> usage</h3>
|
||||
<code>/api/issues/{project}</code><br>
|
||||
<code>/api/issues/{project}?open=true&assigned_to=Joe</code><br>
|
||||
<h3>Example return:</h3>
|
||||
<code>[{"_id":"5871dda29faedc3491ff93bb","issue_title":"Fix error in posting data","issue_text":"When we post data it has an error.","created_on":"2017-01-08T06:35:14.240Z","updated_on":"2017-01-08T06:35:14.240Z","created_by":"Joe","assigned_to":"Joe","open":true,"status_text":"In QA"},...]</code>
|
||||
<br><br>
|
||||
<h2><a href='/apitest/'>EXAMPLE: Go to <i>/apitest/</i> project issues</a></h2>
|
||||
</div>
|
||||
<hr style='margin: 50px'>
|
||||
<div id='testui' style='margin-left: 5%'>
|
||||
<h2 style="text-align: left">API Tests:</h2>
|
||||
<h3>Example return</h3>
|
||||
<pre>
|
||||
<code>[
|
||||
{
|
||||
"_id": "5871dda29faedc3491ff93bb",
|
||||
"issue_title": "Fix error in posting data",
|
||||
"issue_text": "When we post data it has an error.",
|
||||
"created_on": "2017-01-08T06:35:14.240Z",
|
||||
"updated_on": "2017-01-08T06:35:14.240Z",
|
||||
"created_by": "Joe",
|
||||
"assigned_to": "Joe",
|
||||
"open": true,
|
||||
"status_text": "In QA"
|
||||
},
|
||||
...
|
||||
]
|
||||
</code>
|
||||
</pre>
|
||||
</section>
|
||||
<hr style='margin: 0 50px'>
|
||||
<section id='testui' style='margin-left: 50px;'>
|
||||
<h3>Examples</h3>
|
||||
Go to <a href='/api/issues/apitest/'><code>/api/issues/apitest/</code></a> project
|
||||
<h2 style="text-align: left">API Tests</h2>
|
||||
<h3>Submit issue on <i>apitest</i></h3>
|
||||
<form id="testForm" class="border">
|
||||
<input type="text" name="issue_title" placeholder="*Title" style="width: 100px" required=''><br>
|
||||
@@ -54,7 +59,7 @@
|
||||
<input type="text" name="created_by" placeholder="(opt)Created by" style="width: 100px"><br>
|
||||
<input type="text" name="assigned_to" placeholder="(opt)Assigned to" style="width: 100px"><br>
|
||||
<input type="text" name="status_text" placeholder="(opt)Status text" style="width: 100px"><br>
|
||||
<label><input type="checkbox" name="open" value=false> Check to close issue</label><br>
|
||||
<label><input type="checkbox" name="open" value="false"> Check to close issue</label><br>
|
||||
<button type="submit">Submit Issue</button>
|
||||
</form><br>
|
||||
<h3>Delete issue on <i>apitest</i></h3>
|
||||
@@ -63,7 +68,7 @@
|
||||
<button type="submit">Delete Issue</button>
|
||||
</form>
|
||||
<code id='jsonResult'></code>
|
||||
</div>
|
||||
</section>
|
||||
<hr style='margin: 50px; margin-top: 200px'>
|
||||
<!-- Your web-app is https, so your scripts need to be too -->
|
||||
<script src="https://code.jquery.com/jquery-2.2.1.min.js"
|
||||
|
||||
+9
-10
@@ -1,9 +1,8 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Welcome to HyperDev!</title>
|
||||
<meta name="description" content="A cool thing made with HyperDev">
|
||||
<link id="favicon" rel="icon" href="https://hyperdev.com/favicon-app.ico" type="image/x-icon">
|
||||
<title>Issue Tracker - Project Page</title>
|
||||
<link rel="icon" type="image/png" href="https://cdn.freecodecamp.org/universal/favicons/favicon-16x16.png" />
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
@@ -37,20 +36,20 @@
|
||||
crossorigin="anonymous"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
var currentProject = window.location.pathname.replace(/\//g, "");;
|
||||
var url = "/api/issues/"+currentProject;
|
||||
let currentProject = window.location.pathname.replace(/\//g, "");;
|
||||
let url = "/api/issues/"+currentProject;
|
||||
$('#projectTitle').text('All issues for: '+currentProject)
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
success: function(data)
|
||||
{
|
||||
var issues= [];
|
||||
let issues= [];
|
||||
data.forEach(function(ele) {
|
||||
console.log(ele);
|
||||
var openstatus;
|
||||
let openstatus;
|
||||
(ele.open) ? openstatus = 'open' : openstatus = 'closed';
|
||||
var single = [
|
||||
let single = [
|
||||
'<div class="issue '+openstatus+'">',
|
||||
'<p class="id">id: '+ele._id+'</p>',
|
||||
'<h3>'+ele.issue_title+' - ('+openstatus+')</h3>',
|
||||
@@ -82,7 +81,7 @@
|
||||
});
|
||||
|
||||
$('#issueDisplay').on('click','.closeIssue', function(e) {
|
||||
var url = "/api/issues/"+currentProject;
|
||||
let url = "/api/issues/"+currentProject;
|
||||
$.ajax({
|
||||
type: "PUT",
|
||||
url: url,
|
||||
@@ -92,7 +91,7 @@
|
||||
e.preventDefault();
|
||||
});
|
||||
$('#issueDisplay').on('click','.deleteIssue', function(e) {
|
||||
var url = "/api/issues/"+currentProject;
|
||||
let url = "/api/issues/"+currentProject;
|
||||
$.ajax({
|
||||
type: "DELETE",
|
||||
url: url,
|
||||
|
||||
Reference in New Issue
Block a user