Inspiration
I was inspired to create something in Python since I've been doing Java for a long time now. I was interested in making Backend applications for requests and showing information through a database. I was also interested with WebDevelopment (HTML & CSS) and using that frontend technology to pair with a heavier language like Python. Since I wasn't really experienced with any of these, I wasn't planning on reinventing the wheel so I worked on a ToDoList with some extra features.
What it does
ToDoPlay is a ToDoList on a web application where you can posts your tasks. It shows the current date and what you posted for that day. You can delete the task from the table, and you can update the task if you want to add or delete some information. There's also an option next to the Update and Delete where you can Add or Take away youtube / spotify / any links (preferably music). When you click the play button it directs you to the youtube video or song that you linked so you can have something to listen to while doing your chores.
How I built it
ToDoPlay had HTML/CSS for the frontend, Python and the Flask framework for the backend, and sqlLite for the databases. I was searching all over Youtube and Google for a way to use Python for backend things and I stumbled upon Flask. The Flask framework seemed pretty intuitive so I searched up a video. Luckily, there was a youtuber named freeCodeCamp.org that showed you exactly how to make components of this ToDo List. I followed the steps to learn about Flask, Jinja2, and HTML/CSS to make the barebones todolist. With my own desire to improve the todolist, I decided to add different routes that allowed you to place your own links. These links would be stored into the database of sqlLite and returned to the front HTML/CSS through a button with a clickable Link. I also used HerokuApp to push the website into the public.
Challenges I ran into
One big challenge I ran into was trying to make something out of Python in the first place. It was hard trying to brainstorm of ideas when you've never even heard of backend before. Also, during the building stages, I stumbled upon a few problems with Flask. Figuring out routes and how to make a new one for the youtube links was quite challenging. Also, when I followed the tutorial, the database was already preset with columns. It took me a good 1-2 hours to figure out that I had to delete the database to input new fields like the video column. Also, tasks for Flask were a bit confusing which made me get a few Undefined errors.
Accomplishments that I'm proud of
Overall, I'm proud of just learning Python, Flask, databases, and how to work backend in a mini scale. Those words were always very daunting for me so finally creating something with these technologies was very satisfying. I also took the time to learn the technology too so I have a good understanding of how Flask can work at a basic level. During the challenging bugs, I also figured my way through, and I proudly got the databases, video links, and Flask Tasks to work. I also enjoyed designing the site as it looks very pretty. It looks simple with a table, but it also has nice colors with a cool play button.
What I learned
I learned about Python, pip, package management, APIs, Frameworks, requests, sqlLite, HTML, CSS, and posting your projects to the public web during this journey.
What's next for ToDoPlayer
I plan on trying to play audio files by splicing the youtube links and finding the id rather than opening the actual video in a different page. Also, the button was supposed to work better where it changed colors, so I plan on trying to add an autorefresh feature where the button changes colors if there is no link and if there is one. I had that feature on the project, and it worked, but it's very clunky and only works if you set the link to "None." I also plan on making the todo app even prettier.
Log in or sign up for Devpost to join the conversation.