Don’t Let Perfect Be the Enemy of Good Enough: AI Podcast App
When I enrolled in an advanced AI coding class as a beginner I knew it would push me outside my comfort zone. But I underestimated how much my perfectionism would emerge when our assignment was building an AI podcast app with the Whisper API and Streamlit. I don’t typically back down from too many challenges so I dove in headfirst, determined to complete all the steps needed to build the app from scratch and I wasn’t just going to complete it, but I wanted it to be perfect. TLDR: I had to build an AI podcast app using the Whisper API (transcribes audio to text). The app takes the transcribed text and pulls out key points and summarizes the podcast. The Web UI was built using Streamlit. https://colabpodcastapp-jaye.streamlit.app/ My zeal quickly led me down pointless rabbit holes resolving insignificant errors unrelated to the app’s core functionality. Deployment issues with the Modal platform persisted, despite diligently troubleshooting. I kept pushing forward though as I was determined to have flawless code execution rather than completing the minimum viable product given the timeline constraints. My teacher’s sent the class a message and said – don’t let perfect be the enemy of good enough. That was a message just for me. I spent so much time trying and failing to get Modal to work correctly that I had to accept that finishing mattered far more than endless nitpicking over minor imperfections. Though my app wasn’t totally polished, it worked well overall thanks to piecing together the steps I’d learned. The errors became valuable lessons about the realities of coding. I also gained practical skills in AI transcription, NLP, APIs, deployment, and more. My sense of pride emerged not from the final product itself, but from persevering through hurdles and self-doubt as a beginner and submitting my project. I also learned how to finally use Streamlit and push a project to GitHub. Learning to code clearly isn’t linear. The messy twists and turns of this project taught me things no straightforward tutorial ever could. I’m feeling motivated to keep practicing and building, focusing on progress over perfection. My app wasn’t flawless in the end. But it worked despite the roadblocks. By reframing mistakes as growth opportunities, I felt genuinely empowered creating something using AI. ANDDD I got my certificate of completion as well. All in all it was worth the effort. If you’d like to see the project in action you can click my app link here https://colabpodcastapp-jaye.streamlit.app/. I’m not sure how active it’ll be without regular use and sometimes Streamlit disables apps when they aren’t being used frequently. If that happens, you can also see the screenshots below.
Creating an AI Music Converter
As a beginner learning to code, I wanted to build a tool to simplify converting between music file formats. Specifically, I wanted an easy way to go from Apple’s .m4a audio files to the more universal .mp3 format. Rather than manually exporting and converting each time, I used python and flask to create a music file converter. I enlisted ChatGPT to assist with writing the scripts. The end result is a functional web app that accepts uploads of .m4a files and outputs .mp3 versions. For now it’s just a bare bones backend without much styling, but it served my goal of automating those tedious format conversions. Building this music converter gave me hands-on practice applying python and flask while also creating a useful utility for my own music library. I learned a lot in the process that I can build on in future coding projects. With some more polish, this has the potential to become a public web application. It was a nice to bring this functional tool to life with the help of AI.
Automating My Sister’s Baby Shower with ChatGPT
Planning my sister’s baby shower turned into an unexpected coding adventure. As an event planner, she had a very specific vision involving custom tickets and QR codes for her guests. With only a few days until the event, I decided to see if ChatGPT could help me use python to make her vision a reality. I described the ticket requirements to ChatGPT who provided step-by-step python scripts. After tackling environment setup hurdles, I followed its guidance to generate unique QR codes and names from a spreadsheet. Integrating them into a ticket template required learning new skills like coordinates in Photoshop. With the codes and names placed properly, I had individual tickets for each guest. But manually emailing and texting them to attendees seemed daunting. Once again, ChatGPT provided scripts to automate sending the tickets in bulk. I learned about APIs and SMTP in the process. The journey wasn’t completely smooth. Some outdated recommendations from ChatGPT led to roadblocks. Navigating the differences of SMS versus MMS texting proved time-consuming. With the deadline approaching rapidly, I ultimately used ClickSend to manually send multimedia texts to the few guests lacking email addresses. In the end, the baby shower was a success! The guests loved the custom tickets and forest theme. When I finally made it home to breathe- I reflected on my coding crash course. I’m far from a python expert, but I learned valuable skills. And I got to flex my creativity in new ways. Automating tasks that once seemed tedious and manual now seems possible. I’m continuing to improve by working on other coding projects and exploring GPT-4. Coding still feels like a foreign language, but having an AI assistant provides guidance and inspiration. Problem-solving with python and ChatGPT was deeply rewarding. I never expected party planning to motivate me to dip my toes into coding. But necessity breeds invention. And with the right tools, I believe I can automate anything! Below are some screenshots of the code I used in the scripts to make everything work. I managed to also get a script to work using Twilio’s API to text people, but since this was just a sample I didn’t want to pay for a custom phone number, and I also didn’t want to send it from a random phone number that said sent from Twilio’s free plan or whatever so I just manually texted using ClickSend’s platform. It was a much better experience than Twilio anyway. Create Unique QR Based on Name of Attendee Add QR Code to Tix Send Tix via Email This is the final product. Everyone was happy and had their tickets ready to show for entry. I designed the ticket quickly in Canva and got the coordinates for where to place the Name and QR code in Photoshop. That was by far the easiest part of this experiment. Lol. I later learned that I could’ve done this with EventBrite much faster, but it was a fun first project.