github.com/gwitmond/nulpunt@v0.0.0-20140409222138-65af2ff40594/README.md (about) 1 0. 2 ================================ 3 4 [![Build Status](https://ci.nulpunt.nu/job/nightly/badge/icon)](https://ci.nulpunt.nu/job/nightly) 5 6 This repository contains the server and the static web files (html,css,js) for Nulpunt 7 8 For more information about Nulpunt, please visit [nulpunt.nu](http://nulpunt.nu) 9 10 ### Quickstart 11 1. [Install go](http://golang.org/doc/install/) 12 2. [Install MongoDB](http://www.mongodb.org/downloads) 13 3. Fork the repository on GitHub 14 4. Clone to local machine: `git clone git@github.com:YOUR-USERNAME/nulpunt.git` 15 5. Execute: `cd nulpunt` 16 6. Execute: `GOPATH=$(PWD)/gopath go build npserver` 17 7. Run npserver: `./npserver` 18 19 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. 20 21 ### Closed repo 22 The development of this application is closed fow now. If you know someone that wants to join, please ask an Owner ([GeertJohan](mailto:gjr19912@gmail.com)) to add this person to the "Contributors" team. 23 24 ### Development 25 26 Nulpunt consists of a seperate server and client web-application. The client web-application is a standalone SPA (Single Page Application). 27 The server exposes a set of [services](notes/server-api.md) to the client. The server uses MongoDB as a database, it's outline/structure is defined [here](notes/database.md). 28 29 Please view the [issues](https://github.com/nulpunt/nulpunt/issues?state=open) on this repo. If you have an idea or suggestion, please [create a new issue](https://github.com/nulpunt/nulpunt/issues/new). 30 31 #### Server development 32 33 ##### Go 34 The server is written using the go programming language. For more information, visit [golang.org](http://golang.org). 35 36 ##### Go dependencies (packages/libraries) 37 This project uses several third-party dependencies. Such as the `mgo` driver for MongoDB. 38 These dependencies (third-party packages) are to be imported by nulpunt code with their fully qualified import name (e.g. `labix.org/v2/mgo`). 39 We are keeping the source for imported packages within this repository for several reasons: 40 - A commit can always refer to the right version of a third-party package, because it is included in the commit. 41 - New third-party code must go through a PR, and can easily be checked. 42 - Project will still build when remote dependency is unreachable or removed. 43 44 You can permanently set the GOPATH for this project in your `.profile` file or `.bashrc` file. 45 46 #### Client development 47 The client, or "front-end", is written using HTML, CSS and Javascript. The client uses several existing projects/libraries to make things easier. 48 - [jQuery](http://jquery.com) 49 - [Bootstrap](http://getbootstrap.com) 50 - [AngularJS](http://angularjs.org), and some angular modules 51 - [Underscore](http://underscorejs.org) 52 - [CrytoJS](https://crypto-js.googlecode.com) 53 54 ##### AngularJS 55 It is important to understand how [AngularJS](http://angularjs.org) 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)](http://egghead.io/lessons), it's very easy to pick up. 56 57 #### How to contribute 58 1. Fork this repository on GitHub and clone to local. 59 2. Create a new branch and start developing 60 3. Make sure that the code is formated according to `go fmt`. 61 4. Push your branch+changes to github and create a pull request. 62 5. Pull request is automatically built by Jenkins. 63 6. When PR is approved, it is merged into the master branch. 64 7. Repeat from step 2 for each bugfix/feature. 65 66 #### CI 67 We have [jenkins](https://ci.nulpunt.nu)! 68 69 Jenkins performs two tasks: 70 - Run build and tests for each new PR (and new commits in that PR), then report status back to Github. 71 - Run nightly build and restart nightly when repository has changed (PR merged in). 72 73 #### OCR process 74 The quickstart and server instructions above do not include the OCR process (`npanalyse`). 75 To get `npanalyse` up and running, perform the following: 76 1. Install go.leptonica dependencies as explained [here](https://github.com/GeertJohan/go.leptonica) 77 2. Install go.tesseract dependencies as explained [here](https://github.com/GeertJohan/go.tesseract) 78 3. Install and run `nsqlookupd` and `nsqd` with their defaults (localhost): [follow this quick start](http://bitly.github.io/nsq/overview/quick_start.html). 79 4. Change dir into the root of your nulpunt repository clone 80 5. Build npanalyse: `GOPATH=$(pwd)/gopath go build npanalyse` 81 6. Install xpdf-utils, on Debian: apt-get install xpdf-utils, we need pdftoppm in it. 82 7. Run npanalyse: `./npanalyse` 83 84 #### Copyright 85 Nulpunt is licensed under the AGPL version 3 license, except for third-party works as listed in the [attribution](notes/attribution.md) file. 86 For developer information about copyright, view the [copyright-info](notes/copyright-info.md) file.