Skip to content
/ hippo Public

Academic event schedular, venue manager, and much more.

License

Notifications You must be signed in to change notification settings

dilawar/hippo

Repository files navigation

Codacy Badge

Playstore

NCBS Hippo: https://play.google.com/store/apps/details?id=com.dilawar.hippo NCBS Tracker: https://play.google.com/store/apps/details?id=com.dilawar.hipposhare

NCBS Hippo

Dependencies

  • Requires PHP >= 7.x
  • php7, php7-imap, php7-ldap, php7-imagick
  • php-gd, php-mbstring, php-zip
  • php-oauth
  • sudo -E pecl install mailparse
  • mysql
  • python-pypandoc
  • sudo pip install mysql-connector-python-rf
  • pandoc >= 1.19.2.1
  • python-PIL (for background image processing).
  • python >= 3.6 (Photography club scripts require it)

Optional

To train the NN with AWS abstract.

  • torch-rnn

Apache behind proxy

To communicate to google-calendar, apache needs to know proxy server. Write following in httpd.conf file

SetEnv HTTP_PROXY 172.16.223.223:3128
SetEnv HTTPS_PROXY 172.16.223.223:3128

To make sure that server accepts API requests from android app.

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "content-type"

How to setup google-calendar.

  1. Go to google-api console, and setup an API key. Download the key and store it in /etc/hippo/hippo-f1811b036a3f.json.

  2. Go to google calendar and add google-service account email in share calendar settings. Grant all permissions to new account.

  3. Following is the snippet to construct API.

$secFile = '/etc/hippo/hippo-f1811b036a3f.json';
putenv( 'GOOGLE_APPLICATION_CREDENTIALS=' . $secFile );
$this->client = new Google_Client( );
$this->client->useApplicationDefaultCredentials( );
// Mimic user (service account).
$this->client->setSubject( '[email protected]' );
$this->client->setScopes( 'https://www.googleapis.com/auth/calendar');

Notes

For rewrite rule to work: see this post https://stackoverflow.com/a/8260985/1805129

$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

To enable ssl

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl