We need a bot to do... whatever you like. We'd like you to create a very simple bot that has a singular mission. A mission may be ordering a pizza, solving a problem or taking over the world. You should limit this to a 2-3 hour exercise.
To achieve its mission, a bot might:
- Ask the human many different questions, maybe with multiple choice answers
- Interact with a web API to help complete its mission (we like this one)
- Go crazy and use some Natural Language Processing (don't worry if you've never done this or can't fit into the timebox)
- Get creative and do none of the above
The bot should be constructed to the following spec :
- Live in a GitHub repo, please name the repo
${yourname}-${mission}-bot
e.g.alanturing-enigma-cracking-bot
- Created in JavaScript as an npm module, bonus points for published and installable
- Feel free to use any npm modules you feel might fit
- Code style is up to you! Functional, Object Orientated? Simplicity is the key!
- Every bot needs instructions, structure a README.md as both a user manual and technical factsheet, make some useful docs!
- Cover from clone to interaction with the bot.
- A tested bot is a happy bot, show off any unit, integration or other testing you might be familiar with
- Since this is time boxed, 100% coverage is not necessary
- Interaction between human and bot can be through any means you see fit, command line might be a place to start!
To help you focus, we care about these (in order of importance) :
- Readable and testable code
- Demonstrate usage and testing of asynchronous code (we love
async/await
) - Show off your testing skills
- Engineering best practices
- Useful documentation
- A published artefact
- A fun bot with plenty of puns
Don't worry if your bot is really simple, just have some fun.