Giter VIP home page Giter VIP logo

cloak's Introduction

Cloak Logo

An application platform that removes bias from the equation

MIT License Python >= 3.6 Website GitHub stars
About | Features | Usage

About

Cloak is a form and application creation service that attempts to decrease the amount of bias that goes into applications. Often, people's subconcious biases will play a role in how well an applicant does and Cloak tries to eliminate this. It does so by hiding specified fields completely, until an application is accepted - at which point an email will be sent to the applicant. This ensures that form creators can still access data that they will need after accpetance, but makes sure that this isn't part of what determines whether someone makes it in or not.

The core functionality of Cloak resides in the Django open source Python web framework. It allows us to create flexible models, stored in a PostgreSQL database, without writing a single line of SQL. Through Django's admin pages, Cloak hides all personally identifiable information to remove potential bias from applications. Cloak is hosted on a dedicated server running an Nginx reverse proxy. Our fabulous domain name is provided by Namecheap with DigitalOcean acting as a nameserver and host. All traffic is secured through LetsEncrypt SSL certificates ensuring that your private data is safe.

This project was made for MasseyHacks VI 2020 by TheAvidDev, dulldesk, and skyflaren.

Features

  • Automatic, NLP-based text summarization powered by TextRank.
  • Form access management with separate editor and reviwer roles.
  • Public application / form showcase to market your form.
  • JSON API to get your data anywhere you need it.
  • Automatic form closing, submission time tracking, and much more...

Usage

To use Cloak, first sign up on our site. Then, go ahead and create a form. Feel free to add as many questions as you like of various types. Also remember that long answer questions will be automatically summarized to 100 words, with an option to view the full response on the individual response page. You can set the following parameters on the main form:

  • Name - A name for your form.
  • Description - A description about what your form is about.
  • Open - Whether your form is accepting submissions or not.
  • Auto-Close Date - A date and time to automatically close your form.
  • Publicly Displayed - Whether this form will be on our public display of forms or not.

Each form field or question also has the following parameters:

  • Input Type - The type of input, whether it's numeric, multiple coice, or long or short answer.
  • Question - A prompt or question for the user to know what to respond to.
  • Required - Whether this field is required or not.
  • Secret - Whether the response to this field will be kept completely hidden until this form is accepted. The recipient will also know whether a field is secret or not.
  • Description - A description or "extra information" section displayed below the question. Useful if you want answers in a particular format or want to clarify the question.
  • Multiple Choice Choices - One choice per line for each of the multiple choice options. Only applicable to Multiple Choice input types.

Finally, once you are done customizing your form, hit Save and continue editing. Then, click View on Site to view the form and get the link to send out to applications. And that's it! You've created a form with Cloak and can have the peace of mind that at least some bias is removed from your application process.

JSON API

The API currently has the following endpoints that return data:

  • /api/forms/public/ Returns a list of all the public forms, along with their uuid, form_id, and absolute url path after the domain. An example is shown below:
$ curl https://cloak.theavid.dev/api/forms/public/ | jq

{
  "length": 3,
  "forms": [
    {
      "uuid": "f3d43289-6844-4829-93ce-1cb4b4c3f6e1",
      "form_id": "3gCSZMsdjBfiEQGJnkKROIh2CsMWq24fHz9Sr0-wJsBjDBCc8Hp8rP78PLfLPkaoBMB9vQ6MyhTot6_mlY6egg",
      "url": "/form/f3d43289-6844-4829-93ce-1cb4b4c3f6e1/3gCSZMsdjBfiEQGJnkKROIh2CsMWq24fHz9Sr0-wJsBjDBCc8Hp8rP78PLfLPkaoBMB9vQ6MyhTot6_mlY6egg/"
    },
    {
      "uuid": "62a02da2-cff4-4c54-9461-2a7b74a352f1",
      "form_id": "MeNq5Ph6qV3HXUSMZaB0vvM9xADDlUwTfDW5QsrY_7_4XXiImv6DOk6W9k-kM-MmjxrVf5UUfqOZMmaOPPEtgA",
      "url": "/form/62a02da2-cff4-4c54-9461-2a7b74a352f1/MeNq5Ph6qV3HXUSMZaB0vvM9xADDlUwTfDW5QsrY_7_4XXiImv6DOk6W9k-kM-MmjxrVf5UUfqOZMmaOPPEtgA/"
    },
    {
      "uuid": "51f85302-ef89-4d38-9135-8fd5dbbe9110",
      "form_id": "QCQ2jteXaiplqrKpNW_5nNFaKcwuMPwojCxUUbg_OeEbjbno8Aw8riPxO31TUUqbejHtf8l0h9upQJLmgOFHIg",
      "url": "/form/51f85302-ef89-4d38-9135-8fd5dbbe9110/QCQ2jteXaiplqrKpNW_5nNFaKcwuMPwojCxUUbg_OeEbjbno8Aw8riPxO31TUUqbejHtf8l0h9upQJLmgOFHIg/"
    }
  ]
}
  • /api/form/<uuid>/<form_id> Returns a single form's properties, including all of its fields. An example is shown below:
$  curl https://cloak.theavid.dev/api/form/f3d43289-6844-4829-93ce-1cb4b4c3f6e1/3gCSZMsdjBfiEQGJnkKROIh2CsMWq24fHz9Sr0-wJsBjDBCc8Hp8rP78PLfLPkaoBMB9vQ6MyhTot6_mlY6egg/ | jq 

{
  "name": "Club Presidents Club Application",
  "description": "Thank you for displaying interest in joining the Club Presidents Club! Please fill out the form below to get a chance at one of the coveted executive spots. Don't worry, your personal details will be completely secret to any reviewers until, and only when, you have been accepted.",
  "fields": [
    {
      "question": "What grade are you in?",
      "description": "",
      "input_type": "N",
      "choices": [],
      "is_secret": false,
      "is_required": true
    },
    {
      "question": "What spot are you applying for?",
      "description": "",
      "input_type": "M",
      "choices": [
        "Executive",
        "Vice President",
        "President"
      ],
      "is_secret": false,
      "is_required": true
    },
    {
      "question": "What is your shirt size",
      "description": "We'd love to send you a shirt if you get accepted :D",
      "input_type": "S",
      "choices": [],
      "is_secret": true,
      "is_required": true
    },
    {
      "question": "Please explain why you'd like to be in this club:",
      "description": "",
      "input_type": "L",
      "choices": [],
      "is_secret": false,
      "is_required": true
    }
  ]
}```

cloak's People

Contributors

dependabot[bot] avatar dulldesk avatar fluix-dev avatar skyflaren avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.