Did you know Python is called a universal programming language?

Yes, it is, although it should not be used in every project.

You can use it to create desktop applications, games, mobile applications, websites, and system software. It is even the most suitable language for implementing artificial intelligence and machine learning algorithms.

So over the past few weeks, I’ve collected some unique project ideas for Python developers. These project ideas are likely to get you excited about this amazing language. Best of all, you can hone your Python programming skills with these fun but challenging projects.

Let’s take a look.

1. Create a software GUI using voice commands

! [](https://img2.tuicool.com/N7vuUfy.png! web)

“Interactive Example — Original image from Unsplash uploaded by Headway and edited by the author”

There have been tremendous advances in desktop application development today. You can see many drag-and-drop GUI builders and speech recognition libraries. So why not combine them and create a user interface by talking to a computer?

This is a completely new concept, and after doing some research, I found that no one has tried it yet. Therefore, it can be more challenging than those mentioned below.

Here are some instructions for starting the project with Python. First, you need the following package:

  • Speech recognition library
  • PAGE – drag-and-drop GUI builder
  • PAGE of the document
  • How does PAGE work
  • Create the login window using PAGE

Now, the idea is to hardcode some voice commands, for example:

! [](https://img0.tuicool.com/uMbiiqQ.png! web)

You see what I mean? It is very straightforward to add more of these commands.

Because it would be a Minimum Viable Product (MVP). So, if you have to hard-code a lot of conditional statements (for example, if… Else), that’s perfectly fine.

With these basic commands set up, you can test your code. Now you can try to build a very basic login form in a window.

The main flexibility of this idea is that it can be used for game development, websites and mobile applications. Even if you use a different programming language.

2. AI gambling robot

! [](https://p6-tt-ipv6.byteimg.com/large/pgc-image/69afaed18b40428984d95ac952b5b4b6)

Tennis match – image from Unsplash uploaded by Moises Alex”

Gambling is an activity in which people predict the outcome and are rewarded if they guess correctly. In the past few years, there have been many technological advances in artificial intelligence, or machine learning.

For example, you may have heard of programs like AlphaGo Master, AlphaGo Zero, and AlphaZero that can play Go better than any professional human player. You can even get the source code for programs like Leela Zero.

The point I’m trying to make is that AI is becoming smarter than us. This means it can predict something better by considering all the possibilities and learning from past experience.

Let’s apply some concepts of supervised learning to Python to create an AI gambling robot. To start this project, here are some libraries you will need to use.

  • Pandas — Data analysis
  • NumPy – Multi-dimensional arrays, matrices, and mathematical functions
  • Scikit-learn — Machine learning
  • XGBoost — Gradient Boosting
  • Matplotlib – drawing
  • Seaborn — Visualization of statistics
  • Pickle — Serialization of Python objects

First, you need to choose a game (tennis, soccer, etc.) to predict the outcome. Now search for historical match result data that can be used to train the model.

For example, tennis match data in.csv format can be downloaded from tennis-data.co.uk.

If you’re not familiar with betting, here’s how it works.

  • You can bet $10 on Roger Federer at 1.3.
  • If he wins, you get $10 (actual amount) plus $3 (profit).
  • If he loses, you lose your money (for example, $10).

After training the model, we had to calculate the Confidence Level of each prediction, check the number of times the prediction was correct to understand the robot’s performance, and finally focus on return on investment (ROI).

A similar open source AI gambling robot project developed by Edouard Thomas can be downloaded.

Trading robots

! [](https://img2.tuicool.com/7ZB32i2.png! web)

Deal – Image by Unsplash uploaded by Nick Chong

The trading robot is very similar to the previous project in that it also requires AI to make predictions.

The question now is, can AI correctly predict stock price movements?

The answer, of course, is yes.

Before we can start, we need some data to develop a trading bot.

  • Yahoo Finance — Get stock data
  • Alpha Vantage — Real-time API for financial data

These resources from Investopedia may help train robots.

  • Beginner’s trading strategy
  • You have to pass this five-step test to trade

After reading these two articles, you will have a better understanding of when to buy stocks and when to sell them. This knowledge can easily be translated into Python programs that automatically make decisions for us.

You can also check out freqTrade, an open-source trading bot. It is built in Python and implements a variety of machine learning algorithms.

Iron Man Jarvis (AI-based virtual assistant)

! [](https://p1.pstatp.com/origin/pgc-image/64f5a03d258742039885e06292794845)

AI Assistant interface – Image uploaded by Joshua Sortino from Unsplash

The idea was based on the Hollywood film Iron Man series. The film revolves around technology, robotics and AI.

Here, Iron Man uses artificial intelligence to build a virtual assistant for himself. The program, called Jarvis, helps Iron Man with everyday tasks.

Iron Man issues instructions to Jarvis in plain English, and Jarvis responds in English. This means that our program needs speech recognition and text-to-speech capabilities.

These libraries are recommended:

  • Speech recognition
  • Text to Speech (TTS)

Now, you can hardcode voice commands, for example:

! [](https://p9-tt-ipv6.byteimg.com/large/pgc-image/af449b6f6ba84e9b96486357d4b0c973)

There are many other tasks you can perform with Jarvis, such as:

  • Set your phone alarm.
  • Constantly check your home’s security cameras and tell if anyone is waiting outside. You can add more features like face detection and recognition. It helps you understand who or how many people are out there.
  • Open/close the room Windows.
  • Turn on/off lights.
  • Automatically reply to emails.
  • Schedule tasks.

Even Mark Zuckerberg, the founder of Facebook, used Jarvis as a side project.

5. Monitor a website for upcoming artist concerts

! [](https://img1.tuicool.com/mMzEJ3f.png! web)

Tickets – Image from Unsplash uploaded by Andy Li

Songkick is a very popular service that provides information about upcoming concerts. Its API can be used to search for upcoming concerts by:

  • The artist
  • location
  • The venue
  • Date and time

You can create a Python script that uses Songkick’s API to check for a particular concert every day. Finally, whenever there’s a concert, send yourself an email.

Sometimes Songkick even displays a “buy tickets” link on its website. However, the link can be redirected to different sites for different concerts. This means that even if we use Internet scraping, it is difficult to buy tickets automatically.

Instead, we can simply display the “Buy tickets” link as it does in our application for manual manipulation.

6. Automatically renew the free SSL certificate for Let’s Encrypt

! [](https://p6-tt-ipv6.byteimg.com/large/pgc-image/df5bcd9d130b4bda9f7d765bde6a61ed)

Let’s Encrypt icon — letsencrypt.org/

Let’s Encrypt is a certificate authority that provides free SSL certificates. The problem, however, is that the certificate is only valid for 90 days. After 90 days, you must renew your subscription.

I think this is a great scenario for automation in Python. We can write some code to automatically renew the SSL certificate for a website before it expires.

Check out this code on GitHub for inspiration.

7. Identify individuals in a crowd

! [](https://p3-tt-ipv6.byteimg.com/large/pgc-image/a57dc65a8b344b58817d843f128a76f6)

Face recognition – author’s photo

Now, the government has installed surveillance cameras in public places to improve the safety of citizens. Most of these cameras are just for recording video, and forensic experts must manually identify or track individuals.

What if we created a Python program that could identify everyone in the camera in real time? First, we need to access the national ID database, which we may not have access to.

So, a simple option is to create a database that contains records of family members.

A library of facial recognition can then be used and linked to the camera’s output.

8. Contact tracing

! [](https://p1-tt-ipv6.byteimg.com/large/pgc-image/63e8854ad637475ba46815894faeb8ab)

Contact tracking app – Image from Unsplash uploaded by Markus Winkler

Contact tracing is a way of identifying all the people who came into contact with each other during a particular period of time. It is mainly used in pandemics like COVID-19 or HIV. Because we don’t have any data on who is infected, we can’t stop the spread.

Python can be used with a machine learning algorithm called DBSCAN (Density-Based Spatial Clustering of Applications with Noise) for contact tracing.

Since this is only a subsidiary project, no official figures are available. For now, it’s best to use Mockaroo to generate some actual test data.

You can check out this article to see the code implementation.

Automatically move files from one folder to another

! [](https://img0.tuicool.com/fQ3Y3qq.png! web)

Nautilus file Manager for Ubuntu – image uploaded by author

This is a very basic Python program that always monitors a folder, and whenever a file is added to that folder, it checks its type and moves it to a specific folder accordingly.

For example, we can keep track of our download folder. Now, when a new file is downloaded, it automatically moves it to another folder based on its type.

The.exe file is most likely a software setup program, so move it to the Software folder. Instead, move the image (PNG, JPG, GIF) to the Image folder.

In this way, we can organize different types of files for quick access.

10. Collect career-path videos from YouTube

! [](https://p3-tt-ipv6.byteimg.com/large/pgc-image/c7f827cc76264a8cbe690dd26acbab9d)

YouTube home page – Image from Unsplash uploaded by Kon Karampelas

Create an application that accepts the name of the vocational skill we need to learn.

For example, to become a Web developer, we need to learn:

  • HTML5
  • CSS3
  • JavaScript
  • Back-end languages (PHP, Node.js, Python, ASP.NET, or Java)
  • Bootstrap 4
  • WordPress
  • Back-end frameworks (Laravel, Codeigniter, Django, Flask, etc.)
  • And so on.

After you enter a skill, there is a “Generate career Path” button. It directs our program to search YouTube and select relevant videos/playlists for each skill. If there are a lot of similar skills videos, it will select the videos that have been watched, commented on and liked the most.

The program then groups the videos by skill and displays their thumbnails, titles, and links in a GUI.

It also analyzes the length of each video, aggregates it, and tells us how long it takes to learn that career path.

Now, as a user, we can watch these videos step by step and become masters of the profession.

conclusion

Challenging yourself with these unique programming projects can keep you energized, improve your skills, and help you explore new possibilities.

Some of the project ideas I mentioned above can also be used for your final project.

Now it’s time to showcase your creativity in the Python programming language and turn those ideas into something you can be proud of.