suma-project / suma Goto Github PK
View Code? Open in Web Editor NEWSuma: A Space Assessment Toolkit
Home Page: https://suma-project.github.io/Suma/
License: MIT License
Suma: A Space Assessment Toolkit
Home Page: https://suma-project.github.io/Suma/
License: MIT License
When I run the nightly script
$ sudo php /srv/suma/htdocs/analysis/reports/lib/php/nightly.php
Error: exception 'Exception' with message 'Internal Server Error. ' in /srv/suma/app/analysis/reports/lib/php/ServerIO.php:197
Stack trace:
#0 /srv/suma/app/analysis/reports/lib/php/ServerIO.php(122): ServerIO->sendRequest('counts/id/1/for...')
#1 /srv/suma/app/analysis/reports/lib/php/NightlyData.php(214): ServerIO->getData(Array, 'counts')
#2 /srv/suma/app/analysis/reports/lib/php/NightlyData.php(477): NightlyData->processData('20160119')
#3 /srv/suma/app/analysis/reports/lib/php/nightly.php(45): NightlyData->getData('20160119')
When I try to use the analysis web interface, I get a generic 500 with an empty message. Nothing gets written to the apache log.
Notice!
There was a problem generating the report. Please try again or contact your system administrator.
Error Code: 500
Error Message:
Initially, I thought maybe it was a permissions error, so I disabled SELinux and chowned everything 777, but to no avail. I'm on CentOS 7. The rest of the application does seem to be functioning.
I am getting an error when trying to load an initiative via the client.
The initiative is enabled
Uncaught TypeError: Cannot read property 'length' of nulln.extend.each @ jquery.min.js:2
parseLocs @ spaceassess.js:307
(anonymous function) @ spaceassess.js:276j @ jquery.min.js:2
k.add @ jquery.min.js:2
(anonymous function) @ spaceassess.js:270
(anonymous function) @ persistence.store.sql.js:729
(anonymous function) @ persistence.store.websql.js:86
Trying to initiate a test install of the Suma project. We are getting an error every time we try to load the Suma server admin interface. Zend is unable to load the controller.
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (sumaserver)' in /usr/share/php/Zend/Controller/Dispatcher/Standard.php:248 Stack trace: #0 /usr/share/php/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /var/www/app/Suma/service/web/index.php(25): Zend_Controller_Front->dispatch() #2 {main} thrown in /usr/share/php/Zend/Controller/Dispatcher/Standard.php on line 248
/var/www/app/Suma/service/web/index.php
<?php
// Error Reporting
error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('display_errors', 'on');
// Set paths
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . 'SUMA_SERVER_PATH');
// Zend Framework CLass Loader
require_once "Zend/Loader.php";
require_once "/var/www/app/Suma/service/config/Globals.php";
Zend_Loader::loadClass('Zend_Controller_Front');
// Get front controller instance
// Configure for Zone
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory('/var/www/app/Suma/service/controllers/')
->setBaseUrl('/var/www/app/Suma/web/') // set the base url
->throwExceptions(true);
// Go
$front->dispatch();
The sample data set is hardcoded for 2011-12-15. When viewing the reports, the default view does not include this timespan anymore, so testers need to browse back in time to see any demo data.
Moving the data set to it's own SQL file, and using relative SQL dates, like DATESUB(NOW(), INTERVAL 5 HOURS), would keep the data uptodate (and could allow for the data to be loaded multiple times).
We've been following along at http://cazzerson.github.io/Suma/developer/ to get Suma up and running.
We have the data entry part working just fine.
When we try to generate a report (say, by going to https://suma.example.edu/suma/analysis/reports/#/timeseries), instead of reports with what little data we have in the system, we instead get:
I'm hoping that this is something obvious to the Suma/Angular literate. Help?
Error: [$injector:unpr] Unknown provider: processTimeSeriesDataProvider <- processTimeSeriesData <- data
http://errors.angularjs.org/1.3.15/$injector/unpr?p0=processTimeSeriesDataProvider%20%3C-%20processTimeSeriesData%20%3C-NaNata
at https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:3:20540
at https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:6585
at Object.d [as get] (https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:5755)
at https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:6682
at d (https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:5755)
at Object.e [as invoke] (https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:6092)
at Object.$get (https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:4562)
at Object.e [as invoke] (https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:6125)
at https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:6702
at d (https://suma.example.edu/suma/analysis/reports/scripts/scripts.min.js:4:5755)
/cc @ellestad
I have started the process of installing Suma on my Windows 2008 r2 server here at Brandeis so that our Access Services team can evaluate and test it for future headcount usage among other things. I have completed the install process to the point that I can access the client, analytics module, and the administrative module. However, whenever I log into the administrative module and try to add locations or initiatives, I get kicked back to the administrative login screen. Is there an aspect of the configuration process that I have missed? Any assistance is greatly appreciated.
Kind regards,
Mark Paris
When doing headcounts, my institution samples every open hour for a week; it would be very helpful for us to see the hourly trends so we can assess the benefits of staffing services points at certain hours. Currently, while Suma will display hourly ticks in short-range time series, the data points are still aggregated by the day.
Looks like the change would need to be made in results.php... D3 could handle the aggregation from hours to days/weeks/months, but I'm not sure if that'd be an unacceptable performance hit compared to PHP processing.
Hello,
I've stepped through the install process and can create locations and initiatives through the admin interface, but selecting a collection program on the client interface throws a fetch error in the browser Error fetching locations. Please reload and try again
, and in the server log ERR (3): INVALID INITIATIVE ID - ClientInitController id:
Taking a look in the developer console, the server is returning a 500 error on the request: Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://server.name/sumaserver/clientinit/load/web/initiative/1
but if I manually add in the correct parameter http://server.name/sumaserver/clientinit/load/web/initiative?initiative=1
it returns the JSON as expected.
So as a workaround, I can change the initiativeUrl in spaceassessConfig.js to
var initiativeUrl = "/sumaserver/clientinit/load/initiative?initiative=";
and it works, but from the documentation, this seems more like a possible server config issue elsewhere.
Any ideas? Thanks.
Hi,
We are counting the number of people at different locations. For example we have cloth chairs, and for a time frame we have, a sum of 3,072.
However, if I go to the bottom Summary data, on the site and the exported CSV, I get a value of 960. Where is this 960 coming from?
Thanks :)
Hola! @cazzerson has created a ZenHub account for the cazzerson organization. ZenHub is the leading team collaboration and project management solution built for GitHub.
To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.
ZenHub adds a series of enhancements directly inside the GitHub UI:
Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @cazzerson.
Hi,
We seem to run into the issue probably once a week or so with the iPad, where it will keep telling us to "Select an Iniative".
Our solution has been to clear the cache and restart the iPad, and it works fine after that. Any ideas of what might be causing this?
Thanks!
Right now, the local data storage is done through Web SQL, which is only supported on WebKit browsers. This is just fine for the main mobile platforms, but doesn't work for Firefox on desktop, which may be a valid interface for a service point.
It looks like the Web SQL is a complete replica of the database schema on the server. Data is POSTed as JSON to the sync server. Since this translation has to happen anyway, maybe it'd make sense to store the counts as JSON in localStorage or sessionStorage. This would be more universally compatible with HTML5-enabled browsers, and could (possibly) give a performance boost (maybe... just guessing).
Given the structure of the web server and the client, I think a non-WebKit template could be developed in parallel with the existing structure
In order to keep the Suma data collection client working in iOS 7, we have to initialize the database with an estimated size of 5MB instead of 50MB on other platforms. The iOS 7 user will be prompted if the database exceeds this size, but the count that triggers the prompt may be lost. We are looking into other ways of working around this Safari bug.
http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review
https://bitbucket.org/ytkyaw/ydn-db/issue/76/increase-memory-popup-event-on-ios
I'm back! I have made some progress and set up the database. Now, when going in the admin panel and selecting Edit Locations, I get these errors:
SCREAM: Error suppression ignored for
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'suma_application'@'localhost' (using password: YES)' in C:\wamp\www\app\sumaserver\lib\zend\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'suma_application'@'localhost' (using password: YES) in C:\wamp\www\app\sumaserver\lib\zend\library\Zend\Db\Adapter\Pdo\Abstract.php on line 129
Zend_Db_Adapter_Exception: SQLSTATE[HY000] [1045] Access denied for user 'suma_application'@'localhost' (using password: YES) in C:\wamp\www\app\sumaserver\lib\zend\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
I have a user set up for suma_application in the suma database with the following privileges:
SELECT, INSERT, UPDATE, INDEX
as required in INSTALL.md. I am unsure on where to go from here.
Having a heck of a problem getting SUMA set up on an OSX server. When i work through all the installation instructions, I end up getting a blank page response from http://myserver/sumaserver/admin.
One thing I've noticed...not sure it matters. Might just be my misreading things...
If I install via the "file copy" method, it suggests I'll end up with these two directories:
/myserver/suma/web
/myserver/suma/analysis
If I go the symbolic link route, following the install doc i should end up with:
/myserver/suma/client
/myserver/suma/analysis
Can that be right?
I've set up Suma on our dev server using symlinks. The suma/client URL opens fine but when I try to open the admin pages, I get this error message: Warning:
require_once(Zend/Loader.php): failed to open stream: No such file or directory in /var/www/Suma/service/web/index.php on line 45
Any advice?
Laura
Hi,
We have an excel file with past data, that I would be interesting in entering into Suma. I was just wondering if there is an example (I may have missed it), of what the data should look like, when being put into the "Direct JSON Import" link.
Thanks!
Tom
When trying to add new locations to the main "Location" I get the following error: Invalid Location Tree.
I even get it with the default "New Location" that appears after clicking add a location.
Any ideas?
Thanks!
Is there a way to change the timezone for the web analytics reports?
Our cloud server lives in Pacific time, but our libraries are on Eastern time.
I know there's a way to change the timezone in the nightly reports, but I'm wondering about the Analytics Reports interface.
Apologies if I've overlooked something totally obvious about how to set this.
Thanks!
Lauren
I've installed Suma on a Red Hat Linux 7 server running Apache 2.4.6. I've followed the steps in the installation page, and browsing to http:///sumaserver shows success.
http:///sumaserver/admin brings me to the Suma Administrative Tools login page, but when I log in, I receive "500 Application error". The credentials I'm using are set in <suma_install_dir>/service/config/config.yaml:
production: sumaserver: db: host: localhost platform: Pdo_Mysql dbname: production user: <suma user> pword: <suma user password> port: 3306 log: path: name: sumaserver.log admin: user: <admin user> pass: <admin user password> queryserver: db: limit: 10000 development: _extends: production sumaserver: db: dbname: testing log: path:
Both sets of credentials work in MySQL, i.e. I can access both databases outside of Suma.
What am I getting wrong?
Hey there --
Is there a way to backdate a count from the client interface, or do we need to translate to JSON as ssen in another issue thread and import it through the service interface?
Hi Jason,
Trying to install Suma here at Mann Library (Cornell). We were running an original version last Fall but I fetched the latest from github earlier this week at the request of a colleague. Everything seems to be working minus the reports. Here's the error I'm getting:
exception 'Guzzle\Http\Exception\ClientErrorResponseException' with message 'Client error response [status code] 404 [reason phrase] Not Found [url] http://suma.library.cornell.edu/initiatives [request] GET /initiatives HTTP/1.1 Host: suma.library.cornell.edu User-Agent: Guzzle/2.8.3 curl/7.15.5 PHP/5.3.3 openssl/ OpenSSL/0.9.8b [response] HTTP/1.1 404 Not Found Date: Wed, 30 Jan 2013 21:05:12 GMT Server: Apache/2.2.3 (Red Hat) Content-Length: 299 Connection: close Content-Type: text/html; charset=iso-8859-1
I updated line 25 of Suma/analysis/lib/php/ServerIO.php to 'suma.library.cornell.edu' as described in #2 but that gave me a malformed URL so I switched that up to 'http://suma.library.cornell.edu'. I think I'm missing some configuration for the query server.
Any help is appreciated. Thanks.
There was a problem generating the report. Please try again or contact your system administrator.
Error Code: 500
Error Message: The cURL extension was not found and is required for the Suma analysis tools.
I recently set up Suma at my school and ran into a Web SQL issue on Chrome.
After some searching, it looks like Chrome for iOS switched to WKWebView in version 48 and it doesn't work with Web SQL. The bug report is located at https://bugs.webkit.org/show_bug.cgi?id=137760. Here is a screenshot of the error:
Install.md reads:
"In YOUR_WEB_DIR/suma/analysis/lib/Server_IO.php change to your hostname (e.g. lib.abc.edu). "
The closest thing (for me) is ServerIO.php located in Suma/analysis/lib/php/ServerIO.php.
Assuming that ServerIO.php is indeed the correct file, it's unclear as to where I should make the edit.
if i direct the browser to:
http://localhost/~micheljp/sumaserver/
i get a page which says "Index Controller"
if i go to http://localhost/~micheljp/sumaserver/admin
i get a 404 Not found error
if i go to http://localhost/~micheljp/sumaserver/index.php
i get this exception:
Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (index.php)
here is index.php:
// Config
$SUMA_SERVER_PATH = '/home/micheljp/sumaserver';
$SUMA_CONTROLLER_PATH = '/home/micheljp/sumaserver/controllers';
$SUMA_BASE_URL = '/~micheljp/sumaserver';
$SUMA_DEBUG = true;
i went the .htaccess route.
not sure where i went wrong with the install. any help would be appreciated. we really look forward to using this!! :)
Is there a way to only show active initiatives in the nightly email?
I am trying to set up a test install of Suma and when trying to access sumaserver/admin/ I am getting this error:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (web)' in C:\wamp\www\app\sumaserver\lib\zend\library\Zend\Controller\Dispatcher\Standard.php on line 248
Zend_Controller_Dispatcher_Exception: Invalid controller specified (web) in C:\wamp\www\app\sumaserver\lib\zend\library\Zend\Controller\Dispatcher\Standard.php on line 248
I think it might be the way I have the locations set up and I cannot really find anything for setting this up on Windows. My index.php file is here:
c:\wamp\www\web\sumaserver\index.php
// Config
$SUMA_SERVER_PATH = 'C:/wamp/www/app/sumaserver';
$SUMA_CONTROLLER_PATH = 'C:/wamp/www/app/sumaserver/controllers';
$SUMA_BASE_URL = '/sumaserver';
$SUMA_DEBUG = true;
// Debug Mode Setup
if ($SUMA_DEBUG == false)
{
$SUMA_ERROR_REPORTING = 0;
$SUMA_DISPLAY_ERRORS = 'off';
$SUMA_THROW_EXCEPTIONS = false;
}
else
{
$SUMA_ERROR_REPORTING = E_ERROR | E_WARNING | E_PARSE | E_NOTICE;
$SUMA_DISPLAY_ERRORS = 'on';
$SUMA_THROW_EXCEPTIONS = true;
}
// Error Reporting
error_reporting($SUMA_ERROR_REPORTING);
ini_set('display_errors', $SUMA_DISPLAY_ERRORS);
// Set paths
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . $SUMA_SERVER_PATH . PATH_SEPARATOR . $SUMA_SERVER_PATH . '/lib/zend/library');
// Zend Framework CLass Loader
require_once "Zend/Loader.php";
require_once "config/Globals.php";
Zend_Loader::loadClass('Zend_Controller_Front');
// Get front controller instance
// Configure for Zone
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory($SUMA_CONTROLLER_PATH)
->setBaseUrl($SUMA_BASE_URL)
->throwExceptions($SUMA_THROW_EXCEPTIONS);
// Go
$front->dispatch();
Last issue, I think. :) I am unable to write any new sessions when testing out the application. I looked into the console log and noticed this:
POST http://localhost/web/sumaserver/sync 500 (Internal Server Error) jquery.min.js:4
send jquery.min.js:4
f.extend.ajax jquery.min.js:4
(anonymous function) spaceassess.js:373
(anonymous function) spaceassess.js:74
(anonymous function) persistence.store.sql.js:701
(anonymous function) persistence.store.websql.js:86
I checked into spaceassess.js as my sumaserver is in a different spot and have edited the file as such:
var baseInitUrl = "/web/sumaserver/clientinit/";
var initiativeUrl = "/web/sumaserver/clientinit/load/initiative/";
var syncUrl = "/web/sumaserver/sync";
This is very similar to Michelle's problem below, but not identical. I do not get a 404 error or "index controller" at those locations.
When I attempt to access http://dtc-wsuv.org/nschiller/sumaserver/admin
(also sumaserver/ and sumaserver/index.php)
I get the following error:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (nschiller)' in /home/dgrigar/app/sumaserver/lib/zend/library/Zend/Controller/Dispatcher/Standard.php:248 Stack trace: #0 /home/dgrigar/app/sumaserver/lib/zend/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/dgrigar/public_html/nschiller/sumaserver/index.php(47): Zend_Controller_Front->dispatch() #2 {main} thrown in /home/dgrigar/app/sumaserver/lib/zend/library/Zend/Controller/Dispatcher/Standard.php on line 248
.htaccess appears to work, but i've also edited httpd.conf to check.
I've followed the instructions in INSTALL.md exactly, but I get a 404 when I try to access <SERVER_URL>/sumaserver/admin. Everything else works as expected. Not sure what information you'd need, but I can provide whatever you request. Running Apache 2.4.7 on Ubuntu Server 14.04.
Hi folks,
I'd love to add a configuration/feature that would support nightly reports that handle early morning hours as part of "last night".
I'm imagining a variable in analysis/config/config_example.yaml that might look something like:
nightly:
day_begins: 4am
That would tell the nightly reporting function to treat all of activity between midnight and 4am as "last night" for reporting purposes, so the reporting period would go from 4am yesterday to 3:59 today.
I'd be glad to work with you all on developing something like this. We'd find it very handy during the times when our library is open after midnight (only a few times a year).
Thanks
Ken
I'd like to request an enhancement that would enable the user to make activity selection "sticky" when doing counts.
Our users have found that having to reselect activities for each count is time consuming, and have suggested an option like enabling users to select an activity and do multiple counts with that activity selected.
One idea would be to have the activities work as a kind of "toggle" rather than a button that gets deselected upon doing the count.
This might be something I will have time to work on during the summer; if so I will submit a pull request.
Thanks again for developing SUMA!
I've got Suma up and running with the sample data. I can collect counts for the Sample Initiative, and I can add/edit my own Location Tree, Initiatives, Activity Groups, and Activities in the admin module. But when I go into the web client to collect data, the Select an initiative dropdown only shows the Sample Initiative choice. Did I miss a step?
When I choose the Sample Initiative, the client displays some new locations I had added to that location tree, so it is seeing my edits.
Here are images of my new initiative in the admin screen, and of the client without it listed.
Can you see something wrong? Thanks a lot.
Lynda.
Hi folks,
I've configured our Suma nightly reports to use the new start-hour flag, but I'm not seeing it reflected in our resulting data. I'm using:
nightlyEmail.php locations --html --hide-zeros --start-hour=0400
The header of the email acknowledges the start-hour flag:
"NOTICE: The 24-Hour period of this report has been modified to start at 04:00."
But the data we're getting shows all the data from the calendar day-before (today it's all data from 5-11 instead of what I expected, which was 2015-05-11 04:00:00 to 2015-05-12 04:00:00. I see calendar-day-yesterday's 00:30 count at the beginning of the list instead of calendar-day-today's 00:30 count at the end of the list.
Any ideas? Am I implementing it incorrectly?
Thanks
Ken
Hello,
The library consortium I work for has several institutions testing out Suma, and our testers are finding that having to tap for each count is very time consuming. We'd like to request an enhancement that would enable a user in the client to either:
a) Select a number (e.g., 5, 10, 15) in addition to single taps OR
b) Type in a number (e.g., 23) in addition to single taps
This would save a huge amount of time when gathering data.
Thanks so much for developing Suma! It is totally awesome. If this enhancement isn't possible in the near future, I may have some time over the summer to work on this and will submit a pull request. Thanks for considering this request!
Lauren
I've got Suma up and running, and can collect counts. However, the reports are giving me a "Fatal error: Call to undefined function Guzzle\Http\Curl\curl_version()" error because my PHP build doesn't include cURL.
Enabling cURL is not an option, and I don't have any way to change that.
Before I start trying to patch the code to use file() or the HttpRequest class (the two options my systems admins are suggesting), I thought I'd check to see if anyone else has already done so. Or started, that I could build from?
And do you know of any other PHP dependencies I should check on? I don't want to spend too much time working around cURL, only to discover another dependency that isn't available to me.
Thanks a lot.
Lynda
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.