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 up
On Windows:
PS> vagrant up
Once it's up, do a vagrant ssh
to enter the development environment.
Install the necessary packages.
$ npm install -g [email protected]
$ npm install -g [email protected]
$ 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 secrets.json
.
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
Visit localhost:8080
to see your local instance of NUSMods.
To get a complete, minified, production build under dist/
:
$ npm run build
Change the host in the production inventory file provisioning/production
and
execute the Ansible playbook against it:
$ ansible-playbook provisioning/production.yml -i provisioning/production
Working 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-api
The 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 install
Copyright (c) 2017 NUSModifications. Licensed under the MIT license.