Myra's Clinic

About This Page

Welcome to my page that includes all the information for my final IT115 project, creation of a Discord Bot, taught by one of the GOATs, Monte Faison.

I put a lot of effort into this bot, and have been glad to be of help to all my classmates that have needed it. I figured out the basics of Discord's bot API, along with using EC2 data within a couple of hours, but ended up spending a few more hours adding random little things here and there to spice up the bot. It was a fun challenge to dive deeper into Discord’s API and figure out how to make the bot more interactive and responsive. Beyond basic functionality, I added a few advanced features like logging the timestamp, logging messages, and creating custom commands. As I continued to develop it, I was constantly experimenting and refining it, making sure it was not only a final project that does the bare minimum, but also a useful tool to interact with. The project became a real learning experience, pushing me to think critically and creatively as I worked through each new feature.

I also decided to create this page to store everything in one place, that can all be linked from my main portal site I created in Bill Newman's IT116 class. I wanted to make sure everything was neatly organized and easy to navigate for anyone who might want to learn more about the bot, its features, or how it was built. By bringing everything together here, I can keep track of the project’s progress and see where I started when I look back in the future. This page not only helps me keep track of everything I’ve done with the bot, but it also allows me to add it to my portfolio, showing off what I've learned and created throughout this project.

Engineering Leadership Summary

This prototype is a Discord bot designed to integrate cloud-based EC2 metadata with real-time interaction in Discord, showcasing software development and cloud engineering skills. It retrieves EC2 instance details like region, IP, instance ID, and availability zone and makes them accessible through user-friendly commands in Discord. The bot also features command handling, error management, and contextual restrictions, ensuring it operates seamlessly in the respective channels. The bot keeps track of messages in real time and adjusts timestamps to the correct timezone, making messages easy to follow and track. This project demonstrates a strong understanding of Python programming, API interaction, and system integration.

Click Here to see the full repo.

Click Here to see the final python file.

Click Here to see the old code before I changed how commands are handled.

Click on an image to view it in full size.

11/26 - 11/27: Original creation of the bot. Day one was just figuring out basic code and integrating it with EC2. Day two was mainly spent helping others, swapping command handling and adding timestamps.

Bot Channel
Bot Commands functioning in #bot channel
Direct Messages
Direct messages with the bot
Aliased Commands
Using aliased commands with the bot
Terminal with Bot Comments
EC2 Terminal output with bot messages
Without EC2
Bot operation with fake data if running outside EC2
AWS Terminal without Bot
EC2 terminal without bot messages
Timestamps
First time outputting timestamps for messages

12/2: Adding randomly generated IPs and IDs if running outside of EC2 or if EC2 data is unavailable.

Timestamps
Discord UI with Randomly Generated IPs and IDs
Timestamps
VS Code Output
Timestamps
Discord UI in EC2
Timestamps
EC2 Output