During ideation, I realised that I do not know much about sharks. On the other hand, the Blåhaj shark from IKEA is loved by many. The Blåhaj shark is very photogenic and a fun companion.

There is a word game called: 'Three-Line Poem', which is very popular in Korean Variety shows. The game is simple.

  • Players are given a 3 syllabus keywords.
  • They have to construct 3 sentences corresponding to the syllabus, making a poem.
  • The player wins if their poem makes sense and flows well.

This week, I wanted to learn something new. These days, I've been using Discord quite frequently. As such, I aimed to create a Discord bot.

Poetic Shark is all the above. A fun and informative shark-themed Discord bot.

What it does

Poetic Shark has a number of interactive features. Poetic Shark uses the newly launched SlashCommand feature by Discord. Now, we don't have to spam !help to get instructions for running the bot. It's all in the /, very convenient!

  1. /shark is the main star of Poetic Shark. Express your feelings, emphasise your emotions, express your words with an accompanying image.

    • Users are able to choose from 6 images.
    • Each image shows the Blåhaj shark in a scenario.
    • After picking one, users type out their caption and Poetic Shark creates the image with their caption.
    • Bonus 1: Make it a game. Come up with a 3 syllabus word (e.g computer) and caption a Blåhaj image. Play with friends and see who's the best poet!
    • Bonus 2: /shark is friendly. It has a profanity filter to remove the negativity.
  2. /blahaj is there, so you know where to find Blåhaj sharks in IKEA.

    • Enter a country, get stock availability information for a random store in said country.
    • Now, you can let your friends which IKEA has Blåhaj sharks, all in Discord.
  3. /randomsharkfact gives informative information for a random shark species.

    • Get shark information and a picture of the shark type!
    • There is a large collection of shark pictures, so chances are, you'll get a different picture.
  4. /frenzy allows you to show excitement. Or, drown out the Discord chat if it gets too boring.

    • Sends out a wave of 🦈 emojis to the Discord chat.

How we built it

  1. Discord.js module was used to interact with the Discord API.
  2. Written in Javascript with the Node.js environment.
  3. jimp to load the user captions and create images for the command, /shark.
  4. bad-word to filter out profanity before creating images.
  5. Canva, Preview (macOS) and Powerpoint were used to design the Blåhaj shark images.
  6. Python to extract out IKEA store information (buCode) and export to json files.
  7. ikea-availability-checker to receive stock availability information for Blåhaj shark plush (Product Id: 10373589).
  8. Kaggle Dataset Shark species by lautaro for shark species names and their photoes.
  9. wikipedia for node, to extract shark information.
  10. Google Compute Engine to host Poetic Shark Discord bot online. tmux to keep web server running.

Challenges we ran into

  1. Using Node.js. As I am still a beginner with Node.js, I had to get used to the syntax.
  2. It was my first time creating a Discord bot. As SlashCommands is a new feature, there is limited information (other than the documentation) on how to use it. So, I had to do a lot of trial and error.
  3. I spent quite a long time figuring out how to get ikea-availability-checker to work. I had to do some data preprocessing for the store information in Python.

Accomplishments that we're proud of

  1. Creating my first Discord bot! This is so cool! The / commands are so fun to use!
  2. Figuring out how to read documentation. (Again, patience is key.)
  3. Learning more about node.js and using npm packages.
  4. Got introduced to tmux. Very useful.
  5. Poetic Shark is live and online!

What we learned

  1. I learnt how to create a Discord bot and read their documentation.
  2. I learnt to incorporate npm pakages into my project. And, got to learn how to use a variety of packages.
  3. I learnt what is tmux.
  4. I learnt how to host my Discord bot online with Google Compute Engine.

What's next for Poetic Shark

  1. Create a fully interactive version of the 3 syllabus poem game.
    • Point system
    • Ability to vote
    • Add a countdown
  2. Extract more information for the /randomsharkfact command.
    • Habitat, where do the sharks live
    • Shark sightings
  3. Improve the /blahaj command.
    • Able to get stock availability at specific location
    • Expand to other Blåhaj Shark products. (Did you know they have Blåhaj carrier bags?)

Built With

Share this project: