Create three components that interact:
- A web app that serves a form. The form should functionally and visually mimic our user registration form. The submit handler should send an event & the data payload to
- A queue that receives the event, where it can be retrieved by
- An event consumer, which emails the form data to a preset address that you and we can access (e.g.,
[email protected]
)
Any language will do. Language-specific RabbitMQ tutorials are here, e.g.,
https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html
You can create a free, hosted RabbitMQ instance with CloudAMQP
Heroku would be a great place to host the web app and event consumer. We host most of our production applications there.
- Please submit back to us within 4 days of receiving the assignment. Roughly. We're not setting a timer.
- You should email the repo and web app URLs to
[email protected]
. - Avoid over-engineering, but do think about good engineering practices. Services can fail, requests can time out, etc.
- Any AMQP exchange type is fine. The point of introducing the queue element is to see how you deal with asynchronous event handling, not to get fancy.
- Don't skimp on comments!
- Your code must happily pass through a standard linter. We use Airbnb's code style guide.
- Pay attention to basic security and best practices as you handle the form submission and pass data around.
- Just to put a fine point on it: Your code should be something you would be proud to submit to an open source project, or on the job.
- Host your code in a public repo.
All of our code is open source on GitHub, in case you want to see what our coding styles look like, how we comment and document, and so on.
Let us know at [email protected]
if you have any questions, or need access to a hosting environment for the web app and/or event consumer.