Giter Site home page Giter Site logo

it-works's Introduction

It Works!

It Works is a Survey Creation and Management Tool, being created for Ultimate Software as an in-house solution for fetching and analyzing feedback over time through surveys.

Using the project:

If you would like to test our the product without setting up your own environment, we offer a production version hosted here: https://itworks320.herokuapp.com

This version is preloaded with test data obtained from the following dataset: [flipchart_dataset.json]

If you would like to access any of the accounts please use the login information in the provided dataset to access the application, or create your own account!

An example login would be the CEO of the company:

Username: [email protected] 
Password: keithab

You could then create a survey inside Abigail's account and assign it to any employee beneath her in the hierarchy of the company, for example Jaslene Sparks:

Username: [email protected]
Password: sparksja

Installation for Development and Testing

Building and Running requires the Yarn dependency manager. Yarn is available for download here (Yarn)

Once yarn is installed clone the project using the following command:

git clone [email protected]:saiskee/it-works.git

Then you have to install all the dependencies using Yarn. Use the following commands to install the dependencies:

cd it-works
yarn
cd server
yarn
cd ..
cd client 
yarn

If these do not install correctly, please try running these commands as administrator, whether that be opening the command prompt as Admin, or running yarn using sudo.

This can be done by prepending sudo to the yarn command like so: sudo yarn

To start the server run this command from the project root directory:

sudo yarn dev

Then you can connect by opening a browser and going to:

localhost:3000/login

This version of the product will by default be connected to our MongoDB instance. If you would like to use a clean database with your own data please modify the MONGO_URI variable inside the server/config.js file to point to your MongoDB instance. A simple service to setup a Mongo instance and get a connection URI would be MongoDB Atlas

Important Note: You will not be able to assign a survey to someone unless they are beneath you in the company hierarchy. They must have their manager field in their User document set to the manager's object id.

Technologies used

It Works Employee Perception Tool uses a wide variety of technologies including but not limited to:

Client-Side Technologies

  • React-Redux - For formatting the frontend and creating a dynamic UI experience.
  • SurveyJS - For presenting surveys and creating models for our MongoDB Database.
  • ChartJS - For plotting analytics to make survey results easier to understand.

Server-Side Technologies

  • MongoDB - For storing the surveys and it's results.
  • ExpressJS (Mongoose) - An API used to safely and securely communicate with our MongoDB Database.
  • NodeMailer - An API used to send out email reminders to employees.

Code for ItWorks can be found at: https://github.com/saiskee/it-works

it-works's People

Contributors

dependabot[bot] avatar peichaodu avatar quintinbarry avatar saiskee avatar thecynosure avatar yanivam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

dhruvkeyal

it-works's Issues

Survey builder

-Points: 13, Priority: H
-As a manager, I must be able to create surveys so that I can gather data from my employees.

Save progress option for employees

-Points: 3, Priority: M
-As an employee, I must be able to save my progress in a survey so I may complete the rest of the survey at a later date.

Limit survey to one attempt

-Points: 1, Priority: L
-As an employee, I must only be able to answer a survey once so that I don’t submit duplicates or second-guess my answers.

Email amount customization for managers

-Points: 2, Priority: L
-As a manager I want to be able to select the amount of notifications I want to go out before the survey closes so that my employees don’t forget.

Unsubscribe link for emloyees

-Points: 2, Priority: L
-As an employee I want to be able to unsubscribe from receiving email notifications for answering surveys.

Stop emails after surveys over

-Points: 1, Priority: M
-As an employee I want the emails to stop after I have completed the survey so that I am not irritated.

Generate JSON of results of survey

-Points: 3, Priority: H
-As a survey system, I must be able to generate results based on the responses of the surveys and store them in some data structure (JSON would be preferable) so that the reporting system can parse the results easily

Optional questions

-Points: 1, Priority: L
-As a manager, I must be able to tag questions as optional so that they don’t have to answer it.

Account creation

-Points: 3, Priority: L
-As an employee/manager, I want to create an account with a password so that I can create or take surveys.

Create simple dashboard table

Story Points: 2pts
Create a simple HTML form with a Javascript Ajax call to populate with surveys the user must take.

Custom Manager Insights Dashboard

-Points: 5, Priority: H
-As a manager, I want to customize my dashboard so that I see insights that are most relevant to me first so that I can minimize the time looking at reports.

Email reminder notifications to employees

-Points: 3, Priority: L
-As a manager, I want to send out a notification to users that have not taken the survey at a certain time before the survey closes so that they can be reminded to take the survey

Expiration on employee response

  • Points: 3, Priority: L

  • As the database I want the employees responses to “expire” after a time, so that I conform to security standards.

Hide employee data in the backend

  • Points: 1, Priority: H
  • As a survey system, I must keep employee data anonymous to eliminate any bias towards the answers of a specific person.

Create endpoints for surveys

Story Points: 3pts
Complete the following endpoints:

  • Add survey to database
  • Get Surveys
  • Get a surveys status by id
  • Send a survey response to the database.

Account recovery

-Points: 5, Priority: L
-As an employee/manager, I need to be able to recover my account info through some sort of settings modal.

Metric Tracking Over Time

-Points: 5, Priority: M
-As a manager, I must be able to view the results of the surveys and watch them change over time so that I can track how their responses change (and the metrics related to it)

Merge data of separate surveys

-Points: 5, Priority: H
-As the survey system I need a way to merge the data between different deployments of a survey so that I can track the change over time.

Change password

-Points: 1, Priority: L
-As an employee/manager, I want to be able to change my password and account information so that I can update my account information.

Download CSV button for managers

-Points: 3, Priority: L
-As a manager, I want to be able to download a pdf (or csv) of the reports so that I can present the data to other people.

Set up Database

Story Points: 5pts

  • Create database schema/collections/whatever
  • Look into atlas/remote hosting

Template saving

-Points:5, Priority: M
-As a manager, I must be able to save and make a template / redeploy certain surveys to save time in using the survey editor.

Sending surveys to employees

-Points: 1, Priority: L
-As a manager, I must be able to send the surveys to my employees through some medium so that they can take it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.