- [Easy] raw HTML/CSS and little to none vanilla Javascript
- Flask for backend
- Use Heroku to host it for free
- [Intermediate] Use Jinja2 templating
- My website's source code
- Create a program that blurs a user defined image file
- No pointers on purpose
- Add a GUI to your program so that users don't need to use a CLI. [Intermediate]
- For a GUI, I recommend PySimpleGUI
- [Very Easy] A program that changes your desktop wallpaper from a selected file
- [Easy]: cycle through a folder of images and set the desktop wallpaper every 1 minute
- [Intermediate // Linux]: create a working cronjob (remove after you see it working)
- [Intermediate // Windows]: create a task in task scheduler
- [Hard // Linux]: In Bash/Python, automate the installation of the cronjob
Go to https://www.cia.gov/the-world-factbook/field/military-expenditures/country-comparison and use inspect elements, Your job is to parse this web page and filter the data so that only the data with the latest "date of information" remains. Output should be order-preserved and in a CSV file (filename is arbitrary) To make it easier (not recommended), you can assume the latest date of info is 2021 EST. To make it even easier (not recommended) just preserve the order and output all of the data in a CSV hint: use requests, bs4, and the csv module
- Spotify Reference
- You'll have to get a Spotify API key
- [Hard] Do this task without a predefined Spotify API Key (it is possible)
- See Search API Reference and make a program that lets users search for tracks using the Spotify API (you return a list of tracks)
- Demo for album art
- You just need to spit out a list of tracks
- [Intermediate] Sort the tracks by popularity (you'll have to search the documentation yourself)
- Either use sorted/sort and try to use a lambda instead of a function
- [Intermediate+] To make this even harder, you can add a sort by artists feature, etc.
- This is easier in 2022 than in 2017
- Simple text message with subject
- [Intermediate] Send up to 3 attachments and a text body
- [Intermediate+] Send HTML body module: at least smptlib
- If you are using gmail, you might have to change your security settings to allow custom clients
At first just append the contents to a .log or .txt file Use the 'a' open type to append to bottom. HARDER: YOU WILL INCLUDE COPIED AND PASTED ITEMS WITH custom syntax # (e.g. USER_COPIED("")), (e.g. USER_PASTED(""))
- This is a vary tedious task
- My vision is one soundboard to rule them all and this would ideally be an app
- Use PySimpleGUI for the GUI (Recommended but you don't have to)
- [+] Let your soundboard include support for different "packs"
- Specify a design/package guide for other users to create use their sounds on your soundboard default: your default pack PACKS_DIR/pack_name/sound_name/sound .mp3/ogg # pygame, playsound
- Do not compile to onefile, as onefile requires unpacking the app every time
- use sys.exit() instead of quit()
- use pyinstaller, or cx_freeze to package
- [Hard+] use Inno Installer to create a setup installer [Windows]
- [Hard+] Create a build script to automate the building
- Jungle Climb cx_freeze example
- One of my earliest projects was a Discord bot, but I stopped using it 4 years later
- Furthermore, Discord has changed their API, meaning that a lot of development effort has gone down the drain
- Make a YouTube channel about Cringey TikTok
- Every day, your bot will download 10 minutes worth of videos from r/TikTokCringe never downloaded before
- Use mongodb/sqlite to keep track of the videos already been downloaded
- Stitch the videos together using something like ffmpeg. I'm sure there are Python libraries too.
- Upload video to YouTube using YouTube APIs if possible
- Auto fill the video details
- Auto generate thumbnails using PIL by taking screenshots from 3 random videos and adding Nice looking text saying "Cringey TikTok Compilation #3)
- Deploy app to DigitalOcean or even self host and use cronjob or task scheduler
Email me or comment for bigger programming (not specifically Python) project ideas
If a project wasn't described very well, comment below (or email me) and I'll make it more descriptive.