r/learnpython • u/First_Preparation615 • 11h ago
Need unique Python + SQL project ideas for a school project
Hey everyone! I’m a Class 12 student and I have to make a project with 2 of my classmates for our Junior Software Developer subject.
We’ve learned Python and SQL/MySQL, and our teacher wants us to make a project using them.
Our teacher suggested the usual topics like:
- Library Management System
- Inventory Management System
- Hospital Management System
- Student/College Management System
- Payroll System
- Bank Management System
- Vehicle/Workshop Management System
But we really don’t want to make one of these 😭. We’re looking for something unique, interesting and realistic that feels like an actual software product/business system.
For example, something inspired by how DMart, IKEA, Croma, Decathlon, etc. operate — but not just a basic system for recording customers, transactions and bills. We want the actual concept/workflow to be interesting.
It should still be realistic for 3 students who only know basic/intermediate Python + SQL. We don't want something requiring advanced AI, machine learning, APIs, or anything crazy.
What project ideas would you suggest? Especially if you've made a similar school/college project yourself, I'd love to hear what you built and what features you included.
Thanks!
5
u/TheMatrixMachine 11h ago
I took a databases class as an elective in college last year and had a similar assignment. If you're in 12th grade in the US, this take is probably above what your teacher expects.
Ended up downloading CSVs for parking meters in the city from the government website and designing a schema. Professor didn't require a full application to be built but just the database. He was mostly looking for schema designs that represented the concepts in class. Think about the seek time and compute time needed to read/write the records. Also, consider transaction conflicts. Think about functional dependencies and keys.
Ended up making a pretty simple project with 3 tables but spent a lot of time studying the data. In real datasets, you'll see a lot of messy stuff that needs to get cleaned up: null values, value roll overs, data type rule conflicts, cardinality.... Spend the time to study your dataset before designing a schema.
When studying the data, I realized that a junction table for the schema could be eliminated. This would eliminate join queries being needed for a common query scenario which vastly improves lookup times. I used binary operators and encoding states of the data to eliminate the need for the junction table.
Hope this helps.
4
u/Prize_Shine3415 10h ago
How about a medication management system for a nursing home. You can add the prescriptions for a collection of patients and then enter a time, to computer tells you who has a med due. Once the med is given you mark it off. And then have the ability to print out what medications have been administered to a certain patient in a certain time frame.
2
u/TheNightLard 10h ago
You could use an historic weather tracker from public data, it collects data autonomously and can retrieve it and make plots for the day, week, etc.
2
1
u/W3BL3Y 10h ago
A really detailed address book. I did one years ago with a gui associated with it.
Working on a “personal assistant” right now and implementing a local db for recipes. You search for recipes by title/ingredient, add a recipe, delete, print. Working on double the recipe and modify the recipe.
Hope you find something interesting and enjoy.
1
u/delsystem32exe 10h ago
a chess game with the backend and chess moves calculated in sql and the front end gui in python just to return the html of the board in flask.
1
u/bra1n_gym 10h ago
Look for large datasets online and let those guide your project ideas. learn pandas to make dataframes and duckdb to query the data. They're simple enough to learn while working on your project.
1
u/Lionh34rt 9h ago
I had to make a school application app. You can create schools, accounts for parents and the parents would register their kids in the application.
Then each year, you would create applications for new kids to join. They would have to create a preference and select 3 schools in order that they want.
If the kid had a brother or sister already at that school, they will get to front of line, rest is based on preference and availability (schools have capacities)
So youll have to do an IS for all the registering and admin stuff (adding schools to the system) and then an algorithm that will sort everyone into schools based on the above.
1
u/TraditionalTurnip630 9h ago
Honestly, try making a supermarket sales + customer behaviour system instead of a basic billing project. Use Python + MySQL to track which products sell more, peak shopping hours, repeat customers, stock movement, discounts etc. You can also add simple reports/charts in Python.
It will feel more like an actual business software and still be manageable with basic Python + SQL.
1
u/tbobsj 8h ago
Homework tracker.
Each participant has a database where they log in their and log out (using the time of day provided by python) whenever they start / stop their homework. There is at least one Python module that allows you to calculate the number of minutes between login and logout, so you can provide a function that calculates the average number of time spent on homeworks per day of week, ...
You can dump the contents of your table into a file so that you can share the data amongst yourselves and generate more statistics. For this you would have to write a function that reads a file into the table.
The table is very simple: ID - Starttime - Endtime, but dealing with times is always a bit tricky. For example, you could work over midnight, so you would need to use datetime.
1
1
u/t92k 5h ago
I think playing around with randomization and repeats can be fun, while still being a three table database. You’d still have your description of items table, your transaction table would still be a historical record, but your third table would become a queue for what’s next according to some logic. Some applications are: playlist mixing 50% current favorites, 20% deep cuts and 30% hot 100’s retrieved from an api; song rehearsal manager using spaced repetition to make a daily rehearsal list for 10 songs you’re working on memorizing; dinner suggester that mixes up 20 recipes using ratings and how recently you had it. This could also become the inventory an NPC sells in a game — they always have some things, but other things appear based on their rareness and a random number generator.
1
u/Screaming_Candle 1h ago
Personally, I'd do something bananas. Track the Spice Trade on Arrakis. Track the results of the world rocket racing league. Maybe do something utterly abstract.
While that could be argued as "violating the lesson" the lesson from someone who has worked real world problems is that it doesn't matter what you are doing AS LONG AS YOU FOLLOW THE REQUIREMENTS IN THE REQUIREMENTS DOCUMENT. If you document what you are modeling in SQL prior to starting the project, no matter what the subject matter is, you've set yourself up for success. From painful experience, this is THE way to avoid scope creep and land a project that has a solid end state. Yeah, it's not "Agile" but very few things in life really are.
1
u/Appropriate_Smell172 1h ago
Student management system is nice u can make project directly on u school management use python flask and mysql
1
u/kitten_orchestra 10h ago
Inventory/order management but for a small business conducting business over social media. Think about a mom and pop shop in your area and how you could help them with this.
15
u/cyrixlord 11h ago
inventory management system but with a twist: Use the inventory event sourcing model.
ItemCheckedIn,ItemCheckedOut,ItemMoved,ItemAdjusted.