Inspiration
I am Sifat, a Class 8 student from Bangladesh. In our BGS subject, we face many problems related to calculations. Topics like Population Density, Birth Rate, Death Rate, and Growth Rate are very important for our exams. But solving them with a normal calculator takes a lot of time. Also, many students get confused with the formulas.
During my exam preparation, I thought: "What if I could make a tool that solves these problems instantly?" My goal was to help Class 6 to Class 10 students in Bangladesh who struggle with BGS math. I wanted to make learning easier and faster. That’s how the idea of "Sifat's BGS and General Calculator" was born.
What it does
This is a complete desktop application built with Python. It is designed specifically for Bangladeshi students. The app has 4 powerful tabs:
General Calculator: This tab works like a normal calculator. It can do Addition, Subtraction, Multiplication, and Division. It also has strong error handling. If a user enters text instead of a number, or tries to divide by zero, it shows a friendly error message in Bangla instead of crashing.
Population Density Calculator: This is one of the most important BGS formulas. Students just need to enter Total Population and Total Area in square kilometers. The app instantly calculates Population Density = Population / Area and shows the result as "people per square kilometer".
Birth Rate & Death Rate Calculator: This tab helps with demography. Users enter Total Births in a year, Total Deaths in a year, and Mid-year Population. The app then calculates 3 things:
- Birth Rate per 1000 people
- Death Rate per 1000 people
- Natural Growth Rate in percentage This saves a lot of time during exams.
Juvenile Delinquency Information: BGS has a big chapter on "Kishor Oporadh". Instead of searching in books, students can click one button and get all the "Causes" and "Solutions" of juvenile delinquency written in proper Bangla.
Extra Features: The app has a "Copy Result" button. After getting any answer, users can copy it with 1 click. It also shows a "Features" popup when the app starts.
How I built it
I developed this project using Python 3.10. For the Graphical User Interface, I used the built-in Tkinter and ttk library. ttk.Notebook was used to create the 4 tabs. For displaying long results, I used scrolledtext.ScrolledText.
For user notifications, I used messagebox from Tkinter. A major challenge was Bangla language support. So I wrote code to automatically detect if Kalpurush or SolaimanLipi font is installed on the user's PC. If not, it shows a warning and uses Arial as a fallback.
The entire code is organized into functions. Each tab has its own calculation function. This makes the code clean and easy to update in the future. The total code is around 150+ lines.
Challenges I ran into
- Language Support: Making sure Bangla text displays correctly on all Windows PCs was the biggest challenge. Many PCs don’t have Bangla fonts.
- UI/UX Design: Fitting 4 different tools into one window without making it look messy. Using tabs was the best solution.
- Error Handling: I had to think about all possible wrong inputs a user might give and handle them gracefully.
- Formula Accuracy: Making sure the Birth Rate and Growth Rate formulas were 100% accurate according to our BGS textbook.
What I learned
This project taught me a lot. Technically, I learned advanced Tkinter, how to manage multiple tabs, how to use fonts, and how to handle errors.
But more importantly, I learned how to identify a real problem and build a solution for it. I learned how to convert textbook formulas into working code. This project increased my confidence in Python programming.
What's next for the project
This is just Version 4.7. In the future, I plan to:
- Add more BGS chapters like Geography, History, and Civics calculators.
- Add a "Save Result to File" feature.
- Convert this app into a .exe file so students who don't have Python can also use it.
- Add English language support.
Conclusion
"Sifat's BGS and General Calculator" is more than just a calculator. It is a learning tool made by a student, for students. I hope this app helps thousands of students in Bangladesh score better in BGS.
Technical Details
Language: Python 3
GUI Library: Tkinter, ttk
Other Libraries: scrolledtext, messagebox, font
Total Tabs: 4
Current Version: 4.7
Target Audience: Class 6-10 Students in Bangladesh
Built With
- gui
- pillow
- python
- tkinter
Log in or sign up for Devpost to join the conversation.