Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kiote/wimdu-cli


https://github.com/kiote/wimdu-cli

Last synced: about 7 hours ago
JSON representation

Awesome Lists containing this project

README

        

Z# Wimdu coding challenge

On wimdu.com, people can list their place to rent out. Wouldn't it be
great if there was a more nerdy way to enter your data? How about a
CLI?

## The task

Build a standalone app that allows users to list their place via a
CLI. For the sake of simplicity, the data is kept locally. Similar to
the web app it should be possible to enter partial data and continue
later. However, make sure that in the end all required data is
present. Only when all data is present the newly created property
should appear in the list of all properties.

* Allow users to create new properties from the command line
* Prompt for attributes, validate the input
* When the data entry is interrupted, provide a way to resume entering data
* Store the property in some local storage; make sure no invalid data
is stored
* Every property has the following attributes
* title
* property type, which is one of
* holiday home
* apartment
* private room
* address
* nightly rate in EUR
* max guests
* email
* phone number

An example session could look like this:

$ wimdu list
No properties found.

$ wimdu new
Starting with new property ABC1DEF2.

Title: Amazing room at Wimdu Office
Address: ^C

$ wimdu list
No offers found.

$ wimdu continue ABC1DEF2
Continuing with ABC1DEF2

Address: Voltastr. 5, 13355 Berlin
Nightly rate in EUR: 12
Max guests: Two

Error: must be a number

Max guests: 2
^C
$ wimdu continue ABC1DEF2
Continuing with ABC1DEF2

Email: [email protected]
Phone number: +1 555 2368

Great job! Listing ABC1DEF2 is complete!

$ wimdu list
Found 1 offer.

ABC1DEF2: Amazing Room at Wimdu Office

## Hints

It's totally fine to use 3rd party libraries like ruby's gems. You're
free to choose your storage mechanism/database. Just use the right
tool for the job.

It would be nice if you could send your results as a
repository. Either put it online or if you'd rather not have it be
public send it e.g. as a git bundle. Here's how to do that:

$ git bundle create jane-schmoe-wimdu-cli.bundle master

Just to check if stuff worked, you can clone from this file with

$ git clone -b master jane-schmoe-wimdu-cli.bundle

Mercurial also has a bundle feature. If you use any other version
control system we'd appreciate instructions on how to recreate the
repo.

Happy hacking!