https://github.com/mongodb/docs-coding-challenge
MongoDB Documentation Team coding challenge
https://github.com/mongodb/docs-coding-challenge
Last synced: 3 months ago
JSON representation
MongoDB Documentation Team coding challenge
- Host: GitHub
- URL: https://github.com/mongodb/docs-coding-challenge
- Owner: mongodb
- Created: 2016-10-03T18:44:18.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-10-04T15:20:45.000Z (over 8 years ago)
- Last Synced: 2025-01-29T09:43:37.608Z (3 months ago)
- Language: Python
- Homepage:
- Size: 9.77 KB
- Stars: 10
- Watchers: 8
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
The Challenge
=============Hopps is a simple document history-preserving key-value store built on
top of [MongoDB](https://www.mongodb.com) and
[Python](https://www.python.org).Your task, should you chose to accept it, is to document the Hopps API
and structure.Goals
=====Fill in the file ``docs.txt`` with documentation covering ``hopps.py``.
Use your best judgment! It is deliberately vague and slim.Setup
=====To work with Hopps, you will need Python 3.4 or later. On OS X and
Windows, use the installer from
[Python.org](https://www.python.org/downloads/).Next, you should set up a virtual environment. From within this
repository, run:pyvenv venv
. venv/bin/activate
pip install tornado motor docopt typingEnsure that you have MongoDB 3.2 or later installed from the
[MongoDB Download Center](https://www.mongodb.com/download-center).Start a MongoDB instance:
mkdir data
mongod --dbpath=`pwd`/data --logpath mongod.log --fork``sample.py`` demonstrates use of ``hopps.py``, and ``cli.py`` provides
a simple prompt interface for saving and retrieving documents.Start Hopps:
./sample.py
And in a new terminal, run the following:
./cli.py
helpUsage
=====Once you have started an instance and started the CLI tool, you can begin to
issue commands. For example, run the following command:save foo '{"_id": "ff36cf3a-fd3b-431e-863e-5dc89d4f075e", "name": "Bob", "n": 42}'
This will save a document into the `foo` collection. Nothing will be printed
until you press return a second time.To retrieve the document, run the following command and again press return:
get foo ff36cf3a-fd3b-431e-863e-5dc89d4f075e