NUSMods
![ghit.me](https://camo.githubusercontent.com/be47123b641eaffaf9214123e9b1877b2e4c66c1639963729f930d8d0ff50cc9/68747470733a2f2f676869742e6d652f62616467652e7376673f7265706f3d6e75736d6f64696669636174696f6e732f6e75736d6f6473)
NUSMods v3
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
Talk to us!
- Telegram: https://telegram.me/NUSMods
Setup with Vagrant
Prerequisites
Setup
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.
Setup without Vagrant
Prerequisites
Setup
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
.
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
Visit localhost:8080
to see your local instance of NUSMods.
Building for Production
To get a complete, minified, production build under dist/
:
$ npm run build
Deploying to Production
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
NUSMods API
Working with theNUSMods 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/
.
Optional Dependencies
- 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
License
Copyright (c) 2017 NUSModifications. Licensed under the MIT license.