Hackthone

Overview

The World is faced with one of toughest challenges with COVID-19 and people around the world are coming together to overcome this difficult times. There is a acute need for personal protective equipment, ventilators, test kits, data science tools, and vaccine to combat the exponential growth of this pandemic.

To support this cause InvenTrust will be soon be launching a hackathon on COVID-19, which will enable to address some of the key needs of the society to strengthen the fight against coronavirus. The developed solution will be made available through InvenTrust platform to be shared across the globe to those who are looking for it. InvenTrust is a purpose-built platform that focuses on accelerating exchanges for critical know-how and products that you can trust.

The hackathon challenges participants to build tools for applying digital incentives to different recruitment problems. The intuition underlying the hackathon is that incentives may be useful in targeting audiences defined by having the valuable intention to respond to a call to a desired action. To capture the broad potential of the recruitment solutions at issue, the hackathon will have five tracks, each of which highlights different aspects of the recruitment challenge. The five tracks focus on:

  • Clinical trial participants
  • Volunteers
  • Contributions
  • Workers
  • Political campaigns

COVID-19 places a premium on participation in clinical trials, for therapies, cures and vaccines. ClinicalTrials.gov now lists almost 1,000 COVID-19 studies. As reported in the Daily Mail: “hVIVO, a clinical research group in London, has attracted more than 20,000 volunteers willing to be infected with tamer relatives of the virus that causes COVID-19 in exchange for a fee of £3,500 ($4,480).” Vaccine trials highlight a number of particular challenges to participant recruitment, such as obtaining the right demographic mix of participants, the additional screening criteria often involved in viral challenge tests, and mismatches between recruited populations and testing infrastructure. Yet COVID-19 trials confront an environment in which roughly 80% of U.S. clinical trials fail to timely recruit the required number of patients. Rising clinical trial costs and increased research into “patient-centric” therapies have led to surging demand for technology solutions for clinical trials, such as artificial intelligence for identifying potential recruits and virtual clinical trials to expand trial reach to participants and reduce the costs and time necessary to complete the trials. The clinical trials recruitment use case was recommended for testing in graduate student course work, which led to its being the subject of a Columbia University Innovation Challenge in 2019. An existing development site for recruitment will serve as inspiration for hackathon submissions.

COVID-19 creates a special need to recruit blood plasma donors. At the same time, the pandemic has created a blood shortage, and thus a higher demand for regular blood donors. Another, looming need related to COVID-19 is for organ donors. The decline in trauma-related deaths during lockdown and the ineligibility of donations from those who die of COVID-19 are aggravating the shortage of organ donors.

A silver lining of the pandemic is the increase in charitable inclinations, and there is no shortage of organizations that need the support. This extends well beyond large charities focused on disaster relief. For example, with their admissions stopped during a peak period for visitors, zoos are among the many institutions in need of donations. In another example, Bing Places has partnered with GoFundMe to facilitate the creation of fundraisers by commercial businesses.

It is difficult to overstate COVID-19’s disruption of the global labor market, and the concomitant need for better ways of matching employers to workers. There will be recruiting for entirely new positions, like contact tracers or “disease detectives.” A National Plan to Enable Comprehensive #COVID19 Case Finding and Contact Tracing in the U.S. envisions the hiring of 100,000 workers for $3.6 billion to carry out contact tracing. Newly created resources such as online referral lists, job boards and virtual networking programs are helping counter the economic impact of COVID-19. As reported on PBS, some companies in industries with little demand (e.g., in retail clothing, hospitality and travel) are offering to connect their workforces to companies in industries with surging demand (e.g., in retail drugs, grocery and package delivery). COVID-19 could have longer-term effects on employee recruiting, involving verification of entirely new sets of “credentials.” For example, certain employers might be willing to hire at premium rates workers with serologically documented COVID-19 immunity.

A final challenge to recruitment from COVID-19 is to the political process. Rallies have been cancelled. Party conventions have been postponed. Door-to-door canvassing seems problematic under current strictures of social distancing. Yet few would argue that the elections of 2020 deserve less effort to build support for policies and politicians. Indeed, stakes seem higher, warranting more, not fewer, such efforts. Perhaps all will be left to TV and Facebook ads. On the other hand, perhaps there will be innovation in political outreach. Consider, for example, that since February response rates for consumer surveys conducted by landline have tripled, from below 2% to nearly 6%, and cellphone response rates have jumped from 2.5% to more than 7%.

Please register here for the hackathon and will be in touch with an update.

Whoops! There was an error.
ErrorException (E_WARNING)
file_put_contents(): Only 0 of 544 bytes written, possibly out of free disk space ErrorException thrown with message "file_put_contents(): Only 0 of 544 bytes written, possibly out of free disk space" Stacktrace: #7 ErrorException in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #6 file_put_contents in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #5 Illuminate\Filesystem\Filesystem:put in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php:83 #4 Illuminate\Session\FileSessionHandler:write in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Session/Store.php:128 #3 Illuminate\Session\Store:save in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /home/live/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /home/live/public_html/public/index.php:60
7
ErrorException
/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php122
6
file_put_contents
/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php122
5
Illuminate\Filesystem\Filesystem put
/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php83
4
Illuminate\Session\FileSessionHandler write
/vendor/laravel/framework/src/Illuminate/Session/Store.php128
3
Illuminate\Session\Store save
/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php87
2
Illuminate\Session\Middleware\StartSession terminate
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php218
1
Illuminate\Foundation\Http\Kernel terminateMiddleware
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php189
0
Illuminate\Foundation\Http\Kernel terminate
/public/index.php60
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "file_put_contents(): Only 0 of 544 bytes written, possibly out of free disk space"
    
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "/home/live/public_html/storage/framework/sessions/FudEjgXD1AB1riKO2J558Zz2AJ7hc5lNkSpthGMD"
    
  2. "eyJpdiI6IlQxVEdMQytjb0JzY2NMdm5HdXc5ZkE9PSIsInZhbHVlIjoiVExnMitYSVRNblZJU1wvYVdIcDZ2cElKWGc2MWJYV2tUc1lwU1FjN1A2TzBnc1ZHV080Z0VsSVpWZW9kTCttNnArTTdHNWxGVk5iSHRZSGV1emwzcWRUdERzVjl4SGpZeE1zQk10eWlvMitLRXl6Q3p4XC9kRDhQYjFNWWdJUlR4YVwvdEhjRXQ0ZGo0ajJBMUlNOEJKSmRYSWphWEtka3NQY254K1RkZUZReVwvcnlvcWQ5MXlKRXpaNVwvSzNlNlQwRTRVS20zTkxDa0FIeENlcThua3lFVUlWXC9vRUZhc3BPQ2NUYmcrZ1V4eDZcL3JFT05ubUpzdURRajdkVlFXRVRPY3FId2xEMVZpd2xSbVwvR1hxUlwvMWs1c3c9PSIsIm1hYyI6IjUyY2U2NzdlMGM1ZWQxNTk4NWZlYzg4ZTZkN2MyNmMzZjQxN2NkYzg2OGUwZTIwZDA4NTJiMmYyZTczY2QxM2YifQ=="
    
  3. 2
    
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        if ($this->files->exists($path = $this->path.'/'.$sessionId)) {
            if (filemtime($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) {
                return $this->files->get($path, true);
            }
        }
 
        return '';
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        $this->files->put($this->path.'/'.$sessionId, $data, true);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        $this->files->delete($this->path.'/'.$sessionId);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        $files = Finder::create()
Arguments
  1. "/home/live/public_html/storage/framework/sessions/FudEjgXD1AB1riKO2J558Zz2AJ7hc5lNkSpthGMD"
    
  2. "eyJpdiI6IlQxVEdMQytjb0JzY2NMdm5HdXc5ZkE9PSIsInZhbHVlIjoiVExnMitYSVRNblZJU1wvYVdIcDZ2cElKWGc2MWJYV2tUc1lwU1FjN1A2TzBnc1ZHV080Z0VsSVpWZW9kTCttNnArTTdHNWxGVk5iSHRZSGV1emwzcWRUdERzVjl4SGpZeE1zQk10eWlvMitLRXl6Q3p4XC9kRDhQYjFNWWdJUlR4YVwvdEhjRXQ0ZGo0ajJBMUlNOEJKSmRYSWphWEtka3NQY254K1RkZUZReVwvcnlvcWQ5MXlKRXpaNVwvSzNlNlQwRTRVS20zTkxDa0FIeENlcThua3lFVUlWXC9vRUZhc3BPQ2NUYmcrZ1V4eDZcL3JFT05ubUpzdURRajdkVlFXRVRPY3FId2xEMVZpd2xSbVwvR1hxUlwvMWs1c3c9PSIsIm1hYyI6IjUyY2U2NzdlMGM1ZWQxNTk4NWZlYzg4ZTZkN2MyNmMzZjQxN2NkYzg2OGUwZTIwZDA4NTJiMmYyZTczY2QxM2YifQ=="
    
  3. true
    
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Session/Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "FudEjgXD1AB1riKO2J558Zz2AJ7hc5lNkSpthGMD"
    
  2. "eyJpdiI6IlQxVEdMQytjb0JzY2NMdm5HdXc5ZkE9PSIsInZhbHVlIjoiVExnMitYSVRNblZJU1wvYVdIcDZ2cElKWGc2MWJYV2tUc1lwU1FjN1A2TzBnc1ZHV080Z0VsSVpWZW9kTCttNnArTTdHNWxGVk5iSHRZSGV1emwzcWRUdERzVjl4SGpZeE1zQk10eWlvMitLRXl6Q3p4XC9kRDhQYjFNWWdJUlR4YVwvdEhjRXQ0ZGo0ajJBMUlNOEJKSmRYSWphWEtka3NQY254K1RkZUZReVwvcnlvcWQ5MXlKRXpaNVwvSzNlNlQwRTRVS20zTkxDa0FIeENlcThua3lFVUlWXC9vRUZhc3BPQ2NUYmcrZ1V4eDZcL3JFT05ubUpzdURRajdkVlFXRVRPY3FId2xEMVZpd2xSbVwvR1hxUlwvMWs1c3c9PSIsIm1hYyI6IjUyY2U2NzdlMGM1ZWQxNTk4NWZlYzg4ZTZkN2MyNmMzZjQxN2NkYzg2OGUwZTIwZDA4NTJiMmYyZTczY2QxM2YifQ=="
    
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            list($name) = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/application-form"
      #requestUri: "/application-form"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: EncryptedStore {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/home/live/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/application-form"
      #requestUri: "/application-form"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: EncryptedStore {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/home/live/public_html/public/index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
 
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/application-form"
      #requestUri: "/application-form"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: EncryptedStore {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
REDIRECT_HTTPS
"on"
REDIRECT_SSL_TLS_SNI
"inventrust.com"
REDIRECT_STATUS
"200"
HTTPS
"on"
SSL_TLS_SNI
"inventrust.com"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_IF_MODIFIED_SINCE
"Sat, 30 May 2020 00:02:45 GMT"
HTTP_ACCEPT_ENCODING
"br,gzip"
HTTP_HOST
"inventrust.com"
HTTP_CONNECTION
"Keep-Alive"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"inventrust.com"
SERVER_ADDR
"139.59.45.94"
SERVER_PORT
"443"
REMOTE_ADDR
"3.228.11.9"
DOCUMENT_ROOT
"/home/live/public_html/public/"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/home/live/public_html/public/"
SERVER_ADMIN
"root@localhost"
SCRIPT_FILENAME
"/home/live/public_html/public/index.php"
REMOTE_PORT
"49652"
REDIRECT_URL
"/application-form"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/application-form"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1596911591.329
REQUEST_TIME
1596911591
empty
0. Whoops\Handler\PrettyPageHandler