DEV Community

Kacper Włodarczyk
Kacper Włodarczyk

Posted on

[Python] Project ideas for every level of advancement

This list contains 6 project ideas that I made while learning programming. I can't say whether these projects will be easy for you or what tools you should use, I'm just sharing my experiences and hope they inspire you.
They are listed in a random order.

1. Space Catalog

Stack: Python, Tkinter
Source code
Image description

This was my first "bigger" project that I created over a year ago. It's a simple GUI application that allows users to access information about planets and search for "Image of the Day" from the NASA API.
I used Tkinter to build the GUI. However, if I were to create something similar today, I would use Flet, which is a relatively new framework for building GUI applications on Windows, Linux, macOS, Android, and iOS.
Of course, you don't have to create an application about space; it could be about car brands, plants, or anything else.

2. Weather Music

Stack: Python, Django, HTML, Bootstrap, CSS, Docker, PostgreSQL
Source code
Image description

I believe this was my first Django project. This program retrieves the user's location and, with the help of an external API, provides the current weather for that location.
However, it seemed too simple to me, so I expanded the program to include access to Spotify playlists. The algorithm, though simple, selects appropriate playlists for the user based on the weather conditions.

3. OLX Analytics

Stack: Python, Flask, HTML, CSS, Bootstrap, Docker, SQLite, APScheduler
Source code
Image description

OLX is a Polish platform for classified ads. They have an open API (more about that in the next article) that allowed me to easily scrape and parse data about apartment listings for sale or rent. This enables users to search for new offers and access other interesting statistics.
I also used APScheduler to automatically send emails with new offers to users.

4. Wallpaper Manager

Stack: Python, Tkinter
Source code
Image description

I never finished this app, but it has all the necessary functionalities.
It was inspired by "wallpaper engine," and that's why I'm including this project here.
You don't need to create something entirely new. Just take a moment, look at the apps you currently use, and try to recreate them. The point of personal projects is to practice, encounter new challenges, and learn new things.

5. Facebook Spy

I've already written an article about this project, so check it out here -> Article.

6. FJob

Stack: Python, Selenium, BeautifulSoup, Rest Framework, Celery, Django Celery Beat, PostgreSQL, Docker, Docker Compose, React (JavaScript + Vite)
Source code

Well... 356 commits, but there's still a lot of work to be done.

I'm including this project here to show you how different programming elements can be combined.
The core of this project consists of web scrapers that collect data from websites such as OLX, Pracujpl, nofluffjobs, justjoinit, etc.
This data is then stored in a database and accessed via a REST API created using the Django Rest Framework.
The user interface is built using React and JavaScript.

This application may seem extensive, but it's essentially a collection of interconnected pieces.
If you're interested in data collection from websites, think about the various ways you can use that data. It can be used for training artificial intelligence, conducting analyses, or helping people find jobs by consolidating all the data in one place.

Top comments (3)

Collapse
 
jordantylerburchett profile image
Jordan Tyler Burchett

Awesome, thank you for sharing.. These are all great concepts!

Happy Venturing 🙂💭

Collapse
 
nickdev profile image
Nick

Looks cool, mate!
Do u have any trouble during scrapping? I mean any kind of bans or anti-bot steps?

Collapse
 
deenuu1 profile image
Kacper Włodarczyk

Yes, I do. It hasn't happened to me yet in any of my private projects but this week I was doing a project for a client and the website was protected by Cloudflare and had a rate limit so I needed to use a proxy.
I tried to manipulate "User-Agents", "Referer" or different spacing between requests, but it didn't help and after X queries I was blocked by IP and nothing on the website loaded.
After a few days, when I was still doing this project and testing it without a proxy, the website changed its approach and instead of not loading the page after blocking, it displayed only one specific movie/series.