Interview Task - Discord Bot
Interview Task - Discord Bot
Part of this challenge is assessing how you approach the implementation of a given feature,
ensure you are considering how implemented features may be used by an end user and how
they interact / integrate with the wider application.
User Requirements:
1. I would like my very own discord bot in my channel.
2. I want it to respond with PONG when I say PING in the channel.
3. I want to be able to set a timer and have the bot let me know when the time is up.
4. I want to be able to stop certain users in my channel from using the bot, I’d like to be
able to block these users without typing in the channel itself (privacy concerns)
Details:
1. Discord Bot Application:
• Connect to Discord API and join a specified channel.
• Respond to the command PING with PONG when typed by a user in the
channel.
• Respond to the command TIMER <time> where <time> is in minutes,
acknowledge receipt of the command, save the timer information to the
database via API, and after the elapsed time, send a message back to the user
in the Discord channel.
2. Backend API:
• Create a .NET API (using ASP.NET Core) to handle incoming requests from the
Discord bot.
• Implement an endpoint [POST] /timer to save timer information to a
database (we recommend some flavour of sql, SqlLite may be suitable for this
smaller application).
• Ensure that the API integrates seamlessly with the Discord bot application.
3. React Frontend:
• Develop a frontend interface using React.js for configuring the bot.
Systems Diagram:
Submission:
Please provide access to the project code / relevant documentation to Tom Raymond
(tom.raymond@ingentive.com) and Laurent Brickell (laurent.brickell@ingentive.com).
Work should be submitted at least 1 day prior to your 2nd interview date.