Looking for Python projects for Class 12 Computer Science with full source code? You are in the right place. This page lists complete CBSE investigatory projects for Class 12 CS (Code 083) and Informatics Practices (Code 065) — covering Python–MySQL connectivity, Tkinter GUI, REST API integration, file handling, pandas data analysis, matplotlib visualisation, and more. Each project comes with executable source code so you can understand, run, and submit it confidently.
Quick Overview — All 17 Projects at a Glance
| # | Project Name | Key Technologies | Level |
|---|---|---|---|
| 1 | Book Store Management | Python, MySQL | ⭐⭐ |
| 2 | Library Management System | Python, MySQL | ⭐⭐ |
| 3 | Hospital Management System (CLI) | Python, MySQL | ⭐⭐⭐ |
| 4 | Hospital Management System (GUI) | Python, MySQL, Tkinter | ⭐⭐⭐ |
| 5 | ATM Management | Python, MySQL | ⭐⭐ |
| 6 | Bank Management | Python, MySQL | ⭐⭐ |
| 7 | Cricket Game | Python (random) | ⭐ |
| 8 | COVID-19 Data Visualisation | Python, pandas, matplotlib | ⭐⭐ |
| 9 | Real-Time Currency Converter | Python, Tkinter, REST API | ⭐⭐⭐ |
| 10 | Industrial Gate Management | Python, MySQL | ⭐⭐ |
| 11 | Food Order System | Python, MySQL | ⭐⭐ |
| 12 | Marriage Bureau Management | Python, MySQL | ⭐⭐ |
| 13 | Weather App ⭐ NEW | Python, Tkinter, requests, REST API | ⭐⭐⭐ |
| 14 | Expense Tracker ⭐ NEW | Python, pandas, matplotlib, CSV | ⭐⭐ |
| 15 | Inventory Management System ⭐ NEW | Python, MySQL (5 tables) | ⭐⭐⭐ |
| 16 | School Management System ⭐ NEW | Python, MySQL (5 modules) | ⭐⭐⭐ |
| 17 | Student Report Card System ⭐ NEW | Python, CSV, File Handling | ⭐⭐ |
pip install mysql-connector-python. For the Weather App run pip install requests. For Expense Tracker run pip install pandas matplotlib. All other projects use Python built-in modules only.Intermediate
📚 Book Store Management System
A menu-driven console application that manages a bookstore using a MySQL backend. It handles user authentication, book inventory, staff records, and sales transactions. Students learn INSERT, UPDATE, DELETE, and SELECT operations in a realistic business context — great for demonstrating Python–MySQL connectivity in CBSE practicals.
Intermediate
📖 Library Management System
Organises books and borrower records using a MySQL database. Features include listing available books, lending/returning books, adding new titles, and viewing borrower history. The project demonstrates relational database design and multi-table operations — a classic choice for CBSE investigatory projects.
Advanced
🏥 Hospital Management System (Console)
A full-featured CLI-based system for managing doctors, nurses, other staff, and patient records. Users can register, log in, admit or discharge patients, and delete records. Showcases multi-table database architecture and role-based access — ideal for students aiming for top marks.
Advanced
🏥 Hospital Management System — GUI + MySQL (Tkinter)
The same hospital system rebuilt with a Tkinter graphical user interface. Supports patient registration, appointment booking, doctor directory, and service listings — all stored in MySQL. Perfect for demonstrating GUI programming + database connectivity together in one submission.
Intermediate
🏧 ATM Management System
Simulates a real ATM: users log in with a PIN and can view statements, withdraw, deposit, and change their PIN. Transactions are validated (multiples of 10, balance checks) and stored via MySQL. One of the most popular Class 12 project ideas because it mirrors real-world banking logic.
Intermediate
🏦 Bank Management System
Create accounts, deposit/withdraw money, and view account details — all stored in MySQL. The menu-driven interface keeps the code beginner-friendly while covering all key CBSE Python–SQL connectivity concepts such as parameterised queries and transaction management.
Beginner
🏏 Cricket Game in Python
A two-innings text-based cricket game using Python’s random module. Players pick numbers (1–6) for batting and bowling, with a toss deciding the first innings. Demonstrates loops, conditionals, and the random module — great as a mini-project or for students exploring game logic.
Intermediate
📊 COVID-19 Data Visualisation
Loads a real COVID-19 dataset and lets users explore it through line charts, bar charts, and scatter plots using matplotlib. Users select the data category (confirmed, recovered, deaths, active) and chart type interactively. An excellent choice for the Informatics Practices syllabus.
Advanced
💱 Real-Time Currency Converter
Connects to a live exchange-rate API and provides a Tkinter GUI with dropdown menus to select currencies and convert amounts in real time. Combines REST API integration, JSON parsing, and GUI design — giving students a taste of real-world Python application development.
Intermediate
🏭 Industrial Gate Management System
Creates a multi-database MySQL system to log employee entries, vehicle movements, visitor records, and residential entries. An uncommon project idea that demonstrates multiple databases in a single Python script — likely to impress evaluators for its originality.
Intermediate
🍕 Food Order System
A MySQL-backed food ordering system with tables for employees, customers, food items, and orders. Ideal for demonstrating relational table design and foreign key logic in a simple, understandable context that any examiner can relate to.
Intermediate
💍 Marriage Bureau Management System
Users can register, log in, enter client details, and search for matches by profession or appearance. Demonstrates WHERE clause filtering for matchmaking logic — a creative and unique investigatory project idea for Class 12.
Advanced
🌤️ Weather App — Tkinter + OpenWeatherMap API
A modern dark-themed Tkinter GUI application that fetches live weather data from the OpenWeatherMap REST API. Displays current temperature, humidity, wind speed, pressure, visibility, sunrise/sunset, and a 5-day forecast. Features dynamic colour themes that change based on weather conditions (sunny, rainy, snowy), a °C/°F toggle, and a search history feature that saves the last 10 cities to a text file. Runs in Demo Mode even without an API key.
Intermediate
💰 Expense Tracker — pandas + matplotlib
A console-based personal finance tracker that stores all expense records in a CSV file and provides deep analysis using pandas DataFrames. Features include adding/filtering/deleting expenses, monthly summaries, category-wise breakdowns, budget management, and 5 different matplotlib charts — donut pie, bar, dual-axis line/area, horizontal bar, and a full dark-themed dashboard saved as PNG. Ideal for the Informatics Practices syllabus.
Advanced
🏪 Inventory Management System — Retail Context
A full-featured retail store inventory system using Python and MySQL with 5 relational tables: categories, suppliers, products, stock_in, and stock_out. Manages the complete product lifecycle — add categories and suppliers, stock products, record purchases (Stock In), process sales (Stock Out), and auto-generate retail bills. Includes a Low Stock Alert and 6 analytical reports including profit/margin report, top-selling products, category-wise stock value, and stock movement history using UNION ALL.
Advanced
🏫 School Management System
A comprehensive Python–MySQL project with 5 complete modules: Student Management, Teacher Management, Marks & Results, Attendance, and Fee Management. The attendance module marks daily Present/Absent/Late records class-wise and automatically flags students below 75% attendance. The marks module supports Unit Test, Half Yearly, and Annual exams with auto-calculated CBSE grades. Includes auto-generated fee receipts with timestamp-based receipt numbers.
Intermediate
📋 Student Report Card System
A menu-driven Python application that manages student academic records using CSV file handling only — no database installation required, making it the easiest project to set up and run. Stores roll number, name, class, section, and marks in 5 subjects. Auto-calculates total, percentage, CBSE grade (A1–E), and pass/fail result. Includes 10 features: add, view formatted report card, update, delete, search by name, class topper, subject-wise statistics (max/min/avg), pass/fail summary, and grade-wise ASCII distribution chart.
These shorter projects are ideal as additional programs in the practical file or for practising Python concepts independently.
🔄 Number System Converter
🎮 KBC Quiz Game
⏰ Alarm Clock
🕐 Digital Clock (Tkinter)
📱 QR Code Generator
🏎️ Car Race (pygame)
🇮🇳 Draw Indian Flag (Turtle)
How to Choose the Right Project for Your Class 12 Practical
Choosing the right project significantly impacts your practical marks. Here is a simple framework:
- Check CBSE guidelines: For Class 12 CS (083), projects must include Python–MySQL connectivity or file handling. For IP (065), data analysis using pandas/matplotlib is expected.
- No MySQL on your laptop? Pick Project 17 (Student Report Card) — it uses only CSV file handling and needs zero installation.
- Want to impress with GUI? Choose Project 13 (Weather App) or Project 4 (Hospital GUI) — Tkinter projects are visually impressive during viva.
- Informatics Practices (IP)? Pick Project 14 (Expense Tracker) or Project 8 (COVID Visualisation) — both are pandas + matplotlib heavy.
- Avoid projects that need internet during the practical viva (e.g., Weather App, Currency Converter) unless your school lab has a stable connection.
- Start at least 3 months before submission. Read and understand the code; do not just copy-paste. Add your own database name, school name, and minor customisations.
- Add a project report: Abstract, system requirements, ER/flow diagram, source code with comments, sample output, and bibliography. This alone fetches 5–8 extra marks.
Frequently Asked Questions
Which is the best Python project for Class 12 CS CBSE 2025-26?
It depends on your comfort level. For beginners with no MySQL setup: Student Report Card System (Project 17). For average students: School Management System (Project 16) or Inventory Management (Project 15). For distinction seekers: Weather App (Project 13) — it has a real GUI, live API, and file handling all in one, which is unique and rarely submitted.
Which projects do NOT need MySQL?
Three projects work without MySQL: Project 7 (Cricket Game) uses only the random module; Project 17 (Student Report Card) uses CSV file handling; Project 14 (Expense Tracker) uses CSV + pandas + matplotlib. All three can be run immediately after installing Python — no server setup needed.
Do I need to install anything to run these projects?
It depends on the project. Projects using MySQL need: pip install mysql-connector-python. The Weather App needs: pip install requests. The Expense Tracker needs: pip install pandas matplotlib. Projects 7 and 17 need nothing extra — all modules are built into Python.
Can I submit these projects as my CBSE investigatory project?
Yes — these are complete, working projects designed specifically for CBSE Class 12. You must read, understand, and customise the code with your own database name, credentials, and at least minor modifications. CBSE teachers check for originality, so add your own features wherever possible.
What should the project report include for Class 12?
A standard CBSE project report includes: Title Page, Certificate, Acknowledgement, Abstract/Introduction, Hardware & Software Requirements, System Design (ER diagram or flowchart), Source Code with comments, Sample Input/Output screenshots, Limitations, Future Scope, and Bibliography.
Which projects are best for Informatics Practices (IP)?
The IP syllabus focuses on data analysis and visualisation. Best choices: Project 8 (COVID-19 Visualisation), Project 14 (Expense Tracker with pandas + matplotlib), and Project 17 (Student Report Card with CSV). These cover all IP topics: pandas, matplotlib, CSV handling, and data analysis functions.
Which Python libraries are required for Class 12 projects?
The core libraries across all projects: mysql.connector (Python–SQL), tkinter (GUI), random (games), pandas and matplotlib (data analysis), requests (API calls), csv and os (file handling), datetime (date operations). All are either built-in or installable via pip.
Explore More Resources on CBSE Python
Found an error in a project? Drop a comment below — we respond quickly and fix issues. If a project helped you, share it with your classmates!