Inspiration
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!
/sharkis the main star ofPoetic 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 Sharkcreates 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:
/sharkis friendly. It has a profanity filter to remove the negativity.
/blahajis 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.
/randomsharkfactgives 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.
/frenzyallows 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.
- Sends out a wave of 🦈 emojis to the Discord chat.
How we built it
Discord.jsmodule was used to interact with theDiscord API.- Written in
Javascriptwith theNode.jsenvironment. jimpto load the user captions and create images for the command,/shark.bad-wordto filter out profanity before creating images.Canva,Preview (macOS)andPowerpointwere used to design the Blåhaj shark images.Pythonto extract out IKEA store information (buCode) and export tojsonfiles.ikea-availability-checkerto receive stock availability information for Blåhaj shark plush (Product Id: 10373589).- Kaggle Dataset Shark species by lautaro for shark species names and their photoes.
wikipediafor node, to extract shark information.Google Compute Engineto hostPoetic SharkDiscord bot online.tmuxto keep web server running.
Challenges we ran into
- Using
Node.js. As I am still a beginner withNode.js, I had to get used to the syntax. - It was my first time creating a Discord bot. As
SlashCommandsis 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. - I spent quite a long time figuring out how to get
ikea-availability-checkerto work. I had to do some data preprocessing for the store information inPython.
Accomplishments that we're proud of
- Creating my first Discord bot! This is so cool! The
/commands are so fun to use! - Figuring out how to read documentation. (Again, patience is key.)
- Learning more about
node.jsand using npm packages. - Got introduced to
tmux. Very useful. Poetic Sharkis live and online!
What we learned
- I learnt how to create a Discord bot and read their documentation.
- I learnt to incorporate npm pakages into my project. And, got to learn how to use a variety of packages.
- I learnt what is
tmux. - I learnt how to host my Discord bot online with
Google Compute Engine.
What's next for Poetic Shark
- Create a fully interactive version of the 3 syllabus poem game.
- Point system
- Ability to vote
- Add a countdown
- Extract more information for the
/randomsharkfactcommand.- Habitat, where do the sharks live
- Shark sightings
- Improve the
/blahajcommand.- 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
- bad-word
- canva
- discord
- google-compute-engine
- ikea-availability-checker
- jimp
- node.js
- python
- wikipedia
Log in or sign up for Devpost to join the conversation.