Ten crazy cool python project ideas for 2022

Ten crazy cool python project ideas for 2022


Did you know Python is known as an all-rounder programming language?

Yes, it is, though it is not the best option for every single project .

You can use it to create desktop applications, games, mobile apps, websites, and APIs. It is incredibly popular in data science, machine learning, and artificial intelligence.

As such, you can build a wide range of projects with Python.

The first time I wrote this guide was two years ago. Since then, I have worked on many new things, learned a lot, and had incredible conversations with readers on Medium , Twitter , and the comments section, so it is time for me to revise it and share a few Python projects you should build to learn and have a ton of fun!

Note: If this is going to be your first Python project, I probably wouldn’t recommend them. Start with the basics first, and once you get those nailed, come back to this list to work on some interesting python projects.

Let’s have a look at them one by one.


Trading bot

Photo by <a
    href="https://unsplash.com/@nick604?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Nick Chong</a>
 on <a
    href="https://unsplash.com/s/photos/stock?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Unsplash</a>

Photo by Nick Chong on Unsplash

The economic situation is pretty hard, the stock market and crypto are having a rough time, but a lot of people are making money.

Though I wouldn’t recommend you bet your life savings on a trading bot unless you REALLY know what you are doing, it is a fun project to build, learn and have fun.

I have my bitcoin price predictor , it may not be the most accurate, but when I built it I learned so much about machine learning and ML algorithms.

There are many ways to predict stock or crypto prices, and I don’t want to limit you to the one I used. Try multiple things, play with the inputs, try, try, and learn while doing so.

You won’t be able to work on this python project without having access to good data, so here are some options for retrieving data that are worth mentioning:

And here are some additional resources that can help you understand trading a bit better:

You can also take reference from this open-source trading bot called freqtrade . It is an exciting Python project that implements multiple machine-learning models, though it is a very advanced project.


AI sports betting software

Photo by <a
    href="https://unsplash.com/@chinorocha?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Chino Rocha</a>
 on <a
    href="https://unsplash.com/s/photos/tennis?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Unsplash</a>

Photo by Chino Rocha on Unsplash

Similar to the trading bot, the idea here is to predict the outcome of events, but even if this Python project has some similarities, the way you would work on this project may be very different, as the underlying problem is.

A trading bot works on time series data, while a betting software like this one would learn from the past, but the data wouldn’t necessarily be correlated on time as is the case of stocks or crypto.

I built this project myself using tennis matches. Tennis is ideal as it is easier to work with than other sports like football, where the player’s composition can make a big difference in a team.

With tennis, you would compare the different game variables, like the players, the type of court, the surface, maybe even the tournament, or the match’s location, who knows.

You would then combine all the relevant attributes and build a machine learning model that will try to predict the outcome, or at least who would be the winner of the match.

There is a great website where you can download past data to train your models for different sports like tennis or football , but that website has many more options, so pick your sport, download the data, and start predicting games.


A data scraper

Image by the author

Image by the author

Build an app that takes an URL and extracts the data you need into a more machine-friendly format like JSON or CSV.

This is a great app that you can use with your AI sports betting software to monitor the AI’s progress over time and calculate what your accumulated earnings would have been.

But it can be used for so much more. For example, I run an automated program script software that scans my blog, looking for broken links, missing images, and other quality checks to ensure I keep my posts clean.

This project’s complexity will heavily depend on your requirements, but it is generally a great Python project idea for beginners.

If you want to learn more about web scraping, check out my guide on turning web pages into data with scrapy .


A note-taking terminal app

Photo by <a
    href="https://unsplash.com/@dtravisphd?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>David Travis</a>
 on <a
    href="https://unsplash.com/s/photos/note-taking?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Unsplash</a>

Photo by David Travis on Unsplash

It doesn’t sound too sexy, but hear me out. Recently I read the book “Building a second brain ” by Tiago Forte, and one fundamental idea of the book is to capture what resonates with you. It can be a task, a thought, a piece of information from the web, an audio clip, you name it.

I use various systems to store such information, like Todoist, Evernote, email, etc.

As I was working on my computer and an idea or task came into my mind, I had to open the relevant software and compose a note there, which was super counterproductive.

Since I created this tool, I can simply go to my terminal and send my thoughts to either of these systems with one command.

For building the command line application, I’m using Typer , a framework by Sebastián Ramírez, the creator of FastAPI .

As for the integrations, even though most of these services offer an API, I wanted something simpler to integrate, which would be easier to maintain and fix if I switched any of them.

What I noticed is that they all allow you to capture data from emails, you can send out an email to a specific address they provide, and the email gets imported into the tool.

It is not the most elegant solution, but it is the one I chose.

I followed this guide on sending emails using Python with SMTP to implement my solution. This guide is very complete and offers several options for sending emails.

Whatever you build for your terminal app can be a game changer in your productivity.


Automatically Move Files From One Folder to Another

Image by the author

Image by the author

This is a pretty simple project, but it can be helpful if you work with many files and want to keep them organized.

The idea is to have a folder where you store all your files and then have your Python script move the files into different folders based on some conditions.

For example, let’s say you have a folder with photos and want to move all the landscape photos into one folder and all the portrait photos into another.

Or maybe you have a bunch of text files, and you want to move all the files that contain the word “python” into one folder and all the others into another.

This project will teach you how to work with files and folders in Python and will be a great addition to your toolkit.

Again, I have a similar app to organize my accounting. Every month, I have to do the tedious task of sending all my incoming and outgoing invoices and bank, PayPal, and Stripe reports to my accountant.

It is painful enough that I need to download everything, but on top of that, I need to classify it in a particular folder structure they work with, name the files correctly and move them to a cloud folder that I have mapped locally.

This simple python project monitors my downloads folder, matches some files using regular expressions, and moves them to the correct folder so I don’t have to.


Build a greeting service for people entering your house

Image by the author

Image by the author

Here is one I haven’t built yet, but I would definitely do it when I get some time. The idea is simple, you will need a video camera somewhere in your house or garden, a python program monitoring that feeds and searches for faces.

Once a face is identified, it will look if it matches that of any person in a database, and if it does, it would play a message, something like “Welcome home {person’s name}”.

It could definitely freak out some people.

This is a more advanced project to work with, identifying faces in a photo could be simpler, but determining who that person is, belongs to a whole different level.

Over time, this project can even turn into a product, there are lots of possibilities with this kind of technology.


Build a thumbnail generator website

An example image that could be generated with the website

An example image that could be generated with the website

Blogs, news magazines, and others have to constantly be thinking on the thumbnails for their articles and posts.

This is such a problem, that many generate them automatically based on the title or other metadata of the article.

I used this approach for a bit but the script I was using had its limitations so I dropped it, I have ideas that could convert it into the ultimate tool.

You can use a tool like Pillow to create, add layers and text to the images , and that’s fantastic, but you can do much more.

Imagine that your software takes the user input, uses AI to generate a background for the thumbnail, using something like dall-e , then adds some box with transparency and the text on top.

Now you would have unique, art quality, thumbnails for each blog post, though following the same pattern.

This is all very doable, you would only need access to dall-e, and it could potentially convert into a product as well, though you will have to make it really nice, friendly to use, and customizable.


Create an API on top of a decentralized app

Photo by <a
    href="https://unsplash.com/@theshubhamdhage?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Shubham Dhage</a>
 on <a
    href="https://unsplash.com/s/photos/decentralized?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Unsplash</a>

Photo by Shubham Dhage on Unsplash

You could build your own decentralized app using smart contracts or make use of existing web3 applications and create an API wrapper around the. contracts.

That will enable other developers, or yourself, to build web3 applications easily, using web2 knowledge.

Such APIs present multiple challenges you will have to solve, and you will be learning a lot about web3.

A more concrete example, and something I worked on personally, is to create an off-chain voting system, backed by crypto, using signatures to guarantee votes, and batch transactions with the chain to save the results and its audits.


Story generator for kids

Photo by <a
    href="https://unsplash.com/@benwhitephotography?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Ben White</a>
 on <a
    href="https://unsplash.com/s/photos/kids-story?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Unsplash</a>

Photo by Ben White on Unsplash

This one is a bit more personal, as I love telling stories to my kids and making them laugh. But my knowledge of good stories is somewhat limited, so I get books to read with them, and sometimes I read the books myself to them tell them the stories, especially when we are ready to sleep.

I came up with the idea of creating a story generator for kids, you would choose different settings like “princess”, “dragon”, and “forest” and it would generate a short story using those elements.

It would be great to have different settings like the length of the story, number of characters, type of ending, and so on.

This project will require advanced AI, but with the help of gpt-3 or similar libraries, much of the complexity is reduced.

You will have to find a way to fine-tune the engine to produce relevant stories, and perhaps you can add your own filters, just to make sure, nothing, not PG-rated goes into the stories.

This can definitely turn into a product, where people generate their own stories into an ebook or printed book format that they can purchase.

As a bonus, imagine the expression on your kids when they and people they know are the main characters in the story.


An AI-powered chess game

Photo by <a
    href="https://unsplash.com/@randyfath?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Randy Fath</a>
 on <a
    href="https://unsplash.com/s/photos/chess?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"
    
     target="_blank" rel="noopener "
>Unsplash</a>

Photo by Randy Fath on Unsplash

The game of chess is a fantastic project to build, it has concepts like boards, game pieces with specific moving patterns, and many rules about the game, all of which will put your knowledge of algorithms to the test.

On top of that, if you want to build an AI that learns to play chess, you’ll be faced with incredible complexity, from how to serialize the status of the board efficiently, decide on what algorithms to use to train your network, generating valid moves, and build up a game strategy that can beat players.

Google and other big players have been dominating this space with projects like AlphaGo Master , AlphaGo Zero , and AlphaZero that can play Go (game) better than any professional human player.

That’s very hard to do, but perhaps you can start with a lower-level AI, that can beat a player like me.

About four years ago I built this project , it’s not that great, but you can take a look at the source code, and perhaps you can find inspiration to make it better.

If you make it better, please let me know, I’d like to put it to the test with my chess skills.


Summary

There, you go, ten Python project ideas you can build to level up your Python coding skills and learn a thing or two about other areas such as chess, productivity, sports, and more.

Do you have any other ideas? Please share them in the comments below. And if you build something using any of these ideas, I’d love to hear about it.

Happy coding!