Help contribute to the next version of NUSMods!
- Latest build: https://latest.nusmods.com/
- Code: https://github.com/nusmodifications/nusmods/tree/master/v3
- Issues: https://github.com/nusmodifications/nusmods/issues?q=is%3Aissue+is%3Aopen+label%3Av3
- Telegram: https://telegram.me/NUSMods
On Unix/Mac:
$ pip install ansible==2.1.0.0
$ vagrant upOn Windows:
PS> vagrant upOnce it's up, do a vagrant ssh to enter the development environment.
Install the necessary packages.
$ npm install -g npm@3.10.3
$ npm install -g gulp-cli@1.2.2
$ npm installIf 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 secrets.json.
First, SSH into the vagrant box (this command has to be run in the directory that Vagrantfile is in):
$ vagrant sshRun the development environment:
$ npm startVisit localhost:8080 to see your local instance of NUSMods.
To get a complete, minified, production build under dist/:
$ npm run buildChange the host in the production inventory file provisioning/production and
execute the Ansible playbook against it:
$ ansible-playbook provisioning/production.yml -i provisioning/productionWorking with the NUSMods API
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-apiThe development server serves the files generated in api/app/api under /api/,
so change baseUrl under app/config/application.json to point to /api/.
- 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 installCopyright (c) 2017 NUSModifications. Licensed under the MIT license.