Project File
A printed, binded document.
Contains your project written in pure Python with connectivity to MySQL.
Done with your project? Click here to check whether you have completed everything.
The Project
This is the only project that you will have to do in your entire year.
The project must be written in Python and must use MySQL connectivity.
The program must be a Menu-Driven Program.
On the Python side, there should be at least 3 - 4 user-defined functions.
On the MySQL side, there should be at least 2 tables. You should also use at least 4 MySQL functions, such as UPDATE, INSERT, DELETE, SELECT, etc.
There is no limit to what you can do in your project, however, you are limited to the usage of only Python and MySQL.
This means you cannot integrate your project with other languages such as Flask.
You are free to create as many user-defined functions as you want, and import as many modules you want.
You may also create as many tables in MySQL as you see fit.
Considering the restraints, most projects end up being variations of one another, but unique in their own way.
Some broad categories include:
- Store-fronts (Movie store, Bookstore, etc.)
- Management (Inventory Management, Employee Management, etc.)
- Billing Systems (Electricity Billing, etc.)
The File / Record
Your file should contain the following headers:
- Cover Page
- Certificate
- Acknowledgement
- Introduction
- Synopsis
- System Description
- Program Source Code
- Program Output
- Conclusion
- Bibliography
These will be explained in detail in the following sections.
Your file should have borders on all pages. The borders should be formal. Consider selecting solid or double borders, preferably in black.
Your file should have page numbers on all pages. There is no rule regarding the format, but the preferred placement of the page number is either bottom centered or in the bottom right corner.
Leave a margin on the left for the binding. You may go with narrow borders, and then press custom borders and add 0.5 to 1 cm to the margin on the left.
Ensure that the page numbers are within the margins.
Each of the headers mentioned above should start on a new page, even if the rest of the page is empty. Headers should be on the top, center-aligned.
Cover Page
This page must be provided by your teacher.
This is the first page of your record.
Contains the title ("Project Record"), the academic year, the name of your project (three to four words max), and a place for your details.
The page numbers for the record start from the cover page.
Ensure logos and other details are within the margins.
Ensure academic year mentioned is the correct academic year. Currently, it will be 2023-2024.
DO NOT PRINT THE DETAILS. These will be written by hand, using black/blue ink on or before the day of the practical exam.
Certificate
This page must be provided by your teacher.
This is the second page of your record.
This page must be numbered as well.
Contains a certificate stating that the project is your own work and stuff.
Ensure that the teacher's name is typed, preferably in another color, and is spelled exactly as stated.
Ensure that the teacher's preferred title is used (Mr./Mrs./Ms./etc.)
Ensure academic year mentioned is the correct academic year. Currently, it will be 2023-2024.
DO NOT PRINT THE DETAILS. These will be written by hand, using black/blue ink on or before the day of the practical exam.
Acknowledgement
Pretty straighforward, nothing to worry about.
Write a page thanking your teacher, your parents, your friends, and anyone else who helped you.
Or copy-paste, yknow. Or just use GPT. Pretty helpful. Should be about half a page long.
Do not exceed one page. Seriously. No need to thank every single person.
Introduction
Write a brief introduction about your project.
This is more of marketing than technical talk.
Write about your project, and what it does, without going into the technical details at all.
You can even "create" a problem and then propose your project as a solution to the problem.
Do not exceed one page. Shouldn't get too boring.
Synopsis
This section will describe your project in more technical terms.
Write about the various functions of your project, going into the technical details of what each function does.
This can be one to two pages long.
System Description
Python
Include the following:
- File Name - Usually
project.py
oryour-project-name.py
- Import statements - All the modules that you have imported.
- Built-in functions - such as
print()
,connect()
,append()
, etc. Functions imported from modules go here. Include any and all functions. - User-defined functions - Any functions you have made yourself should be included here.
- Comment: When adding functions, include any parameters you have included in the function header. Example:
connect(host, user, password, database)
- Variables - Any and all variables you may have used. This includes variables such as
i
which is used infor i in ...
MySQL
Include the following:
- Database Name - Usually
your-project-name
- Table 1 :
table-name
- Output of
desc table-name
Continue for all tables in the database.
Program Source Code
If you don't know what this is, seriously, are you even a CS student?
This is the entire Python program that you have written.
Code must be COPY-PASTED. NO SCREENSHOTS.
Ensure that the program is properly indented.
It is recommended to use a monospace font, such as Consolas
or any other font from the Internet.
Use Google Fonts to find monospaced fonts.
Program Output
The output of the program.
Include all possible outputs of the program, by selecting the different options of the menu.
If you run the program multiple times to get outputs, it is recommended to write Run (number)
to show that the program output is from different sessions.
Output must be COPY-PASTED. NO SCREENSHOTS.
If you have colors in your output, ensure that the same color is applied in the output.
It is recommended to use a monospace font, such as Consolas
or any other font from the Internet.
Conclusion
Write a brief conclusion about your project.
This is a mix of the introduction and the synopsis.
A page for the conclusion should suffice.
Bibliography / References
Include all the sources you have used to make your project.
Include the names of the books you have used.
Two books which you can write are:
- Computer Science with Python Class XII by Preeti Arora
- Computer Science with Python Class XI by Preeti Arora
Include the links to the websites you have used.
You can always include Python and MySQL documentation in the "Sites Referred" section.
MySQL Documentation - https://dev.mysql.com/doc/refman/8.0/en/
Python Documentation - https://docs.python.org/3/
Some more sites you can include:
- https://www.w3schools.com/python/
- https://www.w3schools.com/sql/
- https://www.geeksforgeeks.org/python-programming-language/
- https://www.geeksforgeeks.org/sql-tutorial/
- https://stackoverflow.com/
- https://pypi.org/
- https://github.com/
Finalizing & Printing
Once you are done with the first draft of the file, export it as a PDF and send it to your teacher for approval.
Printing should be done preferably on 80 GSM paper. Size is compulsorily A4.
When sending for printing, please send the PDF. Using Word for printing will ruin the formatting.
Use a good quality printer. The print should be clear and readable.
If your parent's company has a printer, try asking if they can print. Otherwise, go to a stationery shop. Bargain as much as you can. Should be around 1 AED for 5 pages or so.
Once you have printed the file, bind it. Spiral binding is the only binding accepted. Color should be as decided by your teacher.
All students MUST use the same color of binding.
Once you have bound the file, you are done. Congratulations! Submit the file for final checks.
While there shouldn't be any reason for the teacher to make corrections now (if the file was previously approved), it is still a good idea to get it checked once and correct any errors that may be pointed out.
Tips
Use Visual Studio Code to write your project.
It has syntax highlighting, themes, and auto-save functions among many others. Highly recommended.
Color your code. Use a light theme in Visual Studio Code and then copy paste the code into Word.
The theme and the syntax highlighting will be copied as well. Looks nice, makes for a good first impression. Also hides errors.
I personally used Kary Pro Colors after messing around a bit with the theme files to change a few colors.
Use GitHub Copilot to help you write code. Helps save time.
Free for students, but you must apply for the GitHub Education Pack . It's free, and at max you'll have to just prove that you're a student.
Recommend using the school email to sign up, the approval is faster.
Use this ANSI Character Generator to create cool looking titles that you can display when the program starts.
Code Formatting Guidelines
Format your Python code in the following format, so that it can be run on any computer with minimal to no changes to the code.
import os
import sys
os.system("cls") OR os.system("clear") (ON MACS/LINUX ONLY)
print("""
Program Title in ANSI Characters
████████ ██ ████████ ██ ███████
██ ██ ██ ██ ██
██ ██ ██ ██ █████
██ ██ ██ ██ ██
██ ██ ██ ███████ ███████
""")
try:
os.system("pip install mysql-connector-python")
os.system("pip install #any other modules you used# ")
except:
sys.exit("Error installing modules!")
try:
import mysql.connector
import #any other modules you used#
except:
sys.exit("Error importing modules!")
# MySQL Connection Code
con =
cursor =
# MySQL Table Creation
cursor.execute("CREATE TABLE IF NOT EXISTS table-name (column-name data-type);")
# MySQL Data Insertion
# Add the data to be inserted into the table using text file and INSERT command if any data is to be inserted
# All User Defined Functions
def function-name():
# Function Code
# Main Menu
-- END --
============================================================================
import os, sys
imports special modules that help connect with the terminal of your system.
os.system("cls") / os.system("clear")
clears the terminal so that all the messy input/output/errors on the screen are cleared off.
os.system
runs pip
to install modules that you use so that you don't have to manually install them.
Instead of pip install
, you can use pip3 install -qqq --disable-pip-version-check --no-cache-dir --no-color --no-warn-conflicts --user --no-python-version-warning --no-input --no-warn-script-location
to hide the installation process from the user.
sys.exit
exits the program if there is an error in the code.
cursor.execute("CREATE TABLE IF NOT EXISTS")
creates the tables from within Python itself, so you don't even have to see the MySQL terminal. Also ensures that the code works on any and every computer, provided the MySQL password is the same for all users.
cursor.execute("INSERT INTO")
inserts data into the table from within Python itself, so you don't even have to see the MySQL terminal. Also ensures that the code works on any and every computer, provided the MySQL password is the same for all users.
Samples
Click here to see sample Project Files from the Batch of '23.
Checklist
Use this checklist to ensure that you have everything you need to submit your project.
If you checked everything that isn't optional, Congratulations! You have completed your project, and you are now ready to send it to your teacher.