eliasnebiyu / OCAT-Intern-Template

0 stars 0 forks source link

OCAT

Purpose and Context

ITSC Guidelines

Code Review Guidelines (reference this later when doing peer review)

Technologies

Architecture

The application must be architected with two "layers" using an API model and pseudo-Microservices (the "skeleton" for this has already been provided within the template repository you'll start with). Once the HTML page is rendered, all future communication between the client/server should be done using HTTP requests sending/receiving JSON.

Roles

Tasks

A. Setup

  1. Copy the Template Repository NOTE: You can name this whatever you want, just make certain that you leave it "Public" so that others can view your code
  2. Copy the Template Project Board
    • NOTE: This is something you should keep constantly up-to-date. It is how we will track your progress, and it will facilitate code review and collaboration with your OCAT internship peers.
  3. Add the Provided Issues to your Project Board

B. Get the Application Running

  1. Clone your new repository
  2. OCAT
    • Navigate into the directory
    • npm install
    • npm run build
    • Open a second terminal
      1. Terminal 1
        • npm run dev
      2. Terminal 2
        • npm run webpack:dev
  3. API
    • Navigate into the directory
    • npm install
    • npm run dev
  4. Database
  5. Verify that the config.json for both directories is correct
    • Begins as config.example.json and needs to be modified to match your environment

C. Requirements

  1. Allow Users to submit an assessment with the following information
    • NOTE: An "assessment" has a type, five questions, and two responses per question -> Use the example info here: OCAT Assessment Info
      • Instrument (text)
      • Cat Name (text) -> Example: Mr. Fluffykins
      • Cat Date of Birth (date)
      • Score (integer calculated by the sum of all responses)
      • Risk Level (text - low [0-1], medium [2-3], high [4-5] determined by the calculated score)
      • Audit log of when the assessment was created/deleted (datetime with timezone)
    • Recommend using React Hook Form
  2. Implement a bootstrap style template to make your site look presentable
    • NOTE: Do not spend too much time on this. We want the application to look good but not at the risk of hindering the overall completion of your project
  3. Allow Users and Supervisors to sort/search/filter/review submitted assessments from a list
    • Should only return non-deleted assessments
    • The list should include (at minimum) cat name, cat date of birth, instrument, score, risk level, and creation date
    • Recommend using React Table
  4. Allow Supervisors to log into the system
    • This must authenticate against the database using Bcrypt
  5. Allow Supervisors to delete assessment submissions
    • This should be a soft delete in the database (a soft delete does not remove the data from the database, it sets a flag on the record so it does not show up on the front-end)
    • Recommend using bookshelf-soft-delete
  6. Prepare your presentation!

Navigating the OCAT File Structure

OCAT File Structure Diagram

Resources

Advanced Resources