nulpunt

module
v0.0.0-...-65af2ff Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2014 License: AGPL-3.0

README

================================

Build Status

This repository contains the server and the static web files (html,css,js) for Nulpunt

For more information about Nulpunt, please visit nulpunt.nu

Quickstart

  1. Install go
  2. Install MongoDB
  3. Fork the repository on GitHub
  4. Clone to local machine: git clone git@github.com:YOUR-USERNAME/nulpunt.git
  5. Execute: cd nulpunt
  6. Execute: GOPATH=$(PWD)/gopath go build npserver
  7. Run npserver: ./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.

Closed repo

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.

Development

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.

Please view the issues on this repo. If you have an idea or suggestion, please create a new issue.

Server development

Go

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. labix.org/v2/mgo). 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 .bashrc file.

Client development

The client, or "front-end", is written using HTML, CSS and Javascript. The client uses several existing projects/libraries to make things easier.

AngularJS

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

  1. Fork this repository on GitHub and clone to local.
  2. Create a new branch and start developing
  3. Make sure that the code is formated according to go fmt.
  4. Push your branch+changes to github and create a pull request.
  5. Pull request is automatically built by Jenkins.
  6. When PR is approved, it is merged into the master branch.
  7. Repeat from step 2 for each bugfix/feature.

CI

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).

OCR process

The quickstart and server instructions above do not include the OCR process (npanalyse). To get npanalyse up and running, perform the following:

  1. Install go.leptonica dependencies as explained here
  2. Install go.tesseract dependencies as explained here
  3. Install and run nsqlookupd and nsqd with their defaults (localhost): follow this quick start.
  4. Change dir into the root of your nulpunt repository clone
  5. Build npanalyse: GOPATH=$(pwd)/gopath go build npanalyse
  6. Install xpdf-utils, on Debian: apt-get install xpdf-utils, we need pdftoppm in it.
  7. Run npanalyse: ./npanalyse

Nulpunt is licensed under the AGPL version 3 license, except for third-party works as listed in the attribution file. For developer information about copyright, view the copyright-info file.

Directories

Path Synopsis
gopath
src/bitbucket.org/kardianos/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
src/code.google.com/p/go.crypto/bcrypt
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
src/code.google.com/p/go.crypto/blowfish
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
src/code.google.com/p/go.crypto/bn256
Package bn256 implements a particular bilinear group at the 128-bit security level.
Package bn256 implements a particular bilinear group at the 128-bit security level.
src/code.google.com/p/go.crypto/cast5
Package cast5 implements CAST5, as defined in RFC 2144.
Package cast5 implements CAST5, as defined in RFC 2144.
src/code.google.com/p/go.crypto/curve25519
Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
src/code.google.com/p/go.crypto/md4
Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
src/code.google.com/p/go.crypto/nacl/box
Package box authenticates and encrypts messages using public-key cryptography.
Package box authenticates and encrypts messages using public-key cryptography.
src/code.google.com/p/go.crypto/nacl/secretbox
Package secretbox encrypts and authenticates small messages.
Package secretbox encrypts and authenticates small messages.
src/code.google.com/p/go.crypto/ocsp
Package ocsp parses OCSP responses as specified in RFC 2560.
Package ocsp parses OCSP responses as specified in RFC 2560.
src/code.google.com/p/go.crypto/openpgp
Package openpgp implements high level operations on OpenPGP messages.
Package openpgp implements high level operations on OpenPGP messages.
src/code.google.com/p/go.crypto/openpgp/armor
Package armor implements OpenPGP ASCII Armor, see RFC 4880.
Package armor implements OpenPGP ASCII Armor, see RFC 4880.
src/code.google.com/p/go.crypto/openpgp/clearsign
Package clearsign generates and processes OpenPGP, clear-signed data.
Package clearsign generates and processes OpenPGP, clear-signed data.
src/code.google.com/p/go.crypto/openpgp/elgamal
Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v.
Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v.
src/code.google.com/p/go.crypto/openpgp/errors
Package errors contains common error types for the OpenPGP packages.
Package errors contains common error types for the OpenPGP packages.
src/code.google.com/p/go.crypto/openpgp/packet
Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
src/code.google.com/p/go.crypto/openpgp/s2k
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
src/code.google.com/p/go.crypto/otr
Package otr implements the Off The Record protocol as specified in http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html
Package otr implements the Off The Record protocol as specified in http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html
src/code.google.com/p/go.crypto/pbkdf2
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
src/code.google.com/p/go.crypto/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
src/code.google.com/p/go.crypto/ripemd160
Package ripemd160 implements the RIPEMD-160 hash algorithm.
Package ripemd160 implements the RIPEMD-160 hash algorithm.
src/code.google.com/p/go.crypto/salsa20
Package salsa20 implements the Salsa20 stream cipher as specified in http://cr.yp.to/snuffle/spec.pdf.
Package salsa20 implements the Salsa20 stream cipher as specified in http://cr.yp.to/snuffle/spec.pdf.
src/code.google.com/p/go.crypto/salsa20/salsa
Package salsa provides low-level access to functions in the Salsa family.
Package salsa provides low-level access to functions in the Salsa family.
src/code.google.com/p/go.crypto/scrypt
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
src/code.google.com/p/go.crypto/sha3
Package sha3 implements the SHA3 hash algorithm (formerly called Keccak) chosen by NIST in 2012.
Package sha3 implements the SHA3 hash algorithm (formerly called Keccak) chosen by NIST in 2012.
src/code.google.com/p/go.crypto/ssh
Package ssh implements an SSH client and server.
Package ssh implements an SSH client and server.
src/code.google.com/p/go.crypto/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
src/code.google.com/p/go.crypto/ssh/test
This package contains integration tests for the code.google.com/p/go.crypto/ssh package.
This package contains integration tests for the code.google.com/p/go.crypto/ssh package.
src/code.google.com/p/go.crypto/twofish
Package twofish implements Bruce Schneier's Twofish encryption algorithm.
Package twofish implements Bruce Schneier's Twofish encryption algorithm.
src/code.google.com/p/go.crypto/xtea
Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."
Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."
src/code.google.com/p/go.crypto/xts
Package xts implements the XTS cipher mode as specified in IEEE P1619/D16.
Package xts implements the XTS cipher mode as specified in IEEE P1619/D16.
src/code.google.com/p/snappy-go/snappy
Package snappy implements the snappy block-based compression format.
Package snappy implements the snappy block-based compression format.
src/github.com/GeertJohan/go.incremental
package incremental provides concurency-safe incremental numbers.
package incremental provides concurency-safe incremental numbers.
src/github.com/GeertJohan/go.rice/embedded
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
src/github.com/bitly/go-nsq
nsq is the official Go package for https://github.com/bitly/nsq
nsq is the official Go package for https://github.com/bitly/nsq
src/github.com/daaku/go.zipexe
Package zipexe attempts to open an executable binary file as a zip file.
Package zipexe attempts to open an executable binary file as a zip file.
src/github.com/gorilla/context
Package gorilla/context stores values shared during a request lifetime.
Package gorilla/context stores values shared during a request lifetime.
src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
src/github.com/jessevdk/go-flags
Package flags provides an extensive command line option parser.
Package flags provides an extensive command line option parser.
src/github.com/mreiferson/go-snappystream
snappystream wraps snappy-go and supplies a Reader and Writer for the snappy framed stream format:
snappystream wraps snappy-go and supplies a Reader and Writer for the snappy framed stream format:
src/github.com/nfnt/resize
Package resize implements various image resizing methods.
Package resize implements various image resizing methods.
src/labix.org/v2/mgo
The mgo ("mango") rich MongoDB driver for Go.
The mgo ("mango") rich MongoDB driver for Go.
src/labix.org/v2/mgo/txn
The txn package implements support for multi-document transactions.
The txn package implements support for multi-document transactions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL