/aidslifecycle-checkin

http://www.aidslifecycle.org/checkin

Primary LanguageJavaScript

AIDS/LifeCycle Check-in S.P.A.

Summary

ALC needed a system that could track registered participants at events throughout the year, and Orientation Day. The goal of the application is to quickly verify participant information and check-in ALC participants at events either on PC or mobile device. For security reasons, the application should be hosted on Blackbaud servers. Currently the site resides on the tofighthiv.org server.

Installation

  1. git clone <repo URL>
  2. npm install
  3. Update/overwrite js/participants.json
  4. Create the file .config/luminate.config.js - see below
  5. Upload FTP to ​​customerftp.convio.net (a new directory is OK)
  6. Update Wordpress if you would like to create a short URL that points to the app

To Do

  1. hosted on an external server
  2. include an admin panel

Luminate API Key

var luminate_config = {
	api_key: "XXXXXXXXXXXXXXXXXX",
	interaction_body: "Text for the body interaction.",
	username: "LUMINATE ONLINE USERNAME",
	password: "LUMINATE ONLINE PASSWORD"
}

Updating the Participant Roster (JSON file)

First, run the ALC Event Check-In (Build CSV to JSON) located in the Report Writer in Luminate Online.

You may edit the report to change the TeamRaiser event and the name of the report - DO NOT edit the column names in step 3 of the report builder.

Run check-in report

In Sumbline Text (v3+), open the .csv downloaded from Luminate Online.

Run check-in report

Open Sublime's Command Palatte, type DataConverter and choose to JSON. Sublime will convert the .csv to JSON format. Save/overwrite the file to the js directory as participants.json.

Run check-in report

Blackbaud Server

Scripts and Stylesheets

Blackbaud servers will not serve mixed content (files server from http and https). Scripts and style sheets must be loaded in the head of the page as js/file_name.js not /js/file_name.js. The later will cause the application to break.

<head>
....
  <!-- AngularJS -->
  <script src="node_modules/angular/angular.min.js"></script>
  <script src="node_modules/angular-route/angular-route.min.js"></script>
  <script src="node_modules/angular-cookies/angular-cookies.min.js"></script>
  <script src="node_modules/angular-ui-bootstrap/ui-bootstrap-tpls.min.js"></script>
  <!-- ALC Application -->
  <link rel="stylesheet" href="css/custom.css">
...
</head>

Server Caching

Blackbaud's server allows files to be overwritten, but it may take up to 15 minutes to see the changes for CSS and JS files.

FAQ

Why do we use a report and not Blackbaud's Convio API to pull in the participant data? The Convio API returns a max of 1000 constituent records in an API. ALC TeamRaisers average 5000+ registered participants. While not impossible for the check-in app to use the Convio API, it would slow down the line and require a constant internet connection, which is not always available at ALC events.

Tools and Dependencies

Sublime

Sublime Text 3
Data Converter package from Sublime Package Manager

Node Dependencies

"dependencies": {
  "angular": "^1.3.3",
  "angular-cookies": "^1.3.3",
  "angular-route": "^1.3.3",
  "angular-ui-bootstrap": "^0.14.3",
  "bootstrap": "^3.3.6",
  "jquery": "^3.3.1"
}