Python Projects for Class 12 Computer Science

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 NameKey TechnologiesLevel
1Book Store ManagementPython, MySQL⭐⭐
2Library Management SystemPython, MySQL⭐⭐
3Hospital Management System (CLI)Python, MySQL⭐⭐⭐
4Hospital Management System (GUI)Python, MySQL, Tkinter⭐⭐⭐
5ATM ManagementPython, MySQL⭐⭐
6Bank ManagementPython, MySQL⭐⭐
7Cricket GamePython (random)
8COVID-19 Data VisualisationPython, pandas, matplotlib⭐⭐
9Real-Time Currency ConverterPython, Tkinter, REST API⭐⭐⭐
10Industrial Gate ManagementPython, MySQL⭐⭐
11Food Order SystemPython, MySQL⭐⭐
12Marriage Bureau ManagementPython, MySQL⭐⭐
13Weather App ⭐ NEWPython, Tkinter, requests, REST API⭐⭐⭐
14Expense Tracker ⭐ NEWPython, pandas, matplotlib, CSV⭐⭐
15Inventory Management System ⭐ NEWPython, MySQL (5 tables)⭐⭐⭐
16School Management System ⭐ NEWPython, MySQL (5 modules)⭐⭐⭐
17Student Report Card System ⭐ NEWPython, CSV, File Handling⭐⭐
💡 Before you begin: For MySQL projects run 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.

Project 1
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.

PythonMySQLFile HandlingCRUD Operations

View Source Code →

Project 2
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.

PythonMySQLDatabase DesignMenu-Driven

View Source Code →

Project 3
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.

PythonMySQLAuthenticationMulti-table DB

View Source Code →

Project 4
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.

PythonTkinterMySQLGUIAppointments

View Source Code →

Project 5
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.

PythonMySQLPIN AuthenticationTransactions

View Source Code →

Project 6
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.

PythonMySQLBankingParameterised Queries

View Source Code →

Project 7
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.

Pythonrandom moduleGame LogicNo DB required

View Source Code →

Project 8
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.

PythonpandasmatplotlibCSVData Analysis

View Source Code →

Project 9
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.

PythonTkinterREST APIJSONGUI

View Source Code →

Project 10
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.

PythonMySQLMultiple DatabasesLogging

View Source Code →

Project 11
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.

PythonMySQLRelational TablesMenu-Driven

View Source Code →

Project 12
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.

PythonMySQLAuthenticationSearch / Filter

View Source Code →

🆕   NEW PROJECTS ADDED — May 2026

Project 13 — NEW
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.

PythonTkinterrequestsREST APIJSON
File HandlingOOP⭐ New

View Source Code →

Project 14 — NEW
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.

PythonpandasmatplotlibCSV
File HandlingData Analysis⭐ New

View Source Code →

Project 15 — NEW
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.

PythonMySQL5 TablesForeign Keys
JOINUNION ALLCASE WHEN⭐ New

View Source Code →

Project 16 — NEW
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.

PythonMySQL5 Modulesexecutemany()
GROUP BYAggregate Functions⭐ New

View Source Code →

Project 17 — NEW
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.

PythonCSVFile HandlingNo pip install needed
FunctionsDictionaries⭐ New

View Source Code →

These shorter projects are ideal as additional programs in the practical file or for practising Python concepts independently.

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!

Copywrite © 2020-2026, CBSE Python,
All Rights Reserved