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.