All Projects → nikel-api → nikel

nikel-api / nikel

Licence: MIT license
A collection of data APIs for the University of Toronto

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to nikel

UofTCourseInfo
Adds tooltips to U of T courses mentioned across the web
Stars: ✭ 24 (-20%)
Mutual labels:  uoft, university-of-toronto
cytoscape-sbgn-stylesheet
View biological networks via Cytoscape.js and sbgn-ml
Stars: ✭ 47 (+56.67%)
Mutual labels:  uoft
uoftnotes
Notes for some of my courses at University of Toronto
Stars: ✭ 44 (+46.67%)
Mutual labels:  uoft
CSCD70
CSCD70 Compiler Optimization
Stars: ✭ 147 (+390%)
Mutual labels:  uoft
UofT-Timetable-Generator
A web application that generates timetables for university students at the University of Toronto
Stars: ✭ 34 (+13.33%)
Mutual labels:  uoft
iCtrl
UofT Engineering Lab Remote
Stars: ✭ 91 (+203.33%)
Mutual labels:  uoft
uoft-scrapers
Public web scraping scripts for the University of Toronto.
Stars: ✭ 48 (+60%)
Mutual labels:  uoft


Nikel API
Nikel API

A collection of data APIs for the University of Toronto.

Build Status API Status Go Report Card GoDoc License

DocumentationAPI WrappersSelf HostingConfigurationContributingLicense

Documentation

Nikel API Documentation

API Wrappers

Official

Unofficial

Please feel free to submit a pull request to add your own API wrapper to this list!

Self Hosting

Please consult the configuration section on what environment variables to set.

Using Docker via Docker compose

Deployment via Docker Hub images (recommended)

Make sure your docker version supports the docker-compose version displayed in the docker-compose.yaml file.

  1. Run docker-compose
docker-compose up -d

Traditional Deployment

Nikel should work on any 32/64 bit system with go installed (version 1.18+ is required).

  1. git clone
git clone https://github.com/nikel-api/nikel.git
  1. cd into nikel
cd nikel
  1. Update submodules
git submodule update --init
  1. cd into nikel-core
cd nikel-core
  1. Build nikel-core
go build
  1. Run nikel-core
./nikel-core (add .exe suffix if on Windows)

Configuration

  • By default, nikel-core should be listening and serving on port 8080. To change the port, modify the PORT environment variable.
  • To suppress debug logs, add the environment variable GIN_MODE with the value release.
  • To add optional rate limiting, add the environment variable RATE_LIMIT with a positive integer value representing the number of reqs/s.
  • To add optional disk backed cache (using LevelDB), add the environment variable CACHE_EXPIRY with a positive integer value representing the number of seconds to expire.

Contributing

For contributing, there are a few things to look out for:

  • Use go fmt github.com/nikel-api/nikel/... to format code.
  • Consult the article Godoc: documenting Go code on how to write comments if you aren't sure.
  • Use go test github.com/nikel-api/nikel/... -v to run all tests.
  • Please try to make a few tests to test code changes (not required, but is always good).

If you find any inconsistencies or parts of code that can be reworked, any pull requests are greatly appreciated.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].