Rebuilding My 7 Python Projects
This is how I rebuilt My Python Projects: Data Science, Web Development & Android Apps.
By Kaustubh Gupta, Python Developer
Photo by Fotis Fotopoulos on Unsplash
Python is an all-time favorite language for programming enthusiasts like me. I have a keen interest in this language and have been using it for over 2 years. This year I had a lot of spare time to work on my programming skills and developed a lot of projects centered on web development, android app, and Data Science. In this article, I will explain what was the purpose of each project, how I made it, my associated article with that project, and the GitHub repository link. Maybe this can seed a similar project idea in your mind too! Let’s explore these projects.
As a developer, we create hundreds of repositories and hardly few of them actually make it to the final project we showcase on social media/LinkedIn. This GitHub action allows you to generate a self-updating portfolio with Projects, Hackathons, and the latest Blogs. An index file is generated by this action, which with the help of GitHub pages gets deployed as soon as it is committed to the repository. The main purpose of this project was to serve as a helping hand in portraying the skills you have as projects developed by you.
An example preview generated by this action!
Initially, the project supported only one theme which was very basic in terms of interactivity, but as I received continuous feedback from the community, another theme was added to this project. This action is now flexible to choose constraints such as whether to add blogs, hackathons, choosing the type of GitHub stats you want to display, all are made optional in newer versions.
2. WhatsApp Group Chat Analyser
Being a Data Science follower, I am always curious about discovering trends in Data. I always try to look up real-world scenarios where data can be obtained easily, and when I discovered that WhatsApp has the functionality to export group chats, I couldn't resist analyzing the Data. I did it for my college group, was happy with that, but then got the idea that why not develop a generalized web application where anybody can upload their chat file and gather some interesting insights! This is exactly what this project does.
A GIF showing the web app usage
It takes up the exported chats file (without media), cleans it, runs all the stats generation custom functions, and displays it to the user on the go! The file uploaded is deleted as soon as the stats are generated for privacy. This web app displays the total emoji count, its usage over the group members, the activity of members per day, overall and on designated holidays, and some more features too! This is an excellent project for Data cleaning and visualization, or you can come up with a prediction model to predict the next chat of the person based on this data. There are endless possibilities!
3. University Result Portal
I am currently enrolled in college (3rd year) and pursuing my bachelor's from India. My university releases the semester exam results in form of long PDF’s which are usually cluttered with a lot of irrelevant information for a student. Even the subject names are in coded form, and it becomes difficult to calculate the credit score obtained. Also, predicting the rank of a candidate manually is next to impossible as there are around 6k students in every batch every year. To ease this process, I developed a parsing script that reads these long pdfs (some are close to 400 pages!), stores them in a readable format, applies all the data transformation techniques to obtain grade points, percentage, and ranks at college and university-level!
IPU is the name of my university
Assume an average of 5k records per semester, I have records for the 2017 batch onwards and there are two semesters in a year here. So I probably have 60k records till now! The website also offers a generate profile functionality that pulls up all the previous semester's results. This is one of my biggest projects I have ever made and took around 2 months for complete satisfaction.
4. University Android App
As I was successful in developing the website, it was time to expand this functionality to other platforms, and discovered how to make android apps in Python. It was possible because of the amazing library called Kivy and the material design of Kivymd. The has the ability to make requests to the backend API and displays as results in tabular form. It took a lot of time to have a good grasp of this library but it was worth it.
GIF Showing Usage of the App
As soon as I developed the app, I got so much interested in this that I wrote a complete series on medium, and here is the first part if you are interested to discover this library:
5. Telegram Bot!
I think, I went too far with this results project and made a telegram bot too! While developing the first version of the bot, I made a huge mistake to run an infinite loop that checks the new message and this process consumes a lot of resources. When I deployed it for the first time on Heroku, the very next day I got the mail that all my current hours have been consumed and that time I realized that I made a huge mistake. To resolve this issue, I adapted the webhook concept of Telegram that allows messages to be directly redirected to my link whenever it happens.
Another thing I did was integrating the bot into a flask server which helps in preventing the bot to go into an infinite loop! Now every time a person makes a result request, it sends it to the sleeping Heroku app, and with this request, the app state is changed and results are delivered.
6. Song Lyrics Fetcher
This project is special for me because, with this project, I won a competition! This is built using Brython that allows you to run Python code on front-end websites without any Flask, Django, or any other server. I made a song lyrics fetcher that makes an API call based on the artist's name and album passed to the website. This was so easy project that I hosted this project on GitHub pages that ensured longer uptime and no recurring costs!
GIF Example by Author
7. KivyML App
While discovering the Kivy & Kivymd library, I discovered that I can deploy a machine learning model on android. This was an indirect method as the python-to-android doesn't support sklearn for now. I had to deploy the model as an API on Heroku and then make GET requests to fetch the predictions and display them on the user screen. Though this was a naive approach and many other things could be implemented here but this was all I could think of when I build this project.
Bonus Project- My Website!
This is not a Python-based project but an automated Wix-generated website which I purchased in July 2019 for blogging purposes. Though as soon as I shifted to the medium platform for blogs, I don’t maintain this website that much, and as in this year-end, I promised to upgrade all my presentable projects, I had to tweak it so that a visitor can find it comfortable to surf.
Image Preview of Website by Author
This website has all my personal and non-technical articles that I write very few times in a year.
This was all about how I upgraded and managed my Python projects this year. I made a lot of other projects too but, these are the top 7 I choose for this article. Making a project is a whole systematic process from idea, to design, code and if applicable, deploying it on the internet. I think I provided some sort of motivation to you, the readers, to come up with your own ideas and show the world your skills.
With this, we come to the end of this article as well as the year 2020! Merry Christmas to all the readers (My birthday also falls on this day: Christmas😃) and if you like my articles or anyhow got benefited my these then make sure to follow me on medium or you could connect with me on LinkedIn. Sayonara!
Bio: Kaustubh Gupta is a Python Developer interested in Data Science and Machine Learning, having worked on various data related projects, with an interest in real-world applications of Machine Learning.
Original. Reposted with permission.
- How to organize your data science project in 2021
- Software Engineering Best Practices for Data Scientists
- 10 Amazing Machine Learning Projects of 2020