PM SHREE KENDRIYA VIDYALAYA
AHMEDABAD CANTT -02
          AHMEDABAD,GUJARAT
         A PROJECT REPORT ON
           ELECTRICITY BILLING
SUBMITTED TO                SUBMITTED
BY:
MR. SONIA CHOUDHARY     DALVI NEEL SATISH
P.G.T.(COMP. SC)
                 CERTIFICATE
This is to certify that DALVI NEEL SATISH of class
XII A of PM SHREE KENDRIYA VIDYALAYA AHMEDABAD CANTT -
  has done his project on ELECTRICITY BILLING
under my supervision. He has taken interest and
has shown at most sincerity in completion of this
project.
I certify this Project up to my expectation & as
per guidelines issued by CBSE, NEW DELHI.
Internal Examiner                     External
Examiner
                     Principal
           ACKNOWLEDGMENT
It is with pleasure that I acknowledge my sincere
gratitude to our teacher, MR. SONIA CHOUDHARY
who taught and undertook the responsibility of
teaching the subject computer science. I have
been greatly benefited from his classes.
I am especially indebted to our Principal SACHIN
KUMAR SINGH RATHORE who has always been a
source of encouragement and support and
without whose inspiration this project would not
have been a successful I would like to place on
record heartfelt thanks to him.
Finally, I would like to express my sincere
appreciation for all the other students for my
batch their friendship & the fine times that we all
shared together.
                   TABLE OF CONTENTS [ T O C ]
SER                     DESCRIPTION              PAGE NO
01    ACKNOWLEDGEMENT                              04
02    INTRODUCTION                                 05
03    OBJECTIVES OF THE PROJECT                    05
04    PROPOSED SYSTEM                              06
05    SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)         07
06    PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE      08
07    FLOW CHART                                   15
08    SOURCE CODE                                  16
09    OUTPUT                                       19
10    TESTING                                      20
11    HARDWARE AND SOFTWARE REQUIREMENTS           23
   12      BIBLIOGRAPHY                                                         24
                  PROJECT ON ELECTRICITY BILLING SYSTEM
INTRODUCTION
This programme helps the users to add a UPSC registration form,
After adding informations this programme automatically generates a registration
Number and displays it. The user can use the registration number to view their
Registered details. This programme can be used only if the Login ID and the
Password is correct.
OBJECTIVES OF THE PROJECT
        The objective of this project is to let the students apply the programming
knowledge into a real- world situation/problem and exposed the students how
programming skills helps in developing a good software.
   1. Write programs utilizing modern software tools.
   2. Apply object oriented programming principles effectively when developing
        small to medium sized projects.
   3. Write effective procedural code to solve small to medium sized problems.
   4. Students will demonstrate a breadth of knowledge in computer science, as
        exemplified in the areas of systems, theory and software development.
   5. Students will demonstrate ability to conduct a research or applied Computer
      Science project, requiring writing and presentation skills which exemplify
      scholarly style in computer science.
PROPOSED SYSTEM
      Today one cannot afford to rely on the fallible human beings of be really
wants to stand against today’s merciless competition where not to wise saying “to
err is human” no longer valid, it’s out-dated to rationalize your mistake. So, to keep
pace with time, to bring about the best result without malfunctioning and greater
efficiency so to replace the unending heaps of flies with a muchsophisticated hard
disk of the computer.
      One has to use the data management software. Software has been an ascent
in atomizationvarious organisations. Many software products working are now in
markets, which have helped in making the organizations work easier and efficiently.
Data management initially hadto maintain a lot of ledgers and a lot of paperwork has
to be done but now software producton this organization has made their work
fasterand easier. Now only this software has to beloaded on the computer and work
can be done.
      This prevents a lot of time and money. Thework becomes fully automated and
any information regarding the organization can beobtained by clicking the button.
Moreover, nowit’s an age of computers of and automatingsuch an organization gives
the better look.
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
       The systems development life cycle is a projectmanagement technique that
divides complexprojects into smaller, more easily managedsegments or phases.
Segmenting projectsallows managers to verify the successfulcompletion of project
phases before allocatingresources to subsequent phases.
       Software developmentprojects typically include initiation, planning,design,
development, testing, implementation,and maintenance phases. However, the
phasesmay be divided differently depending on theorganization involved.
       For example, initialproject activities might be designated asrequest,
requirements-definition, and planningphases, or initiation, concept-development,and
planning phases. End users of the systemunder development should be involved
inreviewing the output of each phase to ensurethe system is being built to deliver the
neededfunctionality.
PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE
INITIATION PHASE
The Initiation Phase begins when a business sponsor identifies a need or an
opportunity.
The purpose of the Initiation Phase is to:
       Identify and validate an opportunity to improve business accomplishments of
       the organization or a deficiency related to a business need.
       Identify significant assumptions and constraints on solutions to that need.
       Recommend the exploration of alternative concepts and methods to satisfy
       the need including questioning the need for technology, i.e., will a change in
       the business process offer a solution?
       Assure executive business and executive technical sponsorship. The Sponsor
       designates a Project Manager and the business need is documented in a
       Concept Proposal. The Concept Proposal includes information about the
       business process and the relationship to the Agency/Organization.
       Infrastructure and the Strategic Plan. A successful Concept Proposal results
       in a Project Management Charter which outlines the authority of the project
       manager to begin
       the project.
       Careful oversight is required to ensure projects support strategic business
objectives and resources are effectively implemented into an organization's
enterprise architecture. The initiation phase begins when an opportunity to add,
improve, or correct a system is identified and formally requested through the
presentation of a business case. The business case should, at a minimum, describe
a proposal’s purpose, identify expected benefits, and explain how the proposed
system supports one of the organization’s business strategies. The business case
should also identify alternative solutions and detail as many informational, functional,
and network requirements as possible.
SYSTEM CONCEPT DEVELOPMENT PHASE
The System Concept Development Phase begins after a business need or
opportunity is validated by the Agency/Organization Program Leadership and the
Agency/Organization CIO.
The purpose of the System Concept Development Phase is to:
       Determine the feasibility and appropriateness of the alternatives.
       Identify system interfaces.
       Identify basic functional and data requirements to satisfy the business need.
       Establish system boundaries; identify goals, objectives, critical success
       factors, and performance measures.
       Evaluate costs and benefits of alternative approaches to satisfy the basic
       functional requirements
       Assess project risks
       Identify and initiate risk mitigation actions, andDevelop high-level technical
       architecture, process models, data models, and a concept of operations. This
       phase explores potential technical solutions within the context of the business
       need.
       It may include several trade-off decisions such as the decision to use COTS
       software products as opposed to developing custom software or reusing
       software components, or the decision to use an incremental delivery versus a
       complete, onetime deployment.
      Construction of executable prototypes is encouraged to evaluate technology
      to support the business process. The System Boundary Document serves as
      an important reference document to support the Information Technology
      Project Request (ITPR) process.
      The ITPR must be approved by the State CIO before the project can move
      forward.
PICTORIAL REPRESENTATION OF SDLC:
PLANNING PHASE
      The planning phase is the most critical step in completing development,
acquisition, and maintenance projects. Careful planning, particularly in the early
stages of a project, isnecessary to coordinate activities and manage project risks
effectively. The depth and formality of project plans should be commensurate with
the characteristics and risks of a given project. Project plans refine the information
gathered during the initiation phase by further identifying the specificactivities and
resources required to complete a project.
      A critical part of a project manager’sjob is to coordinate discussions between
user, audit, security, design, development, and network personnel to identify and
document as many functional, security, and networkrequirements as possible.
During this phase, a plan is developed that documents the approach to be used and
includes a discussion of methods, tools, tasks, resources, project schedules, and
user input. Personnel assignments, costs, project schedule, and target dates are
established.
      A Project Management Plan is created with components related to acquisition
planning, configuration management planning, quality assurance planning, concept
of operations, system security, verification and validation, and systems engineering
management planning.
REQUIREMENTSANALYSIS PHASE
      This phase formally defines the detailed functional user requirements using
high-level requirements identified in the Initiation, System Concept, and Planning
phases. It also delineates the requirements in terms of data, system performance,
security, and maintainability requirements for the system. The requirements are
defined in this phase to a level of detail sufficient for systems design to proceed.
They need to be measurable, testable, and relate to the business need or
opportunity identified in the Initiation Phase. The requirements that will be used to
determine acceptance of the system are captured in the Test and Evaluation
MasterPlan.
The purposes of this phase are to:
      Further define and refine the functional and data requirements and document
      them in the Requirements Document,
      Complete business process reengineering of the functions to be supported
      (i.e., verify what information drives the business process, what information is
      generated, who generates it, where does the information go, and who
      processes it),
      Develop detailed data and process models (system inputs, outputs, and the
      process.
      Develop the test and evaluation requirements that will be used to determine
      acceptable system performance.
DESIGN PHASE
      The design phase involves converting the informational, functional, and
network requirements identified during the initiation and planning phases into unified
design specifications that developers use to script programs during the development
phase. Program designs areconstructed in various ways. Using a top-down
approach, designers first identify and link major program components and interfaces,
then expand design layouts as they identify and link smaller subsystems and
connections. Using a bottom-up approach, designers first identify and link minor
program components and interfaces, then expand design layouts as they identify
and link larger systems and connections. Contemporary design techniques often use
prototyping tools that build mock-up designs of items such as application screens,
database layouts, and system architectures. End users, designers, developers,
database managers, and network administrators should review and refine the
prototyped designs in an iterative process until they agree on an acceptable design.
Audit, security, and quality assurance personnel should be involved in the review
and approval process. During this phase, the system is designed to satisfy the
functional requirements identified in the previous phase. Since problems in the
design phase could be very expensive to solve in the later stage of the software
development, a variety of elements are considered in the design to mitigate risk.
These include:
      Identifying potential risks and defining mitigating design features.
      Performing a security risk assessment.
      Developing a conversion plan to migrate current data to the new system.
      Determining the operating environment.
      Defining major subsystems and their inputs and outputs.
      Allocating processes to resources.
      Preparing detailed logic specifications for each software module. The result is
      a draft System Design Document which captures the preliminary design for
      the system.
     Everything requiring user input or approval is documented and reviewed by
     the user. Once these documents have been approved by the Agency CIO and
     Business Sponsor, the final System Design Document is created to serve as
     the Critical/Detailed Design for the system.
     This document receives a rigorous review by Agency technical and functional
     representatives to ensure that it satisfies the business requirements.
     Concurrent with the development of the system design, the Agency Project
     Manager begins development of the Implementation Plan, Operations and
     Maintenance Manual, and the Training Plan.
DEVELOPMENT PHASE
        The development phase involves converting design specifications into
  executable programs. Effective development standards include requirements that
  programmers and other project participants discuss design specifications before
  programming begins. The procedures help ensure programmers clearly
  understand program designs and functional requirements. Programmers use
  various techniques to develop computer programs. The large transaction oriented
  programs associated with financial institutions have traditionally been developed
  using procedural programming techniques. Procedural programming involves the
  line-by-line scripting of logical instructions that are combined to form a program.
  Effective completion of the previous stages is a key factor in the success of the
  Development phase. The Development phase consists of:
     Translating the detailed requirements and design into system components.
     Testing individual elements (units) for usability.
     Preparing for integration and testing of the IT system.
INTEGRATION AND TEST PHASE
     Subsystem integration, system, security, and user acceptance testing is
     conducted during the integration and test phase. The user, with those
     responsible for quality assurance, validates that the functional requirements,
      as defined in the functional requirements document, are satisfied by the
      developed or modified system. OIT Security staff assesses the system
      security and issue a security certification and accreditation prior to
      installation/implementation.
Multiple levels of testing are performed, including:
      Testing at the development facility by the contractor and possibly supported
      by end users
      Testing as a deployed system with end users working together with contract
      personnel
      Operational testing by the end user alone performing all functions.
      Requirements are traced throughout testing, a final Independent Verification &
      Validation evaluation is performed and all documentation is reviewed and
      accepted prior to acceptance of the system.
IMPLEMENTATION PHASE
      This phase is initiated after the system has been tested and accepted by the
user. In this phase, the system is installed to support the intended business
functions. System performance is compared to performance objectives established
during the planning phase. Implementation includes user notification, user training,
installation of hardware, installation of software onto production computers, and
integration of the system into daily work processes. This phase continues until the
system is operating in production in accordance with the defined user requirements.
OPERATIONS AND MAINTENANCE PHASE
      The system operation is on-going. The system is monitored for continued
performance   in   accordance    with   user   requirements   and   needed   system
modifications are incorporated. Operations continue as long as the system can be
effectively adapted to respond to the organization’s needs. When modifications or
changes are identified, the system may re-enter the planning phase.
The purpose of this phase is to:
       Operate, maintain, and enhance the system.
       Certify that the system can process sensitive information.
       Conduct periodic assessments of the system to ensure the functional
       requirements continue to be satisfied.
       Determine when the system needs to be modernized, replaced, or retired.
                           CODE FOR MYSQL
import mysql.connector as sql
conn = sql.connect(host='localhost',user='root',password='manager',database='EBS')
if conn.is_connected():
  print("successfully connected")
c1=conn.cursor()
c1.execute('create table newuser(username VARCHAR(100) primary key,password
VARCHAR(100),confirmpasswd VARCHAR(100))')
c1.execute('create table AddNewCustomer(accountno int primary key,bankname
VARCHAR(25),bankbranch VARCHAR(25),name VARCHAR(25),address
VARCHAR(100),areacode INT(6),phoneno INT(15),email VARCHAR(25),boxid VARCHAR(25))')
c1.execute('create table Transaction(accountno INT(10) ,unit INT(10),toda VARCHAR(25),totamt
INT(10),GST INT(10),totalamt INT(10),p VARCHAR(25) , foreign key(accountno) references
AddNewCustomer(accountno))')
print("table created")
                            SOURCE CODE
import mysql.connector as sql , random , datetime as dt
import matplotlib.pyplot as plt
conn=sql.connect(host='localhost',user='root',passwd='manager'
,database='EBS')
if conn.is_connected():
    print("successfully connected")
c='YES' or "yes" or 'Yes'
V='YES' or "yes" or 'Yes'
c1=conn.cursor()
while c=='YES' or "yes" or 'Yes':
       print('************************WELCOME   TO   ELECTRICITY
BILLING SYSTEM************************')
    print(dt.datetime.now())
    print('1.NEW USER')
    print('2.EXISTING USER')
    print('3.EXIT')
    choice1=int(input('ENTER YOUR CHOICE:'))
    if choice1==1:
        username=input("Enter your username number :")
        password=input("Enter your password:")
        confirmpasswd=input("Confirm   your password:")
        if password==confirmpasswd:
                                 info1="insert   into     newuser
values('{}','{}','{}')".format(username,password,confirmpasswd
            c1.execute(info1)
            conn.commit()
            c=input("do you want to continue?(yes or no)")
        else:
            print('your confirm password is incorrect')
            print('Try again')
            c=input("do you want to continue?(yes or no)")
    elif choice1==2:
        username=input('Enter your username:')
        password=input('Enter your password:')
         info2="select * from newuser where username='{}' and
password='{}'".format(username,password)
        c1.execute(info2)
        data=c1.fetchall()
        while V=='YES' or "yes" or 'Yes':
            if any(data):
                         print('************************WELCOME TO
ELECTRICITY BILLING SYSTEM************************')
                    print("1.ACCOUNT SETTINGS")
                    print("2.TRANSACTION")
                    print("3.VIEW CUSTOMER DETAILS")
                    print("4.GRAPHICAL REPRESENTATION")
                    print('5.EXIT')
                    choice2=int(input('ENTER YOUR CHOICE'))
                    if choice2==1:
                        print('1.NEW CUSTOMER')
                        print('2.DELETE EXISTING ACCOUNT')
                        choice12=int(input('ENTER YOUR CHOICE:'))
                        if choice12==1:
                            accountno=random.randrange(1000000,999
9999,10)
                            print("your accountno is",accountno)
                            boxid=input("enter your mete box ID:")
                                     bankname=input('Enter your BANK
NAME   :')
                                 bankbranch=input('Enter your BANK
BRANCH   :')
                            name=input('Enter your name   :')
                            address=input('Enter your address   :')
                               areacode=int(input('Enter your area
PIN CODE     :'))
                           phoneno=int(input('Enter your PHONE
NUMBER   :'))
                        email=input('Enter your email    :')
                                info2="insert into AddNewCustomer
values({},'{}','{}','{}','{}',{},
{},'{}','{}')".format(accountno,bankname,bankbranch,name,addre
ss,areacode,phoneno,email,boxid)
                        c1.execute(info2)
                        conn.commit()
                         V=input("do you want to continue?(yes
or no)")
                        if V=='yes':
                            continue
                        else:
                            break
                    elif choice12==2:
                                   acc=input("ENTER YOUR ACCOUNT
NUMBER:")
                        use=input("ENTER YOUR USERNAME:")
                                    info6=c1.execute("delete from
Transaction where accountno='{}'".format(acc))
                                    info7=c1.execute("delete from
AddNewCustomer where accountno='{}'".format(acc))
                         info8=c1.execute("delete from newuser
where username='{}'".format(use))
                        c1.execute(info6)
                        c1.execute(info7)
                        c1.execute(info8)
                        conn.commit()
                                 print("THANK YOU FOR USING OUR
SOFTWARE,YOUR ACCOUNT IS SUCCESFULLY DELETED")
                            V=input("do you want to continue?(yes
or no)")
                        if V=='yes':
                              continue
                        else:
                              break
                elif choice2==2:
                       accountno=int(input('Enter your account
number   :'))
                       info10="select * from Transaction where
accountno="+str(accountno)
                    c1.execute(info10)
                    data3=c1.fetchall()
                    for row in data3:
                        paid=row[6]
                    if paid=='yes':
                                print('you have already paid the
bill')
                        break
                    else:
                        unit=random.randint(0,101)
                          print('Dear customer, you have used
',unit,'units of electricity.')
                             print('One unit of curent is 150
ruppees')
                        amount=150*unit
                        toda=dt.date.today()
                        deadline=dt.date(2020,1,30)
                        if deadline<toda:
                            fine=(toda-deadline)*30
                            totamt=amount+fine
                                    print('you have dealyed for
',toda-deadline,'days.The fine per day is 30 rupees.')
                            GST=(15/100)*totamt
                            totalamt=totamt+GST
                                             print('Pleae payup
',totalamt,'rupees inclding GST')
                                    p=input("Please Enter YES to
transact")
                            if p=="YES"or 'Yes'or'yes':
                                               print("Transaction
successful")
                                       print("You have paid the
bill")
                            else:
                                         print('plz pay the bill
sooner')
                        else:
                             totamt=0
                             GST=(15/100)*amount
                             totalamt=amount+GST
                                              print('Pleae payup
',totalamt,'rupees inclding GST')
                                     p=input("Please Enter YES to
transact")
                             if p=="YES":
                                               print("Transaction
successful")
                                        print("You have paid the
bill")
                             else:
                                         print('plz pay the bill
sooner')
                                 info3="insert into Transaction
values({},{},'{}',{},{},
{},'{}')".format(accountno,unit,toda,totamt,GST,totalamt,p)
                        c1.execute(info3)
                        conn.commit()
                           V=input("do you want to continue?(yes
or no)")
                        if V=='yes':
                            continue
                        else:
                            break
                elif choice2==3:
                       accountno=int(input('Enter your account
number   :'))
                     info4="select * from AddNewCustomer where
accountno=" + str(accountno)
                    c1.execute(info4)
                    data1=c1.fetchall()
                    for row in data1:
                        print(" Account Number: ", row[0])
                        print("bankname:",row[1])
                        print("bankbranch:",row[2])
                        print("Person name:",row[3])
                        print("Your meter device ID=",row[8])
                        print("Residential address:",row[4])
                        print("area code:",row[5])
                        print("phone number:",row[6])
                        print("email:",row[7])
                        info5="select * from Transaction where
accountno=" + str(accountno)
                        c1.execute(info5)
                        data2=c1.fetchall()
                    for row in data2:
                       print(" Unit : ",row[1])
                       print(" paid on:",row[2])
                               print("amount to be paid without
GST:",row[3])
                       print("GST=",row[4])
                             print("amount to be paid including
GST:",row[5])
                      V=input("do you want to continue?(yes or
no)")
                   if V=='yes':
                       continue
                   else:
                       break
                elif choice2==4:
                           info9="select accountno,totalamt from
Transaction"
                   c1.execute(info9)
                   L1,L2,=[],[]
                   for i in c1.fetchall():
                       L1.append(i[0])
                       L2.append(i[1])
                   plt.plot(L1,L2)
                   plt.title("GRAPH")
                   plt.show()
                             V=input("do you want to continue?(yes or
no)")
                           if V=='yes':
                               continue
                           else:
                               break
                    elif choice2==5:
                           print(                                 "T
HANK    YOU!!!!    VISIT AGAIN!!!!")
                           break
                           c='yes'
              else:
                    print('username / password is incorrect')
                    break
                           c=input("do you want to try again?(yes or
no)")
          else:
                  print(                                      "THANK
YOU!!!!    VISIT AGAIN!!!!")
              V='no'
    elif choice1==3:
            print(                                          "THANK
YOU!!!!    VISIT AGAIN!!!!")
          c='no'
          break
    else:
          print("invalid choice")
          c=input("do you want to try again?(yes or no)")
else:
    print(                                       "THANK     YOU!!!!
VISIT AGAIN!!!!")
    c='no'
                                    TESTING
       Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or service under test[1]
, with respect to the context in which it is intended to operate. Software Testing also
provides an objective, independent view of the software to allow the business to
appreciate and understand the risks at implementation of the software. Test
techniques include, but are not limited to, the process of executing a program or
application with the intent of finding software bugs.
       It can also be stated as the process of validating and verifying that a software
program/application/product meets the business and technical requirements that
guided its design and development, so that it works as expected and can be
implemented with the same characteristics. Software Testing, depending on the
testing method employed, can be implemented at any time in the development
process, however the most test effort is employed after the requirements have been
defined and coding process has been completed.
TESTING METHODS
       Software testing methods are traditionally divided into black box testing and
white box testing. These two approaches are used to describe the point of view that
a test engineer takes when designing test cases.
BLACK BOX TESTING
       Black box testing treats the software as a "black box," without any knowledge
of internal implementation. Black box testing methods include: equivalence
partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based
testing, traceability matrix, exploratory testing and specification-based testing.
SPECIFICATION-BASED TESTING
         Specification-based testing aims to test the functionality of software according
to the applicable requirements.[16] Thus, the tester inputs data into, and only sees
the output from, the test object. This level of testing usually requires thorough test
cases to be provided to the tester, who then can simply verify that for a given input,
the output value (or behaviour), either "is" or "is not" the same as the expected value
specified in the test case. Specification-based testing is necessary, but it is
insufficient to guard against certain risks
ADVANTAGES AND DISADVANTAGES
         The black box tester has no "bonds" with the code, and a tester's perception
is very simple: a code must have bugs. Using the principle, "Ask and you shall
receive," black box testers find bugs where programmers don't. But, on the other
hand, black box testing has been said to be "like a walk in a dark labyrinth without a
flashlight," because the tester doesn't know how the software being tested was
actually constructed.
         That's why there are situations when (1) a black box tester writes many test
cases to check something that can be tested by only one test case, and/or (2) some
parts of the back end are not tested at all. Therefore, black box testing has the
advantage of "an unaffiliated opinion," on the one hand, and the disadvantage of
"blind exploring," on the other.
WHITE BOX TESTING
         White box testing, by contrast to black box testing, is when the tester has
access to the internal data structures and algorithms (and the code that implement
these)
Types of white box testing:-
      The following types of white box testing exist:
             api testing - Testing of the application using Public and Private APIs.
             Code coverage - creating tests to satisfy some criteria of code
             coverage.
      For example, the test designer can create tests to cause all statements in the
program to be executed at least once.
             fault injection methods.
             mutation testing methods.
             static testing - White box testing includes all static testing.
CODE COMPLETENESS EVALUATION
      White box testing methods can also be used to evaluate the completeness of
a test suite that was created with black box testing methods. This allows the software
team to examine parts of a system that are rarely tested and ensures that the most
important function points have been tested.
Two common forms of code coverage are:
             FunctionCoverage: Which reports on functions executed and
             StatementCoverage:Which reports on the number of lines executed to
             complete the test.
They both return coverage metric, measured as a percentage
                  HARDWARE AND SOFTWARE REQUIREMENTS
I.OPERATING SYSTEM              :   WINDOWS 7 AND ABOVE
II. PROCESSOR                   :   PENTIUM(ANY) OR AMD
                                    ATHALON(3800+- 4200+ DUALCORE)
III. MOTHERBOARD                :   1.845 OR 915,995 FOR PENTIUM 0R MSI
                                    K9MM-V VIAK8M800+8237R PLUS
                                    CHIPSET FOR AMD ATHALON
IV. RAM                         :   512MB+
V. Hard disk                    :   SATA 40 GB OR ABOVE
VI. CD/DVD r/w multi drive combo:   (If back up required)
VII. FLOPPY DRIVE 1.44 MB       :   (If Backup required)
VIII. MONITOR 14.1 or 15 -17 inch
IX. Key board and mouse
X. Printer                      :   (if print is required – [Hard copy])
SOFTWARE REQUIREMENTS:
   I.        Windows OS
   II.       Python
OUTPUT
            BIBLIOGRAPHY
                 WEBSITE
            WWW.GOOGLE.COM
            WWW.YOUTUBE.COM
          WWW.GEEKSFORGEEKS.ORG
                  BOOKS
COMPUTER SCIENCE WITH PYTHON – SUMITA ARORA