TABLE OF CONTENTS
CRIP’
Acknowledgement
Introduction
Objectives of the project
Proposed system
System Development Life Cycle (SDLC)
Phases of SDLC
Source Code
Output
Testing
& |B /R|/E |B |/&8 |R |e
B
Bibliography
g&PROPOSED SYSTEM
Proposed system is an efficient and fast user management system for social
media sites, Through this software, the admin or the database
administrator or manager of the site can maintain a large data of their
users, store any kind of user information, search users, get user insights,
update user information, edit information, retrieve information, user login
and sign up, accurate and minutest details of their users in quick time.
This proposed system has the following advantages:
User Friendly Interface
Fast access to Database
More Storage Capacity
Less Error
Complete Data Protection
Look and Feel Environment
All the difficulties of managing a bulky and complicated user database for
social media sites have been rectified through various easiest and simplest
database management softwares.PI F SYSTEM DEVELOPMENT LIFE LE
Initiation Phase
The initiation phase is the beginning of the project. In this phase, the idea
for the project is explored and elaborated. The goal of this phase is to
examine the feasibility of the project. In addition, decisions are made
concerning who is to carry out the project, which party (or parties) will be
involved and whether the project has an adequate base of support among
those who are involved.
In this phase, the current or prospective project leader writes a proposal,
which contains a description of the above-mentioned matters. Examples of
this type of project proposal include business plans and grant applications.
The prospective sponsors of the project evaluate the proposal and, upon
approval, provide the necessary financing. The project officially begins at
the time of approval.
System Concept Development Phase
The Concept Development Phase may begin after the approval of the
Concept Proposal and Project Charter, the completion of the Initiation
project status review, and the approval to proceed to the Concept
Development Phase,
The focus of the phase is two-fold:
1) evaluate feasibility of alternatives
2) clearly define and approve project scope, including the system, all
deliverables, and all required activities.
‘The Concept Development Phase activities are inputs into the development
of the ITPR, which is a required output of this phase.Planning Phase
‘The planning stage (also called the feasibility stage) the phase in which
developers will plan for the upcoming project. It helps to define the
problem and scope of any existing systems, as well as determine the
objectives for their new systems. By developing an effective outline for the
upcoming development cycle, they'll theoretically catch problems before
they affect development. And help to secure the funding and resources they
need to make their plan happen.
Perhaps most importantly, the planning stage sets the project schedule,
which can be of key importance if development is for a commercial product
that must be sent to market by a certain time.
Analysis Phase
‘The analysis stage includes gathering all the specific details required for a
new system as well as determining the first ideas for prototypes.
Developers may:
+ Define any prototype system requirements
+ Evaluate alternatives to existing prototypes
+ Perform research and analysis to determine the needs of end-users
Furthermore, developers will often create a software requirement
specification or SRS document.
This includes all the specifications for software, hardware, and network
requirements for the system they plan to build. This will prevent them from
overdrawing funding or resources when working at the same place as other
development teams.Design Phase
The design stage is a necessary precursor to the main developer stage.
Developers will first outline the details for the overall application,
alongside specific aspects, such as its:
User interfaces
System interfaces
Network and network requirements
Databases
They'll typically turn the SRS document they created into a more logical
structure that can later be implemented in a programming language.
Operation, training, and maintenance plans will all be drawn up so that
developers know what they need to do throughout every stage of the cycle
moving forward.
Once complete, development managers will prepare a design document to
be referenced throughout the next phases of the SDLC.
Development Phase
The development stage is the part where developers actually write code
and build the application according to the earlier design documents and
outlined specifications.
This is where Static Application Security Testing or SAST tools come into
play.
Product program code is built per the design document specifications. In
theory, all of the prior planning and outlined should make the actual
development phase relatively straightforward.
Developers will follow any coding guidelines as defined by the organization
and utilize different tools such as compilers, debuggers, and interpreters.
Programming languages can include staples such as Python, C++, PHP, and.
more. Developers will choose the right programming code to use based on
the project specifications and requirements.Testing Phase
The software must be tested to make sure that there aren't any bugs and
that the end-user experience will not negatively be affected at any point.
During the testing stage, developers will go over their software with a fine-
tooth comb, noting any bugs or defects that need to be tracked, fixed, and
later retested.
It's important that the software overall ends up meeting the quality
standards that were previously defined in the SRS document.
Depending on the skill of the developers, the complexity of the software,
and the requirements for the end-user, testing can either be an extremely
short phase or take a very long time.
Implementation and Integration Phase
After testing, the overall design for the software will come together.
Different modules or designs will be integrated into the primary source
code through developer efforts, usually by leveraging training
environments to detect further errors or defects.
‘The information system will be integrated into its environment and
eventually installed. After passing this stage, the software is theoretically
ready for market and may be provided to any end-users.
Maintenance Phase
The SDLC doesn’t end when software reaches the market. Developers must
now move into a maintenance mode and begin practicing any activities
required to handle issues reported by end-users.
Furthermore, developers are responsible for implementing any changes
that the software might need after deployment.
This can include handling residual bugs that were not able to be patched
before launch or resolving new issues that crop up due to user reports.Larger systems may require longer maintenance stages compared to
smaller systems.
Disposition Phase
‘The Disposition Phase is the end of an information system's life cycle. The
information system is formally retired according to organizational needs,
laws and regulations, and the Disposition Plan. The disposition activities
ensure that the information system is terminated in an orderly manner and
that vital information about the system is preserved according to
applicable records management regulations and policies for future access.
The decision to proceed with the Disposition Phase is based on
recommendations and approvals fram an In-Process Review during the
Operations and Maintenance Phase.import pandas as pd
import matplotlib.pyplotas plt
import datetime
import time
def menu():
print)
pring(rmeesseenescnnesecesssessunsesnueannossstesecssnuecssneatssesssonensaanessnoese")
print(" i ent System
print(“ereenen resnersnexeneanenensnenses")
print(” y
print(” a »
print()
print(*-> Data Analysis:")
print(” 1) Reading file without index")
print(" 2) Reading file with new calumn names")
print(" 3) Sorting the values in ascending order of Names")
print("-> Data Visualization:")
print(" 4) Line plot")
print(” 5) Bar Plot")
print(” 6) Horizontal Bar Plot")
print(”-> Data Manipulation:")
print(” 7) Extracting the middle row from the file ")
print(” 8) Reading 4 records from top and 6 from bottom of the file")
print(* 9) Duplicate fite with new user-defined name")
print(" 10) Replacing NaN values with zeroes")
print(" 11) Create a CSV file with data frame ")
print(" 12) Read previously created CSV file" )
printQ)
print("*teereeenensenesey stenee: teneseensssusssterstersenenees:
menu()
#For Option (1)
df=pd.read_csv("C:\\esv\ \social_media_site_users_data.csv" encodin|
def no_index(:
pd.set_option (“display.max,rows",None)
pd.set_option(“display.max_columns” None)
pd.set_option(“display.width"None)
pd.set_option (“expand _frame_repr’ False)
df['Mobile No.) = df['Mobile No. ].astype(‘Int64")
dfheadQ)
print("Reading file without index.)
timesleep(4)
print(dfy#For Option (2)
defnew.colnames0:
EGISTRATION DATE","ACCOUNT STATUS"))
pd set_option("display.max_rows" None)
pd.set_option("display.max_calumns",None)
pa.set_option("display.width",None)
pd.set_option("expand_frame_repr’,False)
dl[‘CONTACT NUMBER’) = dff'CONTACT NUMBER ].astype((Int64')
dishead()
print("Reading file with new column names...")
timesleep(4)
print(dt)
#For Option (3)
def sort_val_asc():
d
d.read_csv("C:\\csv\ \social_media_site_users_datacsv",encoding="latin-1')
pd.set_option(“display.max_rows",None)
pa.set_option(“display.max_columns" None)
pd.set_option(“display.width",None)
pd.set_option(“expand_frame_repr’ False)
df['Mobile No.'] = df['Mobile No] astype('Int64")
dfhead()
dfsort_values(by=['User Name'],inplace="True)
print("Sorting the values in ascending ader of Namew.")
time.sleep(4)
print(df)
#For Option (4)
def line_plot():
df=pd.read_esv("C:\\csv\ \social_media_site_users_data.csv"encoding='latin-1')
di DOR'] = pd.to_datetime(df['DOR'), infer_datetime format=True)
df['year'|= pd.Datetimetndex(alf'DOR').year
dfp=dEpivot_table(columns = di['year' ,aggfunc
size’),plot(kind="line’ color='# 1C86EE’marker='o',markersize=11 label="Users’)
pitxlabel(“Years")
pitylabel("No. of users”)
plttitle("Number of user registration from 2018-2022")
plitgrid(True)
pltlegend(l per left’)
plt.xticks¢ticks allay)
print("Creating line chart...”
time.sleep(4)
print("Line chart created successfully!")
time.sleep(1)
pit.showQ#For Option (5)
def bar_plot():
df=pd.read_csv("C:\\csv\\social_media_site_users_data.csv" encoding="latin-1')
|=df.pivot_table(index = [‘Age'],aggfunc ='size')
dfl'age_group’] = pd.cut(df[ Age'], [0.25,45,59,70],labels=['15-25','26-45',"46-
59','Above 60'})
df{'age_group’].value_counts().sort_index().plotbar()
plttitle("Number of users in different age group")
pltxlabel(“Age Groups")
pltylabel(*No. of users")
print("Creating bar chart...")
time-sleep(4)
print("Bar chart created suecessfully!")
timessleep(1)
pltshowQ
#For Option (6)
def horizon_bar_plot():
f=pd.read_csv("C:\ \csv\\\social_media_site_users_data.csv",encodin
Fpivot table(index = ['Country'].aggfunc ='size'}-plot(kind="barh' color='coral’)
plt.xlabel("No. of users")
pltylabel("Countries")
plititle(”Number of users from different countries")
print("Creating horizontal bar chart...")
time.sleep(4)
print("Horizontal bar chart created successfully!"
timesleep(1)
pltshow()
#For Option (7)
def middle_row():
df=pd.read_csv("C:\ \csv\ \social_media_site_users_datacsv’ encoding='latin-
I nrows=23)
pd.set_option("display.max_rows" None)
pd.set_option("display.max_columns”,None)
pd.set_option(“display.width",None)
pd.set_option("expand_frame_repr" False)
dff’Mobile No.'] = dif'Mabile No.'). arpa Inté4")
dfhead()
print(’Fetching the middle row from the file... ")
timesleep(4)
print(df.tail(1))#For Option (8)
def top_bottom():
df=pd,read_csv("C:\\csv\\social_media_site_users_data.csv".encoding="latin-1')
pd.set_option(“display.max_rows".Nane)
pd.set_option("display.max_columns" None)
pd.set_option("display.width”, None)
pd.set_option("expand_frame_repr”,False)
df[Mobile No.'} = df[‘Mobile No.'.astype(‘Int64")
dihead()
print(" Fetching top 4 rows from the file...")
time-sleep(4)
print(df.head(4))
time.sleep(1)
printQ)
print(’ Fetching last 6 rows from the file..
time.sleep(4)
print(df.tail(6))
#For Option (9)
def duplicateQ):
at
Lread_csv("C:\\csv\\social_media_site_users_data.csv",encoding="latin-1')
name_input=eval(input(” -> Enter the file path and file name for your duplicate file
(within double quotes and two backslashes): "))
dfto_esv(name_input)
splay.max_rows",None)
pd.set_option("expand_frame_repr",False)
dif'Mobile No.'] = dif['Mobile No“].astype('Int64")
print("Please wait... Duplicate file is being created”)
timesleep(4)
print("Duplicate file with the name",""" os,path.basename(name_input),
successfully!”)
timesleep(2)
print(di)
#For Option (10)
def fill_nanQ):
d.read_csv("C:\\csv\social_media_site_users_data.csv" encoding="latin-1')
pd.set_option("display.max_rows",None)
pd.set_option("display.max_columns”,None)
pd.set_option("display.width",None)
pd.set_option("expand_frame_repr”,False)
di]'Mobile No] = dif’Mobile No.'].astype("Inté4")
dfhead()
df[" Mobile No."].fillna(0, inplace = True)
print(“Filling NaN values of the file....")time.sleep(4)
print(df)
print("Successfully replaced NaNs with zeroes!")
#For Option (11)
def create_csv():
users_df=("Name":["Ada Braun”,"Rakhi Soni","Derek Tyson","Anuj Sharma","Lucas
‘Cabello”," Age":[20,44,29,31,23],"Country”:["Germany”,"India’," Australi
Mexica"]}
users=pd.DataFrame(users_df)
print(users)
print()
users.to_csv("C:\\csv\\user_details.csv",index=False)
time.sleep(1)
print("‘Creating csv file of the above dataframe...")
timesleep(4)
print(“CSV file ‘user_details.csv’ created successfully!")
#For Option (12)
def reading_prev_esv():
print("Reading the previously created csv file 'user_details.csv’.
timesleep(4)
print()
read_user_details=pd.read_csv("C:\\esv\\user_details.esv")
print(read_user_details)
#For choosing Options and execution of commands
t(input(” -> Enter your choice (1 to 12):"))
no_index()
elif opt==2:
new_colnames()
elif opt==3:
sort_val_asc()
elif opt==4;
line_plotQ)
elif opt==5:
bar,plot()
elif opt==6:
horizon_bar_plot()
elif opt==7;
middle_row()
clifopt==8:
top_bottom()elif opt==9:
duplicate()
elif opt==10:
fill_nanO)
elif opt==11
ereate_csv()
elif opt==12:
reading_prev_csv()
else:
timesleep(1)
print(" Invalid input! Please choose a valid option (1 to 12)")
time.sleep(1)
continue
ch=input(" -> Do you wish to continue? -¥/N")
il(ch=='N' or ch=="n’);
print("Quitting...")
timesleep(4)
break
if(ch=="¥' or ch=='y'):
print("Please wait...")
timesleep(2)
menu()
else:
time.sleep(1)
print("Invalid input! Press Y fy for 'Yes' or N/n for’No")
time.sleep(1)
ch=input(" -> Do you wish to continue? -Y/N")
if(e
print("Quitting...")
time.sleep(4)
break
else:
print("Please wait...")
time.sleep(2)
‘menu()OUTPUT
nding order of Names
Data Manipulation
Extr eaate
ed ews Ran ase
Eatst
Tm
reur choice (1 to 12): 11
Teme: Country
etal
Lelie i bites)
Ta PRR saa tee)
Anuj Sharma step €)
Lucas Cabello Mexico
Creating csv file of the above dataframe.
CSV file ‘user_details.csv' created successfully!
-> Do you wish to continue? -Y/N
A B Cc I
1 Name Age Country
2 Ada Braun 20 Germany
3 Rakhi Soni 44 India
4 Derek Tyson 29 Australia
5 Anuj Sharma 31 India
6 Lucas Cabello 23 Mexico-> Enter your choice (1 to 12)
Reading the previously created cs
Ted
Liat TL era) Germar
i cry India
29
Anuj Sharma 31 India
Lucas Cabello 2 Mexico
-> Do wish to continue? -Y/N
#if opt is invalid (not in 1-12):
Enter your choice (1 to 12): 7980
Invalid input! Please choose a valid option (1 to 12)
Enter your choice (1 to 12):
#if ch is invalid (not Y/y or N/n
PES Mao Mae et tae e1) nel)
Invalid input! Press Y /y for ‘Yes’ or N/n for ‘No*
-> Do you wish to continue? -Y/N#if chis Yes (Y/y):
ear y
Cr ese CMe eeu ot
rae Ca new column name
et ee CCUM urea meat od
eee ee
Pee m ms z e
crea
otc)
rece Tits Sta 6 cde)
#if ch is No (N/n):
-> Do you wish to continue? -Y/N n
QuittingTESTING
Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or service
under test, 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
intentof 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
hasbeen 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
pointof view that a test engineer takes when designing test cases,
Black Box Testing
Black Box Testing is a testing technique where no knowledge of the
internal functionality and structure of the system is available. This testing
technique treats the system as a black box or closed box. The tester only
knows the formal inputs and expected outputs, but does not know how the
program actually arrives at those outputs. As a result, all testing must be
based on functional specifications. For this reason black box testing is also
considered to be functional testing and is also a form of behavioral testing
or opaque box testing or simply closed box testing. Although black box
testing is behavioral testing, behavioral test design is slightly different
fromblack box test design because internal knowledge may be available in
behavioral testing. It provides external perspective of the software under
test.
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. 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 of Black Box Testing
Efficient when used on large systems.
Since the tester and developer are independent of each other, testing is
balanced and unprejudiced.
Tester can be non-technical.
There is no need for the tester to have detailed functional knowledge of
system.
Tests will be done from an end user's point of view, because the end user
should accept the system. (This testing technique is sometimes also called
Acceptance testing.)
Testing helps to identify vagueness and contradictions in functional
specifications.
Test cases can be designed as soon as the functional specifications are
complete.
Disadvantages of Black Box Testing
Test cases are challenging to design without having clear functional
specifications.
It is difficult to identify tricky inputs if the test cases are not developed
based on specifications.
It is difficult to identify all possible inputs in limited testing time. As a
result, writing test cases may be slow and difficult.
There are chances of having unidentified paths during the testing process.
‘There is a high probability of repeating tests already performed by the
programmer.White-box testing
White-box testing (also known as clear box testing, glass box testing,
transparent box testing and structural testing) looks inside the software
that is being tested and uses that knowledge as part of the testing process.
If, for example, exception is thrown under certain conditions, test might
want to reproduce those conditions. White-box testing requires internal
knowledge of the system and programming skills. It provides internal
perspective of the software under test.
‘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:
+ Function Coverage: Which reports on functions executed+ Statement Coverage: Which reports on the number of lines executed to
complete the test.
They both return coverage metric, measured as a percentage.
Advantages of White Box Testing
Testing can commence even before the GUI is ready.0
As internal functionality is considered, all the possible conditions are
considered and test cases are generated. Hence all the functionalities
are being tested.
It identifies the specific procedure accuracy within the application.
It minutely verifies whether the program can be successfully executed
with other parts of the application.
It identifies error in the hidden code and thus makes debuggingprocess
swift.
It removes extra lines of code which are not required in the program
thereby optimizing the program and increases the efficiency.
‘As the internal coding of the application is considered while preparing
test cases, it becomes very easy to identify the input and the expected
output data,
It helps in evaluating all the loops and paths.
It can provide stability and usability of the test cases.
Thoroughness achieved in white box testing is far more than black box
testing.
Various hidden defects get unearth while conducting clear box testing.Disadvantages of White Box testing
As the internal code of the application has to be considered while
preparing the test cases, skilled testers are required who have
knowledge of programming also. Hence the cost of the resources is high.
It is not possible for the tester to look into every bit of the code and
identify the hidden errors. This may result in failure of the application.
Sometimes a change in the code may be required and thus all the
scenarios may need to be tested again.
White box testing is an exhaustive method,
It takes time to tester to develop the test cases.
Test cases are a waste if changes in the implementation code are done
frequently.
If the application is large then complete testing through white box
techniques is not feasible.BIBLIOGRAPHY
Informatics Practices- Class XI By: Sumita Arora
Informatics Practices with Python- Class XI By: Preeti Arora
Informatics Practices - NCERT Textbook for Class XI
Website: https://www.w3resource.com