Issue Tracker Project with testable user stories - Guinea Pigs needed 🐹

This project will be part of our new Quality Assurance and Information Security section. It was designed by @JosephLivengood.

The goal is for campers to be able to build these projects step by step following user stories. This will make the projects less intimidating and more fun. Oh, and don’t worry - we’ll still have plenty of optional projects where we don’t provide you with any tests. And if you’ve previously built these projects, you don’t need to build them again.

If you’re interested in attempting this, please reply to the thread and let us know you’ve started it. The more people who want to build this, the better, as we can start gathering feedback.

Thanks, and happy coding!

User Stories

  • Prevent cross site scripting(XSS attack).
  • I can POST /api/issues/{projectname} with form data containing required issue_title, issue_text, created_by, and optional assigned_to and status_text.
  • The object saved (and returned) will include all of those fields (blank for optional no input) and also include created_on(date/time), updated_on(date/time), open(boolean, true for open, false for closed), and _id.
  • I can PUT /api/issues/{projectname} with a _id 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 updated_on. If no fields are sent return ‘no updated field sent’.
  • I can DELETE /api/issues/{projectname} with a _id to completely delete an issue. If no _id is sent return ‘_id error’, success: 'deleted '+_id, failed: 'could not delete '+_id.
  • I can GET /api/issues/{projectname} for an array of all issues on that specific project with all the information for each issue as was returned when posted.
  • I can filter my get request by also passing along any field and value in the query(ie. /api/issues/{project}?open=false). I can pass along as many fields/values as I want.
  • All 11 functional tests are complete and passing.

Prototype: protective-garage

Boilerplate: fcc-issue

User-stories: index

Tester (ISQA_4 - Issue Tracker):

Nearly finished this, noticed that in the index.html file there are two formed called testForm2 at least on the github. Made me stuck for a bit.

I am confused at the purpose of the {project} part. Is it suppose to load a similar page as the index if you enter in the /api/issues/{projectname} and then you can specify what the project name is there or is there some other way to specify the project name through the submit