weston-bailey / innervue

Giving job applicants the key tools to ace the interview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

innervue

Mission Statement

Giving job applicants the key tools to ace the interview.

Project Structure

Team members and their roles:

Team Name: WNK (aka 'The Winkers')

Wes:

  • GIT Master
  • README
  • ERD/Database Manager
  • Full-Stack Developer

Neri:

  • Product Manager
  • Full-Stack Developer
  • Scrum Master
  • Pitch Deck
  • Design

Karly:

  • Organization
  • Research
  • Wireframes
  • Full-Stack Developer

Wireframes

MVP

[X] User can login and respond to interview questions

[X] User can choose from a variety of interview questions

[X] User can respond with speech or writing

[X] User is given feedback on their response to interview questions using sentiment analysis

[X] User can view past responses and their analysis

[X] User can revisit past question to try them again

Stretch Goals

[ ] Integrate career tips using muse API (side bar with taglines, user can save links to database)

[ ] Calendar function allows user to enter interview milestones

Technologies We Used

Frameworks

  • React
  • Express
  • Node.js

Database

  • MongoDB
  • Mongoose

Sentiment Analysis APIs

  • IBM Watson
  • Google Cloud Natural Language > Analyze Sentiment > Analyze Entity Sentiment

HTTP requests

  • axios
  • fetch

Styling Framework

Node packages

  • Material-UI link
  • React Speech Recognition link

Auth Tools

  • Bcrypt
  • Passport
  • Cors
  • JSON Webtoken

Project Planning

Time Management Plan

Daily activity calendar To-dos per person and team goals Morning and evening check-ins Miro Board

Project Folder Organization

.
├── src
│   ├── file11.ext
│   └── file12.ext
├── dir2
│   ├── file21.ext
│   ├── file22.ext
│   └── file23.ext
├── dir3
├── file_in_root.ext
└── README.md

React routes

HTTP Path Component Auth Required
/
/login
/feedback
/myresponses

API routes (express)

HTTP Verb Route Request Response Auth Required
GET /api/v1/:userId
POST /api/v1/ TODO

Major Components

App
├── NavBar
│   ├── Component
│   └── Component
├── Component
│   ├── Component
│   ├── Component
│   │   └── Component
│   └── Component
├── Component
│   ├── Component
│   └── Component
│       └── Component
├── Component
└── Component

Database model

const mongoose = require('mongoose');

const answeredQuestionSchema = new mongoose.Schema({
  category: String,
  content: String,
  analysis: {
    key1: String,
    key2: String
  }
}, {
  timestamps: true
})

const userSchema = new mongoose.Schema({
    firstName: {
      type: String,
      required: true,
      minlength: 1,
      maxlength: 100
    },
    lastName: {
      type: String,
      required: true,
      minlength: 1,
      maxlength: 100
    },
    email: {
      type: String,
      required: true,
      unique: true
    }, 
    password: {
      type: String,
      required: true,
      minlength: 8,
      maxlength: 100
    },
    answeredQuestions: [answeredQuestionSchema]
  }, {
  timestamps: true
  }
);

Questions data model

// array of questions
const questions = [
  // each category is an array
 [
    // questions are objects
    {
      category: 'category 1',
      content: 'this is question content?',

    },
    {
      category: 'category 1',
      content: 'this is question content?',
    }
  ],
 [
    {
      category: 'category 2',
      content: 'this is question content?',

    },
    {
      category: 'category 2',
      content: 'this is question content?',
    }
  ],

]

About

Giving job applicants the key tools to ace the interview


Languages

Language:JavaScript 97.4%Language:HTML 1.5%Language:CSS 1.1%