/nusmods-cloud

Back end for NUSMods

Primary LanguageRubyMIT LicenseMIT

NUSModsCloud <img src=“https://travis-ci.org/nusmodifications/nusmods-cloud.svg?branch=master” alt=“Build Status” /> <img src=“https://codeclimate.com/github/nusmodifications/nusmods-cloud/badges/gpa.svg” />

Backend for social features of NUSMods.

What can NUSModsCloud do?

  • Login via IVLE

  • Retrieve module list from IVLE

  • Sync timetables across different devices

  • Send requests to add friends and share timetables

Contribute

Dependencies:

  • ruby

  • rails-api

  • postgresql

How to run it:

  1. Fork this repo.

  2. Install all the dependencies.

    brew install postgresql
    bundle install
    
  3. Set up database

    # See homebrew caveats for how to start postgresql. E.g.
    # postgresql -D /usr/local/var/postgres
    bundle exec rake db:setup
    
  4. Get a IVLE API key from ivle.nus.edu.sg/LAPI/default.aspx

  5. Run

    IVLE_API_KEY=your_api_key_here bundle exec rails-api server
  6. You may test the APIs using Postman

How to contribute:

  1. Branch out from latest master

    git checkout -b new_feature
  2. Assign the issue (create if not exist) to yourself to avoid multiple people working on the same issue.

  3. Implement the new feature / bug fix

  4. Add the spec of your feature in specs/, make sure all of them passes

  5. Create a PR.

You can also do it in a TDD (Test Driven Development) way.

  1. Branch out from latest master

  2. Create the specs of your feature.

  3. Implement your feature so that all the specs passes.

  4. Create a PR.

License

NUSModsCloud is released under MIT License