This program is developed during Orbital 2020 and the development has ceased since the end of the event. It is no longer actively maintained.
This is the backend server of Schrödinger's Box - an event sharing and publicizing platform targeting students and event organizers within NUS.
This app is still in early stage of development. All APIs provided by this backend server complies with JSON:API Specification v1.0.
Link to frontend: https://github.com/Schrodinger-Box/frontend
API specification for this app is written in OpenAPI Specification (Version 3.0.3). Same as this backend server, it is still in early stage.
You can view it in a user-friendly documentation UI here at SwaggerHub.
Development logs / raw file can also be viewed at this Github repository.
git clone https://github.com/Schrodinger-Box/backend.git
cd backend
go build
cp schrodinger-box.sample.yaml schrodinger-box.yaml
vim schrodinger-box.sample.yaml
./schrodinger-box
Note: You will need Go v1.14.x for this server and its dependencies to build and run.
There are detailed explanation on each of the items in the config file. Please go check it out.
- Gin - Fast and light-weight web framework
- GORM - ORM library for Go
- openid.go - OpenID (NUS authentication) library
- gormid - OpenID nonce and discovery cache library
- tgbotapi - Go binding for Telegram Bot API
- cron - Cron-like scheduler for Go
- viper - Configuration loader
- ...
This backend server is open-sourced under The 3-Clause BSD License. Please refer to LICENSE for more information.