pointsight/README.MD
2022-03-06 18:36:36 +01:00

2.1 KiB

Pointsight

Pointsight is a centrailzed geolocatlized api aggreagtor.

To be done before feature lock

  • Feature to report points
  • API usage tracking (MySQL done; influx done; limiting tbd)
  • Proper error messages, on page crash loading failure, lost connection
  • Shareable points, open by link
  • Offline version
  • Filter sidebar

Configuration

This is the configuration with all it's defaults.

let jsonConfigGlobal = {
  fontAwesome: undefined,
  mapboxAccessToken: undefined,
  cookieSecret: undefined,
  mapquest: undefined,
  here: undefined,
  sentryDsn: undefined,
  database: {
    host: "127.0.0.1",
    user: "pointsight",
    password: "CHANGE_ME",
    database: "pointsight",
    customSettings: {
      wait_timout: 28800
    }
  },
  env: "PROD",
  maint: true,
  betaMode: false,
  port: 3000,
  adress: '127.0.0.1',
  taxonomyCacheInterval: 5,
  metrics: {
    influx: {
      enable: false,
      host: "127.0.0.1",
      database: "pointsight",
      user: "pointsight",
      password: "CHANGE_ME",
    },
    writeMetricsToMySQL: true
  }
}

How to deploy

  1. Make sure Node.js is installed
  2. Clone repo
  3. Run the npm install command
  4. Create the config/default.json file with proper settings
    1. Make sure env is set to PROD
    2. Make sure maint is set to false
    3. Make sure the database credentials are set
  5. Start the server with npm start, this starts the server on port 3000

Troubleshooting

The map stays empty

Cause: The data cannot be loaded because the API key was not imported.

Solution: Import the b03f8aaf-1f32-4d9e-914a-9a50f904833d into the apikeys table. After importing it you may use the apikey manager to change it's options.

The map is not being displayed

Cause: The maps tiles cannot be loaded as the API key is missing.

Solution: Make sure the config contains the correct apikey.

For developers

Adding a new module

  1. Copy the example module folder
  2. Change the main.js to your needs.
    1. Update the modules meta data in the getModuleMeta() funcion
    2. Make sure to use the right country for your module