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