Uploaded by surya sharma

Diya Project Report

advertisement
ACKNOWLEDGEMENT
Through this acknowledgement, I express my sincere gratitude to all those people
who are
associated with this project and are helping me with it to make it a worthwhile
experience. First
and foremost I would like to thank almighty for giving me courage to make this
project. At the
outset, I would like to propose a word of thanks for the people who gave me
unending support and
help in numerous ways.
Firstly, I express our thanks to Mrs Harpreet Bajaj (HOD CSE DEPTT) who gave me
this opportunity to
learn the subject in a practical approach who guided me and gave me valuable
suggestions
regarding the project report.
Secondly, I would like to thank Ms. Anita Sodhi (Project guide) and FACULTY
MEMBERS of
O7 SERVICES who are giving me their immense support in completing the project.
The
atmosphere provided is full of gaining more and more knowledge and to keep
enthusiastic nature.
The teachers provide a lot of help in resolving my doubts and making this project
successful in shorter time.
Lastly, I would also like to thank my parents and friends who help me a lot in
finishing the project in limited time.
I am making this project not only for marks but also to increase my knowledge.
Thanks again to all who are helping me in completion of this project.
CERTIFICATE
2|P a g e
E-DOCUMENT
Submitted in Partial fulfillment of the requirements for the degree of
BACHELOR OF TECHNOLOGY
in
Computer Science and Engineering
Six Week Industrial Training Report
Submitted by
Diya Sharma
Class Roll No-113/20
I.K. GUJRAL PUNJAB TECHNICAL UNIVERSITY,
JALANDHAR
4|P a g e
Project Title: To Do Software
1. INTRODUCTION:
Project is constituent of seven words and I have tried my best to give its definition analysing each
word in the following manner:
P- Perfect Planning
R- Resources
O- Organization
J- Joint Efforts
E- Engineering Skill
C- Communication
T- Technique
E-Document:
E-Document is an efficient, time saving and easy way to report, view and control the version of a file.
It is now an easy task and managing it is much easier. E-Document, a suite of programs that
automates away most of the drudgery involved in keeping an annotated history of your project and
avoiding modification conflicts.
During the period of finalizing the idea of the system, the primary goal was to design the system i.e
those who don’t know how to handle the software. As designing work began and things started taking
shape, the system got developed to a stage where it would be used by entry level.
E-Document is an efficient, time saving and easy way to report, view and control the version of a
file. It is now an easy task and managing it is much easier. E-Document, a suite of programs that
automates away most of the drudgery involved in keeping an annotated history of your project and
avoiding modification conflicts. Most E-Document share the same basic logic. To use one, start by
registering a collection of source files — that is, telling your E-Document to start archive files
describing their change histories. Thereafter, when you want to edit one of these files, you have to
check out the file — assert an exclusive lock on it. When you're done,
1|P a g e
you check in the file, adding your changes to the archive, releasing the lock, and entering a change
comment explaining what you did.
The main objective of the project on E-Document:
•
Reduce lost and misfiled documents.
•
Provide faster search and retrieval of documents.
•
Reduce the amount of physical space used to store documents, such as file cabinets, boxes and
shelving.
•
Better organize existing documents.
•
Streamline information and workflow.
•
Allow instant access to documents.
2. PROJECT DESCRIPTION:
Module of Project
There is only user modules associate with project. This module is working in their specific area to
lead and complete the project.
User Modules of E-Document:
•
Login:
The login is used to sign in the application. The login activity contains username and password
text field and login button for login process.
•
Register:
In this part of module, new user can register themselves. The Register contains name, email,
phone number, username, password and gender and register button.
•
Home:
In this part of module, user after login comes to home screen which shows total number of
tasks of the login user and has a menu bar with options tasks, views and logout.
•
Add Task:
This allows user to add the task. It contains fields Task Name, Description, Start Date ,Finish
Date, Priority and Add Task button.
6|P a g e
•
Open Task:
This contains a table which shows details of the task of login user. It also contains home
Button. And table contains fields id, Task Name, Description, Start Date ,Finish Date,
Priority, Update and Delete Button
•
Edit Task:
This allows user to update the task. Edit task contains fields Task Name, Description, Start
Date ,Finish Date, Priority and Update button
3. ANALYSIS:
Problem Description:
3.1 Purpose
Todo is a desktop-based application developed in Python which takes care of the daily task of a
User. It takes care of the managing users day according to tasks specified by user according to
their priority
In a day to day life where the hierarchy of managing day , managing the work with them is a
difficult job.
3.2 PROPROSED SYSTEM:
In proposed system online system helps to user view their document. To allow the user to get
review their document and make changes and allow them make request. To prevent interface that
show document.
3.3 Feasibility Study:
A feasibility study is a preliminary study which investigates the information needs of perspective
users and determines the resource requirements, determining the cost effectiveness of various
alternatives in the designs of the information system, benefits and feasibility of proposed project.
The goal of the feasibility study is to evaluate alternative systems to propose the most feasible and
desirable systems for development.
Types of Feasibility:
There are various measures of feasibility that helps to decide whether a particular project is feasible
or not. These measures includeTechnical Feasibility Study The technical issues raised during the technical feasibility analysis are:
•
Does the necessary technology exist to do what is suggested?
•
Does the proposal equipment have the technical capacity to hold the data required to use
the new system?
•
Will the proposed system & components provide adequate responses to inquiries,
8|P a g e
regardless of the number or locations of users?
•
Can the system be expanded?
The project should be developed such that the necessary functions and performance are achieved
within the constraints. The project is developed within latest technology. Through the technology
may become obsolete after some period of time, due to the fact that never version of same software
supports older versions, the system may still be used. So there are minimal constraints involved
with this project. The system has been developed using Java the project is technically feasible for
development.
Operational Feasibility Study We have designed front end in XML by getting the information from the end user, which help us
in designing the GUI according to the end user’s requirements. The end users can easily understand
and expand it in the future.
This includes the following questions:
➢ Is there sufficient support for the users?
➢ Will the proposed system cause harm?
➢ The project would be beneficial because it satisfies the objectives when developed and
installed. All behavioral aspects are considered carefully and conclude that the project is
behaviorally feasible.
Economic Feasibility Study It involve estimating cost and benefits that can be tangible and intangible because of confusing
between the types of costs it is sometimes very difficult to divide the benefits out weight the cost.
The developing system must be justified by cost and benefit. Criteria to ensure that effort is
concentrated on project, which will give best, return at the earliest. One of the factors, which affect
the development of a new system, is the cost it would require.
The following are some of the important financial questions asked during preliminary
investigation:
The costs conduct a full system investigation.
➢ The cost of the hardware and software.
➢ The costs conduct a full system investigation.
➢ The benefits in the form of reduced costs or fewer costly errors.
Since the system is developed as part of project work, there is no manual cost to spend for the
proposed system. Also all the resources are already available, it give an indication of the system
is economically possible for development.
3.4 Requirement Analysis:
SYSTEM REQUIRENMENT SPECIFICATIONS
A software requirements specification (SRS) is a comprehensive description of the intended
purpose and environment for softwareunder development. The SRS fully describes what the
software will do and how it will be expected to perform.
An SRS minimizes the time and effort required by developers to achieve desired goals and also
minimizes the development cost. A good SRS defines how an application will interact with system
hardware, other programs and human users in a wide variety of real-world situations. Parameters
such as operating speed, response time, availability, portability, maintainability, footprint, security
and speed of recovery from adverse events are evaluated. Methods of defining an SRS are
described by the IEEE (Institute of Electrical and Electronics Engineers) specification 830-1998.
10|P a g e
Need for SRS:
A basic purpose of software requirements specification is to bridge the communication gap
between the user & system analyst, SRS is the medium through which the client and user needs
are accurately specified; indeed SRS forms the basis of software development. A good SRS should
satisfy all the parties- sometimes very hard to achieve and involves trade off and persuasion.
Another important purpose of developing an SRS is helping the clients to understand their own
needs.
A main purpose of the product specification is to define the need of the product’s user.
Sometimes, the specification may be a part of a contract sign between the producer and the user.
It could also form part of the user manuals. A user‘s needs are sometimes not clearly understood
by the developer. If this is the case, a careful analysis – involving much interaction with the user
should be devoted to reaching a clear statement of requirements, in order to avoid possible
misunderstandings. Sometimes, at the beginning of a project, even the user has no clear idea of
what exactly the desired product is. Think for instance of user interface , a user with no previous
experience with computer products may not appreciate the difference between , say menu driven
interaction and a command line interface. Even an exact formation of system functions and
performance may be missing an initial description produced by an experienced user.
4. Hardware and Software Requirements
For this project minimum hardware and software requirement are listed below:
Hardware Requirements:
Processor
:
Intel I3
RAM
:
4.00 GB
:
80 GB
:
Python, Tkinter
Hard Disk
Software Requirements:
Front End Tool
To Developed
:
Visual Studio code
Back End Tool
Browser
:
:
MYSQL, XAMPP
IE 7.0/Mozilla Firefox 6.0/Cross
Operating System
:
Windows Operating System
Software Tool Theoretical Background
Introduction to Xampp server
•
Xampp Server refers to a software stack for the All Cross plateform operating system consisting
of the Apache server, SSL support, My SQL database and PHP programming language.
•
Xampp Stands for "Cross Plateform, Apache, My SQL, and PHP." XAMPP is a variation of
WAMP for Windows systems and is often installed as a software bundle (Apache, My SQL, and
PHP).
•
It is often used for web development and internal testing, but may also be used to serve live
websites.
•
XAMPP also includes My SQL and PHP, which are two of the most common technologies used
for creating dynamic web sites. My SQL is a high-speed database, while PHP is a scripting
language that can be used to access data from the database.
•
By installing these two components locally, a developer can build and test a dynamic website
before publishing it to a public web server.
•
While Apache, My SQL, and PHP are open source components that can be installed individually,
they are usually installed together. One popular package is called "Xampp Server," which provides
a user-friendly way to install and configure the "AMP" components on Windows.
•
The acronym XAMPP refers to a set of free (open source) applications, combined with Cross
Plateform Operating System, which are commonly used in Web server environments.
Visual code studio
Visual Studio is an Integrated Development Environment(IDE) developed by Microsoft
to develop GUI(Graphical User Interface), console, Web applications, web apps, mobile apps,
cloud, and web services etc. With the help of this IDE, you can create managed code as well as
native code. It uses the various platforms of Microsoft software development software like Windows
store, Microsoft Silverlight, and Windows API etc. It is not a language specific IDE as you can use
this to write code in C#, C++, VB(Visual Basic), Python, JavaScript, and many more languages. It
12|P a g e
provides support for 36 different programming languages. It is available for Windows as well as for
macOS.
Technology used under my project
Front end
1.
Tkinter
2.
Python
Back end
1.
mySql
2.
phpmyadmin
2.1Technology used
2.1.1 Python
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming
language. It was created by Guido van Rossum during 1985- 1990. Like Perl, Python source code
is also available under the GNU General Public License (GPL). This tutorial gives enough
understanding on Python programming language.
Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is
designed to be highly readable. It uses English keywords frequently whereas other languages use
punctuation, and it has fewer syntactic constructions than other languages.
a) History
Python was developed by Guido van Rossum in the late eighties and early nineties at the National
Research Institute for Mathematics and Computer Science in the Netherlands. Python is derived
from many other languages, including ABC, Modula-3, C, C++, Algol-68, SmallTalk, and Unix
shell and other scripting languages.
Python is copyrighted. Like Perl, Python source code is now available under the GNU General
Public License (GPL). Python is now maintained by a core development team at the institute,
although Guido van Rossum still holds a vital role in directing its progress.
b) Python Features
1. Easy-to-learn − Python has few keywords, simple structure,
and a clearly defined syntax. This allows the student to pick
up the language quickly.
2. Easy-to-read − Python code is more clearly defined and
visible to the eyes.
3. Easy-to-maintain − Python's source code is fairly easy-to-
maintain.
4. A broad standard library − Python's bulk of the library is
very portable and cross-platform compatible on UNIX, Windows, and Macintosh.
Interactive Mode − Python has
support for an interactive mode which allows interactive
testing and debugging of snippets of code.
5. Portable − Python can run on a wide variety of hardware
platforms and has the same interface on all platforms.
6. Extendable − you can add low-level modules to the Python
interpreter. These modules enable programmers to add to or
customize their tools to be more efficient.
7. Databases − Python provides interfaces to all major
commercial databases.
14|P a g e
8. GUI Programming − Python supports GUI applications that can
be created and ported to many system calls, libraries and
windows systems, such as Windows MFC, Macintosh, and the X
Window system of Uni
9. Scalable − Python provides a better structure and support
for large programs than shell scripting.
10. Apart from the above-mentioned features, Python has a big
list of good features, few are listed below −
●
It supports functional and structured programming methods as well as OOP.
●
It can be used as a scripting language or can be compiled to byte-code for building
large applications.
●
It provides very high-level dynamic data types and supports dynamic type checking.
●
It supports automatic garbage collection.
●
It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java. c)Python
Tuples
A tuple is another sequence data type that is similar to the list. A tuple consists of a number of values
separated by commas. Unlike lists, however, tuples are enclosed within parentheses.
The main differences between lists and tuples are: Lists are
enclosed in brackets ( [ ] ) and their elements and size can be
changed, while tuples are enclosed in parentheses ( ( ) ) and cannot
be updated. Tuples can be thought of as read-only lists. For
example −
#!/usr/bin/python tuple = ( 'abcd', 786 , 2.23,
'john', 70.2 ) tinytuple = (123, 'john') print
tuple
# Prints complete list
print tuple[0]
# Prints first element of the list
print tuple[1:3]
# Prints elements starting from 2nd till 3rd
print tuple[2:]
# Prints elements starting from 3rd element
print tinytuple * 2 # Prints list two times print tuple
+ tinytuple # Prints concatenated lists
This produce the following result −
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
The following code is invalid with tuple, because we attempted to
update a tuple, which is not allowed. Similar case is possible with
lists −
#!/usr/bin/python tuple = ( 'abcd', 786 , 2.23,
'john', 70.2 ) list = [ 'abcd', 786 , 2.23, 'john',
70.2 ]
tuple[2] = 1000
# Invalid syntax with tuple list[2] = 1000
# Valid syntax with list
d)Python Dictionary
Python's dictionaries are kind of hash table type. They work like
associative arrays or hashes found in Perl and consist of keyvalue pairs. A dictionary key can be almost any Python type, but
are usually numbers or strings. Values, on the other hand, can be
any arbitrary Python object.Dictionaries are enclosed by curly
braces ({ }) and values can be assigned and accessed using square
16|P a g e
braces ([]). For example −
#!/usr/bin/python dict = {} dict['one'] = "This is one"
dict[2] = "This is two" tinydict = {'name':
'john','code':6734, 'dept': 'sales'} print dict['one'] #
Prints value for 'one' key print dict[2]
value for 2 key print tinydict
# Prints
# Prints complete
dictionary print tinydict.keys() # Prints all the keys
print tinydict.values() # Prints all the values
This produce the following result −
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
Dictionaries have no concept of order among elements. It is incorrect to say that the elements are
"out of order"; they are simply unordered.
e)Python Tuples
A tuple is a sequence of immutable Python objects. Tuples are sequences, just like lists. The
differences between tuples and lists are, the tuples cannot be changed unlike lists and tuples use
parentheses, whereas lists use square brackets.
Creating a tuple is as simple as putting different commaseparated values. Optionally you can put these comma-separated
values between parentheses also. For example −
tup1 = ('physics', 'chemistry', 1997, 2000); tup2
= (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";
The empty tuple is written as two parentheses containing nothing −
tup1 = ();
To write a tuple containing a single value you have to include a
comma, even though there is only one value −
tup1 = (50,);
Like string indices, tuple indices start at 0, and they can be sliced, concatenated, and so on. f)
accessing Values in Tuples
To access values in tuple, use the square brackets for slicing along
with the index or indices to obtain value available at that index.
For example −
#!/usr/bin/python tup1 = ('physics', 'chemistry',
1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print
"tup1[0]: ", tup1[0]; print "tup2[1:5]: ",
tup2[1:5];
When the above code is executed, it produces the following result
−
tup1[0]: physics tup2[1:5]: [2,
3, 4, 5]
g) Updating Tuples
Tuples are immutable which means you cannot update or change the
values of tuple elements. You are able to take portions of existing
18|P a g e
tuples to create new tuples as the following example demonstrates
−
#!/usr/bin/python
tup1 = (12, 34.56); tup2 =
('abc', 'xyz');
# Following action is not valid for tuples
# tup1[0] = 100;
# So let's create a new tuple as follows tup3
= tup1 + tup2; print tup3;
When the above code is executed, it produces the following result
−
(12, 34.56, 'abc', 'xyz')
h)Delete Tuple Elements
Removing individual tuple elements is not possible. There is, of
course, nothing wrong with putting together another tuple with
the undesired elements discarded. To explicitly remove an entire
tuple, just use the del statement. For example −
#!/usr/bin/python tup = ('physics', 'chemistry',
1997, 2000); print tup; del tup; print "After
deleting tup : "; print tup;
This produces the following result. Note an exception raised, this is because after del tup tuple
does not exist any more −
('physics', 'chemistry', 1997, 2000) After
deleting tup :
Traceback (most recent call last):
File
"test.py", line 9, in <module> print tup;
NameError: name 'tup' is not defined
i) Basic Tuples Operations
Tuples respond to the + and * operators much like strings; they mean concatenation and repetition
here too, except that the result is a new tuple, not a string. In fact, tuples respond to all of the general
sequence operations we used on strings in the prior chapter –
j)No Enclosing Delimiters
Any set of multiple objects, comma-separated, written without
identifying symbols, i.e., brackets for lists, parentheses for
tuples, etc., default to tuples, as indicated in these short
20|P a g e
examples −
#!/usr/bin/python print 'abc', -4.24e93,
18+6.6j, 'xyz'; x, y = 1, 2; print "Value
of x , y : ", x,y;
When the above code is executed, it produces the following result
−
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
2.1.2 TKINTER
Tkinter is the standard GUI library for Python. Python when
combined with Tkinter provides a fast and easy way to create GUI
applications. Tkinter provides a powerful object-oriented
interface to the Tk GUI toolkit. Creating a GUI application using Tkinter is an easy task. All you
need to do is perform the following
steps −
●
Import the Tkinter module.
●
Create the GUI application main window.
●
Add one or more of the above-mentioned widgets to the GUI application.
●
user.
Enter the main event loop to take action against each event triggered by the
Tkinter Widgets
Tkinter provides various controls, such as buttons, labels and text boxes used in a GUI application.
These controls are commonly called widgets. There are currently 15 types of widgets in Tkinter.
We present these widgets as well as a brief description in the following table
Sr.
Operator & Description
1
Button
The Button widget is used to display buttons in your application.
2
Canvas
The Canvas widget is used to draw shapes, such as lines, ovals, polygons and
rectangles, in your application.
3
Checkbutton
The Checkbutton widget is used to display a number of options as checkboxes.
The user can select multiple options at a time.
4
Entry
The Entry widget is used to display a single-line text field for accepting values
from a user.
5
Frame
The Frame widget is used as a container widget to organize other widgets.
22|P a g e
6
Label
The Label widget is used to provide a single-line caption for other widgets. It
can also contain images.
7
Listbox
The Listbox widget is used to provide a list of options to a user.
8
Menubutton
The Menu button widget is used to display menus in your application.
9
Menu
The Menu widget is used to provide various commands to a user. These
commands are contained inside Menubutton.
10
Message
The Message widget is used to display multiline text fields for accepting values
from a user.
11
Radiobutton
The Radio button widget is used to display a number of options as radio buttons.
The user can select only one option at a time.
12
Scale
The Scale widget is used to provide a slider widget.
13
Scrollbar
The Scrollbar widget is used to add scrolling capability to various widgets, such
as list boxes.
14
Text
The Text widget is used to display text in multiple lines.
15
Toplevel
The Toplevel widget is used to provide a separate window container.
16
Spinbox
The Spinbox widget is a variant of the standard Tkinter Entry widget, which can
be used to select from a fixed number of values.
24|P a g e
17
PanedWindow
A PanedWindow is a container widget that may contain any number of panes,
arranged horizontally or vertically.
18
LabelFrame
A labelframe is a simple container widget. Its primary purpose is to act as a
spacer or container for complex window layouts.
19
tkMessageBox
This module is used to display message boxes in your applications.
2.1.3 MYSQL
MySQL is a relational database. MySQL is a powerful database. It's very good and free of charge.
Many developers in the world selected Mysql and php for developing their website.
● Some of The Most Important SQL Commands
●
SELECT - extracts data from a database
●
UPDATE - updates data in a database
●
DELETE - deletes data from a database
●
INSERT INTO - inserts new data into a database
●
CREATE DATABASE - creates a new database
●
ALTER DATABASE - modifies a database
●
CREATE TABLE - creates a new table
●
ALTER TABLE - modifies a table
●
DROP TABLE - deletes a table
●
CREATE INDEX - creates an index (search key)
●
DROP INDEX - deletes an index ●
The SQL INSERT INTO Statement
2.1.4 WHAT IS A DATABASE?
A database is a structure that comes in two flavors: a flat database and a relational database. A
relational database is much more oriented to the human mind and is often preferred over the gabblede-gook flat databases that are just stored on hard drives like a text file. MySQL is a relational
database.
1.
MySQL is developed, marketed, and supported by MySQL AB, which is a Swedish
company.
2.
MySQL is released under an open-source license. So, you have nothing to pay to use
it.
3.
MySQL is a very powerful program in its own right. It handles a large subset of the
functionality of the most expensive and powerful database packages.
4.
MySQL uses a standard form of the well-known SQL data language.
5.
MySQL works on many operating systems and with many languages including PHP,
PERL, C, C++, JAVA etc.
6.
MySQL works very quickly and works well even with large data sets.
7.
MySQL supports large databases, up to 50 million rows or more in a table.
2.1.5 PHPMYADMIN
PhpMyAdmin is a free and open source tool written in php intended to handle the administrator of
MySQL or with the use of a web browser. It can perform various tasks such as creating,
modifying, or deleting databases, tables, fields or rows; executing SQL statements, or managing
users and permissions. PhpMyadmin is a MySQL application
26|P a g e
5.SOFTWARE PROCESS MODEL:
Waterfall Model
The waterfall model is a sequential design process, often used in software development processes,
in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of
Conception, Requirement Analysis, Design, Coding, Testing, Deployment, and Maintenance .
Following is a diagrammatic representation of different phases of waterfall model.
The sequential phases in Waterfall model are:
27|P a g e
•
Requirement Gathering and analysis
All possible requirements of the system to be developed are captured in this phase.
Requirements are set of functionalities and constraints that the end-user (who will be using
the system) expects from the system. The requirements are gathered from the enduser by
consultation, these requirements are analyzed for their validity and the possibility of
incorporating the requirements in the system to be development is also studied. Finally all
requirements documented in a requirement specification doc.
•
System Design
Before a starting for actual coding, it is highly important to understand what we are going
to create and what it should look like? The requirement specifications from first phase are
studied in this phase and system design is prepared. System Design helps in specifying
hardware and system requirements and also helps in defining overall system architecture.
The system design specifications serve as input for the next phase of the model.
•
Implementation
With inputs from system design, the work is divided in modules/units and actual coding is
started. The system is first developed in small programs called units, which are integrated
in the next phase. Each unit is developed and tested for its functionality which is referred
to as Unit Testing. Unit testing mainly verifies if the modules/units meet their
specifications.
•
Integration and Testing
All the units developed in the implementation phase are integrated into a system after
testing of each unit. These units are integrated into a complete system during Integration
phase and tested to check if all modules/units coordinate between each other and the
system as a whole behaves as per the specifications. Post integration the entire system is
tested for any faults and failures.
•
Maintenance
This phase of "The Waterfall Model" is virtually never ending phase. There are some
issues which come up in the client environment. Not all the problems come in picture
28|P a g e
directly but they arise time to time and needs to be solved. To fix those issues patches are
released. Also to enhance the product some better versions are released. Maintenance is
done to deliver these changes in the customer environment.
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the
defined set of goals are achieved for previous phase and it is signed off, so the name
"Waterfall Model". In this model phases do not overlap. Waterfall model is the earliest
SDLC approach that was used for software development.
6. DESIGN
6.1 SYSTEM DESIGN
The most creative and challenging phase of SDLC is system design. The term design
describes a final system and the process by which it is developed. It includes construction of
programs and program testing.
The purpose of the design phase is to plan a solution of the problem specifies by the
requirements document. This phase is the first step in the moving from the problem domain to the
solution domain. Starting with what is needed; design takes us towards how to satisfy the needs.
The design of the system is perhaps the most critical factor affecting the quality of the software. It
has major impact on the later phase, particularly testing and maintenance. The output of this phase
is the design document. This document is similar to blueprint or plan for the solution and is used
later during implementation, testing and maintenance.
A systematic method has to achieve the beneficial result at the end. It includes starting with
average idea and developing it into a series of steps. The series of steps for successful system
development are given below:
➢ Study problem completely because first of all we should know the goal, which
he has to achieve.
➢ We should see what kind of output we require and what kind of input we give
so we can get the desired output from system output from system. It is very
challenging step of system development.
29|P a g e
➢ According to the output requirement of system the strength of various databases
should be design.
➢ Next, we should know what kind of program we should develop, which will
lead us to reach final goal.
➢ Then we write this individual program, which later on joining solve problem.
➢ Then we test these programs and make necessary correction in them to achieve
target of program.
➢ At last combining all these problems in the forms of a bar in the menu of
windows, this will complete software package for general insurance.
The three main objectives which the designer has to bear in mind are:1. How fast the design will be do the users work given particular hardware resources.
2. The extent to which the design is secure against the human errors and machine
malfunctions.
3. The ease with which the design allows the system to be changed.
To meet these objectives analyst and programmers use a top-down and bottom-up design.
➢ TOP – DOWN DESIGN
It is also known as system design, aims to identify the modules that should be in a system.
It starts with large picture and move to the details. The analyst and team members look at
major functions that the system must provide and break these down into smaller and
smaller activities.
➢ BOTTOM – UP APPROACH
It is also known as detailed design. It starts with details and then moves to the big picture.
This approach is appropriate when users have specific requirements for output.
6.2 DFD: Data Flow Diagram
Data Flow Diagrams were first developed by Larry Constantine as a way of expressing system
requirements in a graphical form. DFD is also known as bubble chart and has a purpose of
30|P a g e
clarifying system requirements and identifying major transformations and will become the
program in the system design.
Data Flow Diagramming is a means of representing a system at any level of detail with a graphic
network of symbols showing data flows, data stores, data processes, and data
sources/destinations.
Purpose:
The purpose of data flow diagrams is to provide a semantic bridge between users and systems
developers.
The diagrams are:
•
Graphical, eliminating thousands of words.
•
Logical representations, modeling WHAT a system does, rather than physical models
showing HOW it does it.
•
hierarchical, showing systems at any level of detail and
Allowing user understanding
and reviewing.
DFD Symbols are as follows:
➢ The External Entity symbol represents sources of data to the system or destinations of data
from the system.
➢ The Data Flow symbol represents movement of data.
➢ The Data Store symbol represents data that is not moving (delayed data at rest).
31|P a g e
➢ The Process symbol represents an activity that transforms or manipulates the data.
DFD Level 0
User
To Do
32|P a g e
DFD Level 1
User
Users
Login
ToDo
DFD Level 2
Login
Users
Task
add
manage
Tasks
View Task
Day wise
Tasks
User
Update Task
View 3
Day Task
33|P a g e
Tasks
User Table:
Task Table:
7. CODING:
Home Page
from tkinter import *
import database
import addTask
import Task_view
import ThreeDayTask
import DayTask
34|P a g e
class HomeMenu:
def __init__(self):
self.root = Tk()
self.root.title("Home Menu")
self.root.geometry("800x600")
self.width = self.root.winfo_screenwidth()
self.height = self.root.winfo_screenheight()
self.width = int((self.width - 800) / 2)
self.height = int((self.height - 500) / 2)
s = '800x500+' + str(self.width) + "+" + str(self.height)
self.root.resizable(height=False, width=False)
self.root.config(bg="white")
self.root.geometry(s)
def menuWidget(self, data=""):
self.image_path = PhotoImage(file="images/i1.png")
self.image_l = Label(self.root, image=self.image_path)
self.image_l.place(x=0, y=0, width="800", height="600")
self.data = data
self.Menubar = Menu(self.root)
35|P a g e
self.file = Menu(self.Menubar, tearoff=0)
self.Menubar.add_cascade(label='Task', menu=self.file)
self.file.add_command(label='AddTask', command=self.openTask)
self.file.add_command(label='Open Task', command=self.viewTask)
self.file1 = Menu(self.Menubar, tearoff=0)
self.Menubar.add_cascade(label='View', menu=self.file1)
self.file1.add_command(label='3Day Tasks', command=self.View3DayTask)
self.file1.add_command(label='DayWiseTask', command=self.DayTask)
self.file2 = Menu(self.Menubar, tearoff=0)
self.Menubar.add_cascade(label='Logout', menu=self.file2)
self.file2.add_command(label='Logout', command=self.root.destroy)
# self.file1.add_command(label='DayWiseTask', command=self.DayTask)
# self.navigate.add_command(label='Back', command=None)
self.noUsers = Label(self.root, bg='#87CEEB',font=('Calbri', 25, 'bold'),text=f"No of tasks {len(database.getTasks((self.data[0],)))}")
self.noUsers.place(x=30, y=50)
self.root.config(menu=self.Menubar)
self.root.mainloop()
def openTask(self):
36|P a g e
self.root.destroy()
obj = addTask.AddTask()
obj.LabelWidget(self.data[0])
def viewTask(self):
self.root.destroy()
obj1 = Task_view.ViewTask()
obj1.mainframe(self.data[0])
def View3DayTask(self):
self.root.destroy()
obj =ThreeDayTask.DayClass()
obj.LabelWidget(self.data[0])
def DayTask(self):
self.root.destroy()
obj =DayTask.DayClass()
obj.LabelWidget(self.data[0])
if __name__ == "__main__":
obj = HomeMenu()
obj.menuWidget(id)
Login Page:
from tkinter import *
37|P a g e
from tkinter import messagebox
import Register, database, homeMenu
class LogInClass:
def __init__(self):
self.root = Tk()
self.root.geometry('800x600')
self.root.title("LogIn")
self.width = self.root.winfo_screenwidth()
self.height = self.root.winfo_screenheight()
self.width = int((self.width - 800) / 2)
self.height = int((self.height - 500) / 2)
s = '800x500+' + str(self.width) + "+" + str(self.height)
self.root.resizable(height=False, width=False)
self.root.config(bg="white")
self.root.geometry(s)
def LabelWidget(self):
self.image_path = PhotoImage(file="images/i1.png")
self.image_l = Label(self.root, image=self.image_path)
self.image_l.place(x=0, y=0, width="800", height="600")
self.f=Frame(self.root, bg='#87CEEB')
self.f.place(x=200,y=100,height= 250,width=400)
self.LogLabel = Label(self.f, text='Login', bg = '#87CEEB' ,font=('Calbri', 25))
self.LogLabel.place(x=165, y=5)
38|P a g e
self.UserLabel = Label(self.f, text='Username', bg = '#87CEEB',font=('Calbri', 15,'bold'))
self.UserLabel.place(x=70, y=60)
self.UserEntry = Entry(self.f)
self.UserEntry.place(x=180, y=60, height='30',width= '180')
self.PassLabel = Label(self.f, text='Password', bg = '#87CEEB',font=('Calbri', 15,'bold'))
self.PassLabel.place(x=70, y=130)
self.PassEntry = Entry(self.f,show="*")
self.PassEntry.place(x=180, y=130, height='30',width= '180')
self.LogInButton = Button(self.f, text='LogIn',font=('bold'), bg='Blue', fg='white',
command=self.data)
self.LogInButton.place(x=160, y=190, height=40, width=100)
self.NewUserButton = Button(self.root, text='New User?', bg='Green', fg='White',
font=('bold'), command=self.register_page)
self.NewUserButton.place(x=650, y=450, height=40, width=100)
self.root.mainloop()
def register_page(self):
self.root.destroy()
a = Register.SignInClass()
a.LabelWidget()
def data(self):
d1 = self.UserEntry.get()
d2 = self.PassEntry .get()
if d1 == '':
39|P a g e
messagebox.showerror('Error', 'Please Enter Your Username')
elif d2=='':
messagebox.showerror('Error','Please Enter Your Password')
else:
res = database.login_user((d1, d2))
print(f"response is {res}")
if res:
messagebox.showinfo("Success", "Login Successfully")
self.root.destroy()
obj = homeMenu.HomeMenu()
obj.menuWidget(res)
else:
messagebox.showerror("Error", "Invalid username/password")
if __name__ == '__main__':
obj = LogInClass()
obj.LabelWidget()
7.
SNAPSHOTS
40|P a g e
Fig 8.1 User Login
Fig 8.2 Register User
Fig 8.3 Home Page
41|P a g e
Fig 8.4 Add Task Window
Fig 8.5 Open Task Window
42|P a g e
Fig 8.6 3 Day Task Window
Fig 8.7 Day Wise Task Window
Fig 8.8 Edit Task Window
43|P a g e
9. TESTING
9.1 Introduction to Testing:
Testing is the major quality control measure employed during software development. Testing is
the process of executing a program with the intent of finding an error. No piece of code is
completely ready unless it has been fully tested. This stage is very important as at this stage it is
verified whether the code developed meet the requirement specifications or not. Moreover, all
validations are also checked in the testing stage.
Testing is a process of executing a program with the intent of finding an error. A good test case is
the one that has a probability of finding an as yet undiscovered error. If testing is conducted
successfully (according to the objective stated) it will uncover error in the software. As secondary
benefit, testing demonstrates that software function appears to be working according to the
specification that performance requirement appears to have been met.
Testing is the set of activities that can be planned in advance and conducted systematically. It is
an integral part of program development. It is in this stage, which we check that the program, that
has been coded, Perform according to the requirements. The purpose of doing test is not to
demonstrate that there are no errors in the program but to detect any bugs that may still exist.
In the testing stage, the main aim is to look for errors that unknowingly have been occurred. It is
common misconception that the purpose of testing is to prove that a program is working correctly.
This is dangerous myth because it can lead insufficient testing, and program with hidden fault.
Because the actual result and expected result may differ in the field of reality and it can be
hazardous for a program.
The importance of software testing and its implications with respect to software quality cannot be
over emphasized. Software testing is a crucial element of software quality and represents the
ultimate review of specification design and coding.
The increasing visibility of motivating forces for well planned thorough testing. It is not unusual
for software development organization to expend 40% of total project effort on testing.
9.2 Test Strategy
Implemented System is tested using Basic level of Testing that are:
44|P a g e
1) UNIT TESTING.
2) INTEGRATION TESTING.
3) SYSTEM TESTING.
4) ACCEPTANCE TESTING.
These different levels of testing attempt to detect different types of faults. The relation of the faults
introduced in different phases, and the different levels of testing are shown:
1.) UNIT TESTING
The first level of testing is unit testing. In this different modules are tested against the
specifications produced during design for the modules. Unit testing is essential for
verification of the code produced during the coding phase and hence the goal is to test the
internal logic of the modules
2.) INTEGRATION TESTING
The next level of testing is often called integration testing. In this many tested modules are
combined into sub-systems, which are then tested the goal here is to see if the modules can
be integrated properly, the emphasis being on testing interfaces between modules. This
activity can be considered as testing the design, and hence the emphasis on testing module
interactions.
3.) SYSTEM TESTING
The next level of testing is system testing. Here the entire software system is tested. The
reference document for this process is requirement document, and the goal is to see if the
software meets its requirements. This is essentially a validation exercise. And it was found
that they all are working well to meet the Owners requirements.
4.) ACCEPTANCE TESTING
The last level of testing is acceptance testing. Acceptance testing is performed with realistic
data of the client to demonstrate that the software is working satisfactorily. Testing here
45|P a g e
focuses on the external behavior of the system; the internal logic of the program is not
emphasized.
9.3 Test Cases
For testing to be successful, proper selection of test cases is essential. There are two different
approaches to selecting cases - functional testing and structural testing.
➢ Infunctional testing the software or the module to be tested is treated as a black box, and
the test cases are decided based on the specifications of the system or the module. For this
reason this type of testing is also called "black box testing" the focus here is on testing the
external behavior of the system.
➢ In structural testing the test cases are decided based on the logic of the module to be
tested. A common approach here is to achieve some type of coverage of the statements in
the code. One common coverage criterion is statement coverage, which requires that test
cases be selected so that together they execute each statement exactly once.
10. IMPLEMENTATION:
System implementation generally benefits from high levels of user involvement and management
support. User participation in the design and operation of information systems has several positive
results. First, if users are heavily involved in systems design, they move opportunities to mold the
system according to their priorities and business requirements, and more opportunities to control
the outcome. Second, they are more likely to react positively to the change process. Incorporating
user knowledge and expertise leads to better solutions.
The relationship between users and information systems specialists has traditionally been a
problem area for information systems implementation efforts. Users and information systems
specialists tend to have different backgrounds, interests, and priorities. This is referred to as the
user-designer communications gap. These differences lead to divergent organizational loyalties,
approaches to problem solving, and vocabularies. Examples of these differences or concerns are
below:
46|P a g e
User Concerns
•
Will the system deliver the information I need for my work?
•
How quickly can I access the data?
•
How easily can I retrieve the data?
•
How much clerical support will I need to enter data into the system?
•
How will the operation of the system fit into my daily business schedule?
Designer Concerns
•
How much disk storage space will the master file consume?
•
How many lines of program code will it take to perform this function?
•
How can we cut down on CPU time when we run the system?
•
What are the most efficient ways of storing this data?
•
What database management system should we use
47|P a g e
11.MAINTENANCE
Introduction to Software Maintenance
Software maintenance denotes any changes made to a softwrae product after it has been delivered
to the customer. Maintenance is inevitable for almost any kind of product. It is practically
impossible to make the software Completely error free because the input domain of most software
products is very large and it is not practical to test the software exhaustively with respect to each
value that the input data may assume. Maintenance is also needed to enhance the features of the
software to add more functionality to it and to port to new platforms etc.
Types of Software Maintenance
Maintenance is fixing or enhancing an system. Many different types of maintenance must be
performed on the system to ensure it continues to operate as expected. These include:
•
Adaptive maintenance - making changes to increase system functionality to meet new
requirements.
•
Corrective maintenance - making changes to repair system defects and bugs observed
while the system is in use.
•
Perfective maintenance - making changes to enhance the system and improve such things
as processing performance and usability.
•
Preventive maintenance - making changes to reduce the chance of future system
failures.
48|P a g e
12. PROJECT LEGACY
It has been a great pleasure for me to work on this exciting and challenging project. This
project proved good for me as it provided practical knowledge of not only programming in
ASP.NET and VB.NET web based application and no some extent Windows Application and SQL
Server, but also about all handling procedure related with “PROJECT NAME”. It also provides
knowledge about the latest technology used in developing web enabled application and client
server technology that will be great demand in future. This will provide better opportunities and
guidance in future in developing projects independently.
BENEFITS:
The project is identified by the merits of the system offered to the user. The merits of this project
are as follows: It’s a web-enabled project.
This project offers user to enter the data through simple and interactive forms. This is very
helpful for the client to enter the desired information through so much simplicity.
The user is mainly more concerned about the validity of the data, whatever he is entering.
There are checks on every stages of any new creation, data entry or updation so that the user
cannot enter the invalid data, which can create problems at later date.
Sometimes the user finds in the later stages of using project that he needs to update some of
the information that he entered earlier. There are options for him by which he can update the
records. Moreover there is restriction for histhat he cannot change the primary data field.
This keeps the validity of the data to longer extent.
User is provided the option of monitoring the records he entered earlier. He can see the
desired records with the variety of options provided by him.
From every part of the project the user is provided with the links through framing so that he
can go from one option of the project to other as per the requirement. This is bound to be simple
and very friendly as per the user is concerned. That is, we can sat that the project is user friendly
which is one of the primary concerns of any good project.
Data storage and retrieval will become faster and easier to maintain because data is stored in
a systematic manner and in a single database.
50|P a g e
67|P a g e
Decision making process would be greatly enhanced because of faster processing of
information since data collection from information available on computer takes much less time
than manual system.
Allocating of sample results becomes much faster because at a time the user can see the records
of last years.
Easier and faster data transfer through latest technology associated with the computer and
communication.
Through these features it will increase the efficiency, accuracy and transparency,
LIMITATIONS:
The size of the database increases day-by-day, increasing the load on the database back up and
data maintenance activity.
Training for simple computer operations is necessary for the users working on the system.
13. BIBLIOGRAPHY
Websites:
• www.google.com
• www.guruman.com
• www.menfitness.com
52|P a g e
54|P a g e
69|P a g e
56|P a g e
Download