Test your Python skills with these 10 projects
Create a software GUI using voice commands
These days, massive progress has been made in the field of desktop application development. You will see many drag & drop GUI builders and speech recognition libraries. So, why not join them together and create a user interface by talking with the computer?
This is purely a new concept and after some research, I found that no one has ever attempted to do it. So, it might be a little bit more challenging than the ones mentioned below.
Here are some instructions to get started on this project using Python. First of all, you need these packages:-
Now, the idea is to hardcode some speech commands like:
Since this is going to be a Minimum Viable Product (MVP), it’s completely fine if you have to hardcode many conditional statements. You get the point, right? It’s very simple and straightforward to add more commands like these.
After setting up some basic commands, it’s time to test the code. For now, you can try to build a very basic login form in a window.
The major flexibility of this idea is it can be implemented for game development, websites, and mobile apps. Even in different programming languages.
AI betting bot
Betting is an activity where people predict an outcome and if they’re right then they receive a reward in return. Simple, right? Now, there are many technological advances that happened in artificial intelligence or machine learning in the past few years.
For example, you might have heard about programs likeAlphaGo Master,AlphaGo Zero, andAlphaZerothat can playGo (game)better than any professional human player. You can even get thesource codeof a similar program called Leela Zero.
The point I want to convey is that AI is getting smarter than us. Meaning it can predict something better by taking into account all the possibilities and learn from past experiences.
Let’s apply some supervised learning concepts in Python to create an AI Betting Bot. Here are some libraries you need to get started:
To begin, you need to select a game (e.g. tennis, football, etc.) for predicting the results. Now, search for historical match results data that can be used to train the model.
For example, the data of tennis matches can be downloaded in .csv format from thetennis-data.co.uk website.
In case you’re not familiar with betting, here’s how it works.
After training the model, we have to compute the Confidence Level for each prediction, find out the performance of our bot by checking how many times the prediction was right, and finally keep an eye on Return On Investment (ROI).
Download a similar open-sourceAI Betting Bot Projectby Edouard Thomas.
A trading Bot
A trading bot is very similar to the previous project because it also requires AI for prediction. Now the question is whether an AI can correctly predict the fluctuation of stock prices? And, the answer is Yes.
Before getting started, we need some data to develop a trading bot:
These resources from Investopedia might help in training the bot:1
After reading both of these articles, you will now have a better understanding of when to buy stocks and when not to. This knowledge can easily be transformed into a Python program that automatically makes the decision for us.
You can also take reference from this open-source trading bot calledfreqtrade. It is built using Python and implements several machine learning algorithms.
Iron Man Jarvis (an AI based virtual assistant)
This idea is taken from the Hollywood movie seriesIron Man. The movie revolves around technology, robots, and AI.
Here, theIron Manhas built a virtual assistant for himself using artificial intelligence. The program is known as Jarvis that helpsIron Manin everyday tasks.
Iron Mangives instructions to Jarvis using simple English language and Jarvis responds in English too. It means that our program will need speech recognition as well as text-to-speech functionalities.
I would recommend using these libraries:
For now, you can hardcode the speech commands like:
Once you set an alarm on mobile, you can also use Jarvis for tons of other tasks like:
Even Mark Zuckerberg has built aJarvisas a side-project.
Monitor a website to get informed about an upcoming concert or artist
Songkickis a very popular service that provides information about upcoming concerts. ItsAPIcan be used to search for upcoming concerts by:
You can create a Python script that keeps checking a specific concert daily using Songkick’s API. With all this set up, you can send an email to yourself whenever the concert is available.
Sometimes Songkick even displays a ‘buy tickets’ link on their website. But, this link could go to a different website for different concerts. It means it’s very difficult to automatically purchase tickets even if we make use of web scraping.
Instead, we can simply display the ‘buy tickets’ link as it’s in our application for manual action.
Automatically renew free ‘Let’s Encrypt’ SSL certificates
Let’s Encryptis a certificate authority that offers free SSL certificates. But, the issue is this certificate is only valid for 90 days. After 90 days, you have to renew it.
In my opinion, this is a great scenario for automation using Python. We can write some code that automatically renews a website SSL certificate before expiring.
Check out thiscode on GitHubfor inspiration.
Recognize people in a crowd
These days, governments have installed surveillance cameras in public places to increase the security of their citizens. Most of these cameras are merely to record video and then the forensic experts have to manually recognize or trace the individual.
What if we create a Python program that recognizes each person in camera in real-time. First of all, we need access to a national ID card database, which we probably don’t have, obviously.
So, an easy option is to create a database with your family members’ records.
You can then use aFace Recognitionlibrary and connect it with the output of the camera.
Contact tracing
Contact Tracing is a way to identify all those that have come into contact with each other during a specific time period. It’s mostly useful in a pandemic like COVID-19 because without any data about who is infected, we can’t stop its spread.
Python can be used with a machine learning algorithm called DBSCAN (Density-Based Spatial Clustering of Applications with Noise) for contact tracing.
As this is just a side-project, so we don’t have access to any official data. For now, it’s better to generate some realistic test data usingMockaroo.
You may have a look atthis articlefor specific code implementation.
Automatically move files from one folder to another
This is a very basic Python program that keeps monitoring a folder. Whenever a file is added in that folder it checks its type and moves it to a specific folder accordingly.
For example, we can track our downloads folder. Now, when a new file is downloaded, then it will automatically be moved in another folder according to its type.
.exe files are most probably software setups, so move them inside the “software” folder. Whereas, moving images (png, jpg, gif) inside the “images” folder.
This way we can organize different types of files for quick access.
Gather career path videos From YouTube
Create an application that accepts the names of skills that we need to learn for a career.
For example, to become a web developer, we need to learn:
After entering the skills, there will be a “Generate Career Path” button. It instructs our program to search YouTube and select relevant videos/playlists according to each skill. In case there are many similar videos for skill then it will select the one with the most views, comments and likes.
The program then groups these videos according to skills and display their thumbnail, title, and link in the GUI. It will also analyze the duration of each video, aggregate them, and then inform us about how much time it will take to learn this career path. Now, as a user, we can watch these videos which are ordered in a step by step manner to become a master in this career.
Challenging yourself with unique programming projects keeps you active, enhance your skills, and helps you explore new possibilities. Some of the project ideas I mentioned above can also be used as your Final Year Project. It’s time to show your creativity with Python programming language and turn these ideas into something you’re proud of.
Thisarticlewas originally published onLive Code StreambyJuan Cruz Martinez(twitter:@bajcmartinez), founder and publisher of Live Code Stream, entrepreneur, developer, author, speaker, and doer of things.
Live Code Streamis also available as a free weekly newsletter. Sign up for updates on everything related to programming, AI, and computer science in general.