This repository contains the server and the static web files (html,css,js) for Nulpunt
For more information about Nulpunt, please visit nulpunt.nu
- Install go
- Install MongoDB
- Fork the repository on GitHub
- Clone to local machine:
git clone email@example.com:YOUR-USERNAME/nulpunt.git
GOPATH=$(PWD)/gopath go build npserver
- Run npserver:
For changes to go code, you must recompile and restart the server (steps 5 and 6). Changes to html/css/js only need browser refresh.
The development of this application is closed fow now. If you know someone that wants to join, please ask an Owner (GeertJohan) to add this person to the "Contributors" team.
Nulpunt consists of a seperate server and client web-application. The client web-application is a standalone SPA (Single Page Application). The server exposes a set of services to the client. The server uses MongoDB as a database, it's outline/structure is defined here.
The server is written using the go programming language. For more information, visit golang.org.
Go dependencies (packages/libraries)
This project uses several third-party dependencies. Such as the
mgo driver for MongoDB.
These dependencies (third-party packages) are to be imported by nulpunt code with their fully qualified import name (e.g.
We are keeping the source for imported packages within this repository for several reasons:
- A commit can always refer to the right version of a third-party package, because it is included in the commit.
- New third-party code must go through a PR, and can easily be checked.
- Project will still build when remote dependency is unreachable or removed.
You can permanently set the GOPATH for this project in your
.profile file or
It is important to understand how AngularJS works because this is the foundation for the nulpunt client application. If you have not worked with AngularJS yet, please folow some basic tutorials (scroll down), it's very easy to pick up.
How to contribute
- Fork this repository on GitHub and clone to local.
- Create a new branch and start developing
- Make sure that the code is formated according to
- Push your branch+changes to github and create a pull request.
- Pull request is automatically built by Jenkins.
- When PR is approved, it is merged into the master branch.
- Repeat from step 2 for each bugfix/feature.
We have jenkins!
Jenkins performs two tasks:
- Run build and tests for each new PR (and new commits in that PR), then report status back to Github.
- Run nightly build and restart nightly when repository has changed (PR merged in).
The quickstart and server instructions above do not include the OCR process (
npanalyse up and running, perform the following:
- Install go.leptonica dependencies as explained here
- Install go.tesseract dependencies as explained here
- Install and run
nsqdwith their defaults (localhost): follow this quick start.
- Change dir into the root of your nulpunt repository clone
- Build npanalyse:
GOPATH=$(pwd)/gopath go build npanalyse
- Install xpdf-utils, on Debian: apt-get install xpdf-utils, we need pdftoppm in it.
- Run npanalyse: