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?
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
- property type, which is one of
- holiday home
- private room
- nightly rate in EUR
- max guests
- 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@example.com Phone number: +1 555 2368 Great job! Listing ABC1DEF2 is complete! $ wimdu list Found 1 offer. ABC1DEF2: Amazing Room at Wimdu Office
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.