# Ottoman

CI codecov npm version Commitizen friendly License

# Introduction

Ottoman is an ODM built for Couchbase and Node.js.

Ottoman's goal is to provide a better development experience while using Couchbase, bringing to developers a reliable tool to build systems that are easy to design, maintain, and scale.

# Installation

npm install ottoman@2.0.0-alpha.8

That's it, you are ready to use Ottoman.

# Dependencies Matrix

Supported version are:

Ottoman Nodejs Couchbase SDK Couchbase Server
^2.0.0 ^8.0.0 ^3.0.0 ^6.5.0

Notice: make sure you are using supported versions

# Getting started

import { connect, model } from "ottoman";

const User = model('User', { name: String });

const user = new User({name:'Jane Doe'});
user.save().then(() => console.log('Nice Job!'));

# Ottoman v2 main goals

  • To add support to Couchbase SDK 3.
  • To add typescript support.
  • To have a powerful query builder built-in.
  • To allow adding indexes to improve queries performance.
  • To have extendable Schemas using statics, methods, hooks.
  • To have Pluggable Schemas.

# Documentation

To check out examples and docs, visit v2.ottomanjs.com.

# Questions

For questions and support please use the official forum or contact community.

# Issues

Please make sure to read the Issue Reporting Checklist before opening an issue.

# Changelog

Detailed changes for each release are documented in the release notes.

# Stay In Touch

# Contributions

Please make sure to read the Contributing Guide before making a pull request. Thank you to all the people who already contributed to Couchbase Ottoman!

# Guide for Developers

  1. Install Couchbase Server Using Docker.

  2. Get the repo and install dependencies

$ git clone https://github.com/couchbaselabs/node-ottoman.git
$ cd node-ottoman
$ yarn install
  1. Available scripts
$ yarn dev
$ yarn build
$ yarn lint
$ yarn test
$ yarn test --coverage
$ yarn docs
$ yarn docs:dev

Check results on http://localhost:8091/ couchbase web client

# Deploying Ottoman to NPM

  • Pull master branch from repo
  • yarn install
  • ensure version number is bumped
  • yarn build
  • yarn is:ready
  • npm publish (--tag alpha or --tag beta)

# License

© Copyright 2013 Couchbase Inc.

Licensed under the Apache License, Version 2.0. See the Apache 2.0 license.