Skip to content

Repository files navigation

Nebula API

A database for some really useful UTD data collected by our tools.

Project maintained by Nebula Labs.

Documentation

Documentation for the current production API can be found here.

How to use Nebula API in your own project

  • Visit our Discord and ask to be provisioned an API key (please provide details on your use case)
  • Read the documentation listed above (and authenticate with your key for interactive demos)
  • Make requests to https://api.utdnebula.com with your provisioned api key set as the x-api-key request header
  • Build cool stuff!

Contributing

Contributions are welcome!

This project uses the MIT License.

Please visit our Discord and talk to us if you'd like to contribute! Don't be afraid to ask for help!

How to Contribute

Create your own fork by forking this repository

Clone your forked repository. (Don't forget to install Git if you haven't already)

Submit proposed changes via a Pull Request

Repository Structure

  • rest/ - REST API service implementation
  • internal/ - Shared schemas, models, and utilities across services
  • Makefile & build.bat - Root-level build and development scripts

Building

Requirements

Building for Windows

Setup Go Dependencies with:

.\build.bat setup

Build with:

.\build.bat build

This will create an executable named rest-api.exe in the root directory.

Run with:

.\rest-api.exe

Note: Some users have experienced issues with Windows Defender or other antivirus blocking rest-api.exe from reading files, editing files, or causing slowed performance. Consider adding an exception to your nebula-api folder.

Building for macOS, Linux, and WSL

Setup Go dependencies with:

make setup

Build with:

make build

This will create an executable named rest-api in the root directory.

Note: If Make fails with "swag: No such file or directory" or similar, you may need to add GOPATH/bin to your path. On Mac/Linux, use echo 'export PATH=${PATH}:'$(go env GOPATH)'/bin' >> ~/.zshrc && source ~/.zshrc (or .bashrc) to add it permanently.

Run with:

./rest-api

Running API locally

Copy .env.template to .env with:

cp .env.template .env

Enter Nebula MongoDB URI in .env (ask for help in the Discord)

Run rest-api:

./rest-api

Check command output to see the route serving traffic. It's likely port 8080.

Visit http://localhost:8080 to access nebula-api locally.

Storage and email routes require additional environment variables. If you're working on these routes, ask for help in the Discord

About

The central API for Nebula Labs. Makes UTD data easily available through endpoints for both internal and public usage.

Topics

Resources

Stars

34 stars

Watchers

4 watching

Forks

Releases

Used by

Contributors

Languages