Talk to us!
- Telegram: https://telegram.me/NUSMods
Setup with Vagrant
$ pip install ansible==18.104.22.168 $ vagrant up
PS> vagrant up
Once it's up, do a
vagrant ssh to enter the development environment.
Setup without Vagrant
Install the necessary packages.
$ npm install -g email@example.com $ npm install -g firstname.lastname@example.org $ npm install
If you are working on
news.php, make a copy of
/app/config/secrets.json.example in the same directory and call it
secrets.json. Add your Facebook App credentials into the file
Building for Development
First, SSH into the vagrant box (this command has to be run in the directory that
Vagrantfile is in):
$ vagrant ssh
Run the development environment:
$ npm start
localhost:8080 to see your local instance of NUSMods.
Building for Production
To get a complete, minified, production build under
$ npm run build
Deploying to Production
Change the host in the production inventory file
execute the Ansible playbook against it:
$ ansible-playbook provisioning/production.yml -i provisioning/production
NUSMods is set up to work with the remote API at http://nusmods.com/api/ by default. To work with a local copy of the API:
$ git submodule update --init $ cd api $ npm install $ grunt # starts the crawling process in nusmods-api
The development server serves the files generated in
app/config/application.json to point to
- PHP for export, URL shortening, redirect and Facebook API proxy scripts.
- YOURLS for URL shortening.
- wkhtmltopdf and wkhtmltoimage for pdf and image export. Using the static binaries is suggested, as compiling with all the features of the static build needs a custom patched version of QT, which takes a long time to build.
- Facebook PHP SDK for Facebook API proxy.
- To install the PHP dependencies, simply do:
$ composer install
Copyright (c) 2017 NUSModifications. Licensed under the MIT license.