Skip to content

Drabin/sentiview

 
 

Repository files navigation

Sentiview

Sentiview provides a new way to interview, incorporating face analysis to help you make more informed decisions.

Table of Contents

  1. Usage
  2. Getting started
  3. Clone the latest version
  4. Install Dependencies
  5. Setup Environment Variables
  6. Start the application
  7. Technologies
  8. Architecture
  9. Team
  10. Contributing

Usage

Landing Page: landing_page

Login: login_page

Home: home_page

Record: record_page

Graphs: graphs_page

Session Overview: sessions_page

Calendar: calendar_page

Getting started

1. Clone the latest version

Start by cloning the latest version of Sentiview on your local machine by running:

$ git clone https://github.com/crypticzoologists/sentiview
$ cd sentiview

2. Install Dependencies

From within the root directory run the following command to install all dependencies:

$ npm install

3. Setup Environment Variables

Server side setup
  1. Copy and save the example.env file in the env folder as development.env.
  2. Replace the port with your desired port and enter the login credentials for your MySQL server (make sure it is running)
Client side setup
  1. Create a free account on http://face.sightcorp.com/ and create a new application for a new App Key.
  2. Copy and save the client-config.example.js file in the env folder as client-config.js.
  3. Enter and save your Client ID and App Key in the client-config.js file.

4. Run the application

  1. Create a build folder within client/build. From within the root directory run the following command to make sure Browserify builds the bundle file and rebuilds on every change with Watchify:
$ npm run bundle
  1. In a new terminal window run the following command to start the application:
$ npm start

After that open in your browser the localhost with your chosen port, e.g. http://localhost:4568/ to access the application.

5. Run tests

Configure the environment variable NODE_ENV prior to running tests.

$ export NODE_ENV=development
$ npm test

You may use npm run test-client or np run test-server to run front-end and back-end tests independently.

Technologies

Front end:
  • React
  • Face Analysis Cloud Engine API by Sightcorp
  • PeerJS
  • Socket.io
  • Browserify
  • Chartjs
  • Babel
Back end:
  • Node
  • Express
  • Jade
  • Bookshelf/Knex
  • MySQL
  • Passport
Testing:
  • Mocha
  • Chai
  • jsdom
Continuous Integration:
  • Travis CI
Deployment:
  • Digital Ocean Droplet
  • pm2: Production Process Manager

Architecture

sentimize

Directory Layout

├── /env/                       # Environment variables
├── /node_modules/              # 3rd-party libraries and utilities
├── /client/                    # Client source code
│   ├── /build/                 # Build file produced with Browserify
│   ├── /components/            # React components
│     ├── /home-view/           # Home view components
│     ├── /main-layout/         # Main Layout components
│     ├── /record-view/         # Record view components
│     ├── /report-view/         # Reporting view components
│     ├── /calendar-view/       # Calendar view components
│     ├── /sessions-view/       # Sessions view components
│     ├── /App.jsx/             # Main React App
│   ├── /lib/                   # Lib files, e.g. from FACE API
│   ├── /style/                 # CSS Style files
│   ├── /index.jsx              # Index file to attach React to DOM
├── /server/                    # Server source code
│   ├── /config/                # Initial server config files
│   ├── /controllers/           # Controllers for database interaction
│   ├── /lib/                   # Lib for util functions
│   ├── /models/                # Data models
│   ├── /routes/                # Routes for incoming GET and POST requests
│   ├── /views/                 # Jade templating views
│   └── /server.js              # Server-side startup script
├── /test/                      # Server and client side tests
│   ├── /client/                # Client side tests
│   ├── /server/                # Server side tests
|   ├── /data/                  # Holds seed & dummy data
└── package.json                # List of 3rd party libraries and utilities to be installed
└── .babelrc                    # Babel presets
└── .eslintrc                   # ESLint settings

Team

Contributing

See CONTRIBUTING.md for contribution guidelines.

About

Legacy Project

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.0%
  • Other 1.0%