update readme

This commit is contained in:
Fred Boniface 2022-12-08 21:22:01 +00:00
parent 7d9b447b28
commit 74fe18742f

View File

@ -1,31 +1,54 @@
# OwlBoard # OwlBoard
OwlBoard is the backend API that powers the Athena web application at athena.fb-infra.uk. OwlBoard is both a backend API, and a frontend Arrival/Departure board webapp.
Powered by Node.JS and using the ldbs-json module, the OwlBoard API provides up to date train departure information for any station in the UK. Powered by Node.JS and using the ldbs-json module, the OwlBoard API provides up to date train departure information for any station in the UK.
Whilst the application is open source, the webservice (owlboard.fb-infra.uk) is not openly available. National Rail Enquiries have limits on API access so to use this software yourself, you'll need to run your own instance after obtaining your own API key. Whilst the application is open source, the webservice (owlboard.fb-infra.uk) is not openly available. National Rail Enquiries have limits on API access so to use this software yourself, you'll need to run your own instance after obtaining your own API key.
The webservice (owlboard.fb-infra.uk) may contain ads to support the running of the service,
if ads are implemented, I intend to avoid 'dubious' advertisers that target and track users.
Currently only the public API is available as I am currently unable to request a key for the staff version.
## Requirements:
To run this server you will need:
- NodeJS
- Caching Reverse Proxy Server
- Not strictly neccessary but improves performance
- Do not cache anything on the /api/ path, API caching is done internally
- PostgreSQL Server
- Create a database and user for OwlBoard:
- DB Name: owlboard
- DB User: owlboard
- DB Pass: owlboard
- Default Name, User & Pass can be changed in /src/configs/database.configs.js
## WebApp Colours: ## WebApp Colours:
- To be updated - See CSS Variables
## API Endpoints: ## API Endpoints:
- /api: - /api:
- /test: - /test:
- GET: Check your connection with the server - GET: Check your connection with the server
- POST: Check your auth key - If `Authentication: Basic` header is provided your key will be checked, if not then just the conenction will be tested.
- Request Body JSON: `{"auth":""}`
- Returns JSON: `{"auth":"true/false"}`
- /list: - /list:
- GET: Get list of stations - GET: Get list of stations
- Request Header - Basic Auth -- Not Currently Implemented/Required on this route
- Returns JSON: `{"STATION NAME":{"CRS":"code","TIPLOC":"code"}}` - Returns JSON: `{"STATION NAME":{"CRS":"code","TIPLOC":"code"}}`
- /ldb: - /ldb:
- /{crs}: - /{crs}:
- GET: Get departure board for {crs} - GET: Get departure board for {crs}
- Returns JSON: Formatted as per ldb-json module. - Request Header - Basic Auth -- Not Currently Implemented/Required on this route
- Returns JSON: Formatted as per ldbs-json module.
- /gitea:
- POST: Post issue to Gitea Repo
- Not yet implemented, submit issues at https://git.fjla.uk/fred.boniface/owlboard
## Stack: ## Stack:
- app.js -> Launches server, Entry Point, defines routers and middlewares. - app.js -> Launches server, Entry Point, defines routers and middlewares.