I love rap. It has played a huge role in my life. Believe it or not, I myself am an aspiring rapper. This application aims to assist rappers/songwriters in writing songs and learning how to rhyme quicker.
What does it do?
When the user enters a word, it displays a set of all of the words that rhyme with it.
How did we do it?
Using Python! It begins with an empty database. When the program is run, it prompts the user to enter a word. If the word is not found in our database, it will scrape the web (Rhymezone.com) to create a set of rhymes. It then adds the base word and all of it's rhymes to our database. Then the next time the user enters a word, if the word is found in our database, it pulls the list of rhymes from our database instead of having to webscrape.
Challenges we ran into
Neither of us knew how to create a database! We were looking into learning how to create a mySQL database. As a temporary solution, we create a "database" by reading/writing into a .txt file. Erich began looking into using a .csv file to speed up the process of retrieving the data. The program works using either, however it would be more professional to connect our program to a real database. The time constraint was, as always, the biggest challenge. We would have liked to have been farther along and had more to present, but as the late great Mac Miller once sang, "Ayy, gotta work with watcha got. Ayy, gotta work with watcha got."
Accomplishments that we're proud of
We learned a lot! We learned how to web scrape, we figured out a temporary solution for our database shortcoming, and we started learning how to use actual databases using mySQL.
What we learned
I learned that I want to be a software developer, Erich learned a lot about databases, we both learned to work together. We also realized how difficult it can be to work with time constraints. We had to put aside a lot of cool ideas in order to meet the deadline.
What's next for Rapository
a) Implementing a real database b) Machine learning. Given a base word, what are the top ten best/most frequent rhymes. c) Creating a solid user interface. Notepad on one side, suggestion box next to it displaying top ten rhymes for the current word. d) File storage. Users can save their work in files and folders. e) Autogenerate full songs/raps.