Hajk is an open source web GIS solution based on React, Material UI and OpenLayers. It is developed in Sweden and used by various municipalities and government agencies, as well as by public and private enterprises.
Please refer to CONTRIBUTING.md.
If you are a new user of Hajk, please visit our welcome page (Swedish only).
You can easily reach out to our community using the Discussions on GitHub.
The official, automatic build of the latest version can be found here: https://hajk-demo.netlify.app/.
For some real-life examples, see the following solutions:
Please refer to Hajk's official installation guide.
Note that Hajk consists of 3 applications: Client UI (which is the web map front end), Admin UI (which basically is a frontend for Client UI's configuration files) and a Backend service (the server application that provides the REST API consumed by the two UI applications).
Clone the repository: git clone https://github.com/hajkmap/Hajk.git
.
Note: There are currently two available backends for Hajk - you need to pick only one:
If unsure on which backend to pick, it is recommended to choose the NodeJS solution. It is easier to setup because it only requires NodeJS (which you already have if you want to develop for Hajk anyway).
hajk
repo dir, go to apps/backend
and install dependencies:cd apps/backend
npm install
.env
. It's fine to leave the defaults. Note which PORT
is specified, by default it is 3002
.npm run dev
http://localhost:3002
. There's also a nice API explorer available on http://localhost:3002/api-explorer/
.backend-dotnet
See Docker README for more information.
Now when Backend is up and running, it's time to start the Client UI (and optionally Admin UI).
apps/client/public/appConfig.json
. Make sure that mapserviceBase
is a valid URL to a running instance of the Backend (if you're using the NodeJS application and your Backend is running on port 3002, you should set mapserviceBase
to "http://localhost:3002/api/v2"
.apps/client
. Go there (apps/client
) and install the dependencies and start by typing: npm i && npm start
.http://localhost:3000
.This process is similar to the Client app.
apps/admin/public/config.json
."url_map", "url_map_list", "url_map_create", "url_map_delete"
needs to point toward "http://localhost:3002/api/v2/mapconfig..."
, the rest is the same as for client/
_apps/admin
. To get it running do cd apps/admin && npm i && npm start
.http://localhost:3001
.The provided NodeJS backend comes with a built-in, optional static files server that allows you to deploy the Client and Admin applications through the Hajk's backend application (hence leverage the optional Active Directory connection to restrict access to e.g. the Admin UI app). For details, see this section in Backend's README.