Академический Документы
Профессиональный Документы
Культура Документы
Submitted by: Sidra Mehfooz AsmaGhori Yasmin Khan 2009/COMP/BS (CS)/9999 2009/COMP/BS (IT)/10011 2009/COMP/BS (CS)/10007 2910101 2910113 2910109
December 2012
Submitted by: Sidra Mehfooz AsmaGhori Yasmin Khan 2009/COMP/BS (CS)/9999 2009/COMP/BS (IT)/10011 2009/COMP/BS (CS)/10007 2910101 2910113 2910109
Project Advisors Internal Advisor: External Advisor: Ms. Saboohi Naeem Mr. Uzair Hashmi
Project Title:
By: Sidra Mehfooz Asma Ghori Yasmin Khan 2009/COMP/BS (CS)/9999 2009/COMP/BS (IT)/10011 2009/COMP/BS (CS)/10007 2910101 2910113 2910109
Approval Committee:
___________________________
____________________________
Name: Ms. Saboohi Naeem Designation: Lecturer in CS & IT dept (Internal Advisor)
Name: Mr. Uzair Hashmi Designation: Data Analyst Organization Soft Fit Tech (External Advisor)
ABSTRACT
An online project management system is designed to help you keep your business more organized and have a better communication with your clients. So with this, you will start looking more professional and your work will reflect that. By incorporating project management tools you can get things done (GTD) with better quality. Web based project management system is an online project management that allows teams to collaborate and get the work done faster. Planning and Tracking helps you keep the project on schedule while collaboration improves the communication and overall productivity of your team. Help your team to stay focused, plan effectively and get the work done much faster with tasks and subtasks. Manage working hours of team members. Timesheets will help to maximize your productive hours and track time with ease. Gain deep insights about your project progress with project report in form of different charts. Track how much time is spent on what tasks and for which user.
TABLE OF CONTENTS
PROJECT APPROVAL ABSTRACT Bookmark not defined. TABLE OF CONTENTS LIST OF FIGURES LIST OF TABLES ACKNOWLEDGEMENT Chapter 1 INTRODUCTION iii vi vii ix Error! i Error!
Bookmark not defined. 1.1 Project Overview Bookmark not defined. 1.2 Proposed System Bookmark not defined. Chapter 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 PHP MySQL Apache WAMP Server Komodo Edit Html5 Zend FrameWork Adobe Photoshop CS3 Adobe Dreamweaver CS5 Microsoft Visio 2010 Ajax ANALYSIS Error! Error!
3 3 4 5 6 6 7 9 9 10 12 12 15 15 15 16 ii
3.2.2 Better Productivity 3.2.3 Minimization Of Risk 3.2.4 Accomplishing Predertermined Goals 3.2.5 Unique Database 3.3 General Requirements Of PMS 3.3.1 Registration of Users 3.3.2 Project Management 3.3.3 Generation Of Graphical Reports 3.3.4 Business Requirement s 3.3.5 User Friendly 3.3.6 Security Error! Bookmark not defined. Chapter 4 4.1 4.2 SOFTWARE REQUIREMENT SPECIFICATION
16 16 16 17 17 17 17 18 18 18
19 19 19 19 20 21 22 22 22 23 23 23 23 23 24 24 24 24 25 25 25 25 26
4.3
4.4
Purpose Project Scope And Product Features 4.2.1 Administrator Features 4.2.2 Manager Features 4.2.3 Leader Features 4.2.3 MemberFeatures Overall Description 4.3.1 Project Perspective 4.3.2 User Classes and Characteristics 4.3.3 Operating Environment 4.3.4 Design and Implementation Constraints 4.3.5 User Documentation 4.3.6 Assumptions and Dependencies System Requirements 4.4.1 Software Requirement 4.4.2 Hardware Requirement System Design Constraints Performance Requirements Security Requirements External Interface Requirements 4.8.1 User Interface Software Quality Attributes SYSTEM DESIGN
Chapter 5
Error! Bookmark not defined. 5.1 Spiral Model 5.2 Database ERROR! BOOKMARK NOT DEFINED. 5.2.1 ER- Diagram iii 28 Design 28
5.2.2 Relational- Model Activity Diagrams Usecase Diagrams Architecture Diagram Sequence Diagrams SYSTEM IMPLEMENTATION
29 30 34 38 39 40 40 41 41 41 41 42 42 42 42 43 43 43 43 43 44 44 45 58 61 62 64 68 75 75 76 Error! 84 87 iv
Chapter 6 6.1
6.2
PMS Directory Structure 6.1.1 Config.php 6.1.2 DbOperations.php 6.1.3 Dbconnection.php Session Management SYSTEM TESTING
7.6 7.7
Software Testing: Types of Software Testing Processes: Testing Objectives Testing Strategy Types of Testing 7.5.1 White-Box Testing 7.5.2 Black-Box Testing 7.5.3 Unit Testing 7.5.4 Integration Testing 7.5.5 Function Testing Test Cases Validation Log Abbreviations Glossary Data Dictionary Snap Shots Code
LIST OF FIGURES
Figure 2.1: Ajax Cycle ..................................................................................................... 14 Figure 5.1: Spiral Model .................................................................................................. 27 Figure 5.2: ER- Diagram ................................................................................................. 28 Figure 5.3: Relational Model ........................................................................................... 29 Figure 5.4: Activity Diagram of User .............................................................................. 30 Figure 5.5: Activity Diagram for project creation mechanism ........................................ 31 Figure 5.6: Activity Diagram of user Account verification ............................................. 32 Figure 5.7: Activity Diagram of blocking user Account ................................................. 33 Figure 5.8: Admin Use case Diagram .............................................................................. 34 Figure 5.9: Manager Use case Diagram........................................................................... 35 Figure 5.10: Leader Use case Diagram ............................................................................ 36 Figure 5.11: Member Use case Diagram ......................................................................... 37 Figure 5.12: Architecture Diagram .................................................................................. 38 Figure 5.13: Sequence Diagram....................................................................................... 39
vi
LIST OF TABLES
Table 7.1; Title of home page check ................................................................................ 45 Table 7.2: Login Test Success ......................................................................................... 45 Table 7.3; Login Test Failure ........................................................................................... 46 Table 7.4: Login Test Failure ........................................................................................... 46 Table 7.5; Login Test Failure ........................................................................................... 47 Table 7.6: Title of Administrator home page check. ....................................................... 47 Table 7.7: Verify Activate User link check ..................................................................... 48 Table 7.8; Title of Activate User page check................................................................... 48 Table 7.9: Verify Button check ........................................................................................ 49 Table 7.10: Unverified User account login check............................................................ 49 Table 7.11: Verified User account login check................................................................ 50 Table 7.12: Bock Account link check .............................................................................. 50 Table 7.13:Title of the Deactivate User page check . ...................................................... 51 Table 7.14: Block button check ....................................................................................... 51 Table 7.15: Blocked User account login check................................................................ 52 Table 7.16: Verify Users List link check. ....................................................................... 52 Table 7.17: Title of the User list page check. .................................................................. 53 Table 7.18: Verify User List link check .................................................................................. 53 Table 7.19: Title of the Delete User List Page check. ..................................................... 54 Table 7.20: Verify delete button check. ........................................................................... 54 Table 7.21: No link check ................................................................................................ 55 Table 7.22: Yes link check ............................................................................................... 55 Table 7.23: Title of the Change Password page check. ................................................... 56 Table 7.24: Verify Change Password link check. ............................................................ 56 Table 7.25: Title of the Confirm Delete page check. ....................................................... 57 Table 7.26: Verify Edit User link check. ......................................................................... 57 Table 7.24: Validation Log .......................................................................................... 58
vii
ACKNOWLEDGEMENT
On successful completion of the project, we would like to take the opportunity to acknowledge the contributions of a number of people who helped in making this project a reality. Foremost, to Almighty who blessed me the with strength and ability to complete the project, Further I wish to express my gratitude and appreciation to Jinnah University for Women and my great worthy teachers, who taught us in the most structured way. I would like to appreciate the valuable contribution of our advisor, Mr. Uzair who instilled in us the knowledge and concepts throughout the period and for his useful guidance and expertise which helped us put our best foot forward. I am also thankful to the people who helped during the report, for sharing valuable time.
viii
Chapter 1: Introduction
Chapter 1
INTRODUCTION
1.1
PROJECT
OVERVIEW
A Project Management System (PMS) is a web based solution for the project manger to deliver the project successfully. User can easily create their projects, schedule and monitor them. The main purpose for planning a project is for cost expediency. Proper project planning will insure that the amount of work to be accomplished, time allotted to satisfactory complete the work. Proper planning allows for the assessment of the impact of change prior to implementing the change. One of the most common purposes is to schedule a series of tasks for completion of a project and the schedule can vary considerably depending on how much time is allotted for a project completion. It is a perfect mix of project management with collaboration. Plan, track and collaborate on projects. Keep everyone in the loop. A centralized place where project reports are stored, which will give idea of faster completion of project on time.
Through the development of PMS following targets are intended to be achieved: You can easily see where your projects stand. Whenever changes in the plan are made, they are instantly visible to all team members. To organize tasks and track project status, allocate responsibilities, and plan project progress. It makes the working level more and more efficient and reliable. Projects can spend less time for completion. The main objective of this solution is to make easy the project management and scheduling process of any organization. Projects can spend less time for completion. Project management, prior to launching a project, identifies the irrelevant costs, reduces wastage of resources and thus ensures cost-effectiveness in the longer run. Project management keeps the quality of products in constant check, thus ensuring better productivity in terms of quality and quantity. The project is developed using HTML5, JavaScript CSS, PHP, MySQL, Photoshop, Zend IDE for php professionals and SQLyog Enterprise. 1
Chapter 1: Introduction
1.2
PROPOSED SYSTEM
Four types of users are involved in the PMS:
1. Project Manager: Only Manager can create projects, Create team, Select leader of that team, Select members in that team, Assign Major tasks to leader of that team, Edit projects, Delete project, edit project tasks, delete tasks, View projects statistical & graphical reports, and view user list with respect to team. Managers can also their password. 2. Team Leader: Leader view assigned tasks on their dashboard that has been assigned by manager. Assign sub tasks to members, Delete subtask, edit subtask information, view user list of his team, View subtasks statistical & graphical reports and leader can also change their password. 3. Member: View current assigned subtasks on their dashboard that has been assigned by leader. User cannot edit subtask information nor delete it. Users add subtask progress. User can also view individual subtask progress on their dashboard 4. Admin: Admin approve login request activate deactivate users., view user list, edit users information and delete users, 5. Guest - Any user or actor of a system for which he/she does not have to login for using it. This type of user has the least rights to use the system. Each person on the project plan has their own task lists, calendars functionality associated with their projects. Each user can be granted different privileges to access only the areas of the program specified and may also have "Read Only" or "Read Write" access. Leader can assign subtasks for a completion of a single task. Manager can view the actual project progress against planned. Assign people to tasks faster than before and view reports of project progress in form of graphs.
Chapter 2
2.1 PHP
Stand for Hypertext Preprocessor. PHP is a server side scripting language; server side scripting language is one, which has the capability of executing the script on the server and serving the output as a HTML File, server side script has the main advantage of interacting with the databases and to perform all types of server manipulations directly. Server side scripting language is responsible for manipulating the data which is filled in the entire web forms, anywhere in the net. [3]. It is one of the first developed server-side scripting languages to be embedded into an HTML source document rather than calling an external file to process data. The code is interpreted by a Web server with a PHP processor module which generates the resulting Web page. It also has evolved to include a command-line interface capability and can be used in standalone graphical applications.[2] PHP can be deployed on most Web servers and also as a standalone shell on almost every operating system and platform, free of charge.[3] A competitor to Microsoft's Active Server Pages (ASP) server-side script engine[4] and similar languages, PHP is installed on more than 20 million Web sites and 1 million Web servers.[5] Software that uses PHP includes Drupal, Joomla, MediaWiki, and WordPress.
PHP was originally created by Rasmus Lerdorf in 1995. The main implementation of PHP is now produced by The PHP Group and serves as the formal reference to the PHP language. [6] PHP is free software released under the PHP License, which is incompatible with the GNU General Public License (GPL) due to restrictions on the usage of the term PHP. [7]
2.2 MYSQL
The MySQL database is an open source database and is highly popular because of its high performance, high reliability and ease of use. It is also the database of choice for a new generation of applications built on the LAMP stack (Linux, Apache, MySQL, PHP / Perl / Python.) MySQL runs on more than 20 platforms including Linux, Windows, Mac OS, Solaris, HP-UX, IBM AIX, giving you the kind of flexibility that puts you in control. Whether you're new to database technology or an experienced developer or DBA, MySQL offers a comprehensive range of database tools, support, training and consulting services to make you successful. [4]
Structured Query Language (SQL) is a specialized language for updating, deleting, and requesting information from databases. SQL is an ANSI and ISO standard, and is the de facto standard database query language. A variety of established database products support SQL, including products from Oracle and Microsoft SQL Server. It is widely used in both industry and academia, often for enormous, complex databases. In a distributed database system, a program often referred to as the database's "back end" runs constantly on a server, interpreting data files on the server as a standard relational database. Programs on client computers allow users to manipulate that data, using tables, columns, rows, and fields. To do this, client programs send SQL statements to the server. The server then processes these statements and returns replies to the client program.
The origins of the SQL take us back to the 1970s, when in the IBM laboratories, new database software was created - System R. And to manage the data stored in System R, the SQL language was created. At first it was called SEQUEL, a name which is still used as an alternative pronunciation for SQL, but was later renamed to just SQL. In 1979, a company called Relational Software, which later became Oracle, saw the commercial potential of SQL and released its own modified version, named Oracle V2. Now into its third decade of existence, SQL offers great flexibility to users by supporting distributed databases, i.e. databases that can be run on several computer networks at a time. Certified by ANSI and ISO, SQL has become a database query language standard, lying in the basis of a variety of well established database applications on the Internet 4
today. It serves both industry-level and academic needs and is used on both individual computers and corporate servers. With the progress in database technology SQL-based applications have become increasingly affordable for the regular user. This is due to the introduction of various open-source SQL database solutions such as MySQL, PostgreSQL, SQLite, Firebird, and many more. [7]
2.3
APACHE
Web applications with Apache, PHP and the MySQL database. It also comes with
PHPMyAdmin to easily manage your databases. It is an open source tool for database development. [5] The Apache HTTP Server, commonly referred to as Apache is web server software notable for playing a key role in the initial growth of the World Wide Web. The application is available for a wide variety of operating systems, including Unix, GNU, FreeBSD, Linux, Solaris, Novell NetWare, AmigaOS, Mac OS X, Microsoft Windows, OS/2, TPF, and eComStation. Released under the Apache License, Apache is opensource software. Apache supports a variety of server-side programming languages. Some common language interfaces support Perl, Python, Tcl, and PHP. Virtual hosting allows one Apache installation to serve many different actual websites. For example, one machine with one Apache installation could simultaneously serve www.example.com, www.example.org, test47.test-server.example.edu, etc. Apache features configurable error messages, DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs). It supports password authentication and digital certificate authentication. Apache has a built in search engine and an HTML authorizing tool and supports FTP. [11]
Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. These can range from server-side programming language support to authentication schemes. Some common language interfaces support Perl, Python, Tcl, and PHP. Popular authentication modules include mod_access, mod_auth, mod_digest, and mod_auth_digest, the successor to mod_digest. A sample of other 5
features include Secure Sockets Layer and Transport Layer Security support (mod_ssl), a proxy module (mod_proxy), a URL rewriter (mod_rewrite), custom log files (mod_log_config), and filtering support (mod_include and mod_ext_filter).
Popular compression methods on Apache include the external extension module, mod_gzip, implemented to help with reduction of the size (weight) of web pages served over HTTP. ModSecurity is an open source intrusion detection and prevention engine for web applications. Apache logs can be analyzed through a web browser using free scripts such as AWStats/W3Perl or Visitors. [11]
2.4
WAMP SERVER
WAMP Server is a Windows web development environment. It allows you to
create web applications with Apache, PHP and the MySQL database. It also comes with PHPMyAdmin to easily manage your databases. It is an open source tool for database development. [5] WAMPs are packages of independently-created programs installed on computers that use a Microsoft Windows operating system. WAMP is an acronym formed from the initials of the operating system Microsoft Windows and the principal components of the package: Apache, MySQL and one of PHP, Perl or Python. Apache is a web server. MySQL is an open-source database. PHP is a scripting language that can manipulate information held in a database and generate web pages dynamically each time content is requested by a browser. Other programs may also be included in a package, such as phpMyAdmin which provides a graphical user interface for the MySQL database manager, or the alternative scripting languages Python or Perl. On the other hand we have LAMP which is same as WAMP but for Linux operating system and MAMP for MAC. [6]
2.5
KOMODO EDIT
Komodo Edit from ActiveState is a free, open source, multi-platform, multi-
language editor (PHP, Python, Ruby, Perl and Tcl, JavaScript, CSS, HTML and template
languages like RHTML, Template-Toolkit, and HTML-Smarty). Background syntax checking and syntax coloring catch errors immediately, while auto complete and call tips guide you as you write. Available on Windows, Mac OS X and Linux. Other features include Vi emulation, Emacs key bindings, code folding and code snippets. [6] Komodo Edit is a fast, smart, free and open-source code editor. Komodo Edit is a free text editor for dynamic programming languages. It was introduced in January 2007 to complement Active State's commercial Komodo IDE product. With the release of version 4.3, Komodo Edit is built on top of the Open Komodo project. Many of Komodo's features are derived from an embedded Python interpreter [2] Open Komodo uses the Mozilla code base, along with Scintilla, and the two products share many features and support the same languages (including Python, Perl, PHP, Ruby, Tcl, SQL, Smarty, CSS, HTML and XML) and computer platforms (Linux, Mac OS X, and Windows). The editor component is implemented using the NPAPI, with the Scintilla view embedded in the XUL interface in the same manner as a web browser plugin. Both Komodo Edit and Komodo IDE support user customization through plug-in and macros. Komodo plug-ins are based on Mozilla Add-ons and extensions can be searched for, downloaded, configured, installed and updated from within the application. Available extensions include a functions list, pipe features, additional language support and user interface enhancements. [6]
Komodo IDE has features found in an IDE, such as integrated debugger support, DOM viewer, interactive shells, and source code control integration, as well as the ability to select the engine used to run regular expressions, in order to ensure compatibility with the final deployment target. The commercial version also adds code browsing, a database explorer and support for many popular source code control systems.Independent implementations of some of these features, such as the database editor and remote FTP file access, are available in the free version through the plugin system. [3]
2.6 HTML5
HTML5 is a markup language for structuring and presenting content for the World Wide Web, and is a core technology of the Internet originally proposed by Opera 7
Software. It is the fifth revision of the HTML standard (created in 1990 and standardized as HTML4 as of 1997) and, as of August 2012, is still under development. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers, etc.). [4] For the same reasons, HTML5 is also applications. Many features of HTML5 have been built with the consideration of being able to run on low-powered devices such as smart phones and tablets. [7] HTML5 is a markup language for structuring and presenting content for the World Wide Web and a core technology of the Internet. It is the fifth revision of the HTML standard (created in 1990 and standardized as HTML4 as of 1997)[2] and, as of December 2012, is a W3C Candidate Recommendation. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers, etc.). HTML5 is intended to subsume not only HTML 4, but XHTML 1 and DOM Level 2 HTML as well. [2] Following its immediate predecessors HTML 4.01 and XHTML 1.1, HTML5 is a response to the observation that the HTML and XHTML in common use on the World Wide Web are a mixture of features introduced by various specifications, along with those introduced by software products such as web browsers, those established by common practice, and the many syntax errors in existing web documents.[3] It is also an attempt to define a single markup language that can be written in either HTML or XHTML syntax. It includes detailed processing models to encourage more interoperable implementations; it extends, improves and rationalizes the markup available for documents, and introduces markup and application programming interfaces (APIs) for complex web applications.[4] For the same reasons, HTML5 is also a potential candidate for cross-platform mobile applications. Many features of HTML5 have been built with the consideration of being able to run on low-powered devices such as smart phones and tablets. In December 2011 research firm Strategy Analytics forecast sales of HTML5 compatible phones will top 1 billion in 2013[2]
Zend_Acl provides lightweight and flexible access control list (ACL) functionality and privileges management includes basic implementations for roles and resources, role and resource objects may be instances of user-defined classes, resource tree supports rule inheritance supports multiple inheritance of access control rules among roles supports conditional rule applicability via an assertion interface. [7]
2.8
and published by Adobe Systems. It is the current market leader for commercial bitmap and image manipulation software, and is the flagship product of Adobe Systems. [9] It is a graphics editing application popular for its extensive amount of features. Photoshop is also, currently, the leading graphics editing application. Photo shop is also image creation software as well as an editor. Photo shop can create any effect or style needed in a drawing or painting or layout. There are graphic software that can do specialized work faster and more efficient than Photo shop (such as painter for realistic paint effects), but Photo shop can do it all in one program.
The basics of Photo shop are easy to learn, even the CS versions. They are very intuitive, and there are several ways to do almost everything to work with an individual's style of drawing and skill level yet you can spend years learning all the pro level features. Photo shop works by altering individual pixels in an image as opposed to a vector drawing program that draws with points, lines and objects mathematically. Photo shop is best with images that have complex textures, blends and photo realism, but Photo shop is also very good at vector drawing as long as the image doesn't need to be scaled and you don't need specialized CAD drawing tools. [9]
Photoshop was released as a commercial graphic editing program in 1990. Since its first release, it has become more and more complex. Every new version comes with new powerful features. The current version of Photoshop - CS4, is much more than an editing program for your digital images. It supports a huge number of tools for creating graphics for your website. With Photoshop, web designers can easily create a website's layout using a set of vector based tools - different shapes, styles, gradients and masks are available. Once the website design is finished, Photoshop allows you to slice up your image for use in your website. Also, you can 'Save for web' all your .PSD projects in various web optimized formats including the popular .JPG and .GIF. [9]
10
editors, edits files locally then uploads them to the remote web server using FTP, SFTP, or WebDAV. [8]
Adobe's Dreamweaver is far more than a simple HTML editor. With its support for a great number of scripting languages (PHP, ASP, CSS and more), Dreamweaver is the most powerful, most fully featured web developer tool. Available for both Mac and Windows operating systems, this cross platform development tool allows users to preview websites in their web browsers. It combines a great WYSIWYG editor, an FTP client, and a convenient scripting environment, which supports advanced auto complete and script formatting options. Also, the latest CS4 version features a Live View mode which allows the designers and the developers to view their changes in real time - whenever they make a change to their website's code, the Live View will give an instant feedback to their changes. This is a great time-saving feature, which can help the professionals avoid errors and which allows them to easily experiment with different sets of code. [8]
Dreamweaver is an industry standard for a web development environment. It allows any type of users, from beginners to professionals, from designers to developers, to easily and conveniently create simple or complex dynamic websites.
The skilled professionals usually use the Script Mode of the Dreamweaver. That way they can access the code and take advantage of the auto complete, error checking and script formatting features. For the users with zero knowledge of HTML, the Design View mode provides an advanced WYSIWYG editor which can generate all the HTML code.
For the designers and the developers with more advanced skills there is a Split View functionality, which allows them to edit the code directly in the scripting window and to see the changes in the WYSIWYG editor in Design View mode without the need to switch between the two. [8]
11
2.11 AJAX
AJAX is an Asynchronous JavaScript and XML.AJAX is not a new programming language but a new way to use existing standards. AJAX is the art of exchanging data with a server, and updating parts of a web page - without reloading the whole page. AJAX is a technique for creating fast and dynamic web pages. [4]
AJAX allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes. This means that it is possible to update parts of a
12
web page, without reloading the whole page. Classic web pages, (which do not use AJAX) must reload the entire page if the content should change. Examples of applications using AJAX: Google Maps, Gmail, YouTube, and Facebook tabs. [4]
Ajax is not a single technology, but a group of technologies. HTML and CSS can be used in combination to mark up and style information. The DOM is accessed with JavaScript to dynamically display, and to allow the user to interact with the information presented. JavaScript and the XMLHttpRequest object provide a method for exchanging data asynchronously between browser and server to avoid full page reloads.
Ajax is a technique whereby a website can update part of a page without refreshing the whole content. This saves bandwidth and provides for a more interactive user experience. In other words, changes that a user makes appear quicker on the screen and the website seem to respond much faster. The improved action increases the interactivity of websites and makes the user experience much more enjoyable. It should be noted that Ajax is not a technology in its own right; rather, it is a technique that utilizes other technologies. Ajax is considered one of the core techniques behind Web 2.0 applications.
The main components behind Ajax are XHTML, the DOM model, JavaScript, XML, and CSS. Websites coded in XHTML have very accessible Document Object Models, by definition. JavaScript can be used to interact with the DOM, and to manipulate it. As the JavaScript can also make HTTP requests, it is a convenient bridge for requesting new data from the webserver, and for replacing part of the webpage with the new content. Usually, the new content is transferred in XML, as XML is relatively easy to parse. Finally, CSS is used to define page markup. Note that the webserver in question must be running a programming language capable of serving XML requests to Ajax applications, such as PHP or Perl. [3]
While the use of Ajax generally makes web surfing more enjoyable for the user, the programmer must be careful not to break accepted website behavior with Ajax. A common problem with Ajax applications is the disability of the web browser's Back 13
button. In a normal non-Ajax application, every webpage has a unique URL. Thus, a user can hit the Back button to take him back to the previous URL, which would be the state that the browser was in before the user's last action. This can be seen as a sort of Undo operation. However, with Ajax the URL of the webpage does not change every time the state of the web application changes. Therefore a press of the back button will bring the user to a state much further back than he might have intended. Also, page bookmarking is dependent upon the URL of the page in question. Therefore, pages created by Ajax will not be bookmarkable. Professional programmers have in fact developed techniques to circumvent these issues; however, they are far from perfect. [6]
14
Chapter 3: Analysis
CHAPTER 3
ANALYSIS
3.1
ANALYSIS OF A PMS
Project Management System (PMS) is web based tool. The intention of project management is making the working level more and more efficient and reliable. Projects can spend less time for completion. It is used at every project level to organize tasks and track project status, allocate responsibilities, and plan project progress. Especially in the fast growing IT market technologies are changing fast, depending upon the fast growing technologies trend Organizations has to manage their projects. This process will make project management process very easy and fast. The main objective of this solution is to make easy the project management and scheduling process of any organization.
3. 2 IMPORTANCE OF PMS
The number of people and organization start using Project Management System is growing every day. It is surely not without a reason that the popularity of PMS is rising. Their numerous benefits and easy access help people in utilizing their advantages. All organizations use projects as the way to translate strategies into actions and objectives into realities. Many companies are project-intensive they live and breathe project management because they are in that kind of business, such as construction, aerospace, engineering design, engineer-procure-construct (EPC), general contractors, consulting, software, and so on. For them, organizing around projects is a natural way of life as almost all senior staff have "come up through the ranks", and top management understands what it takes to be successful in project work. On the other hand are less project-intensive organizations such as food, retailing and textiles. But even such companies have projects, e.g., setting up a new distribution depot or a new plant. Even in public sector, it is effective project management that translates politicians' visions of new roads, schools and hospitals into gleaming new constructions that improve everyday life. The various benefits of Project Management System (PMS) are:
15
Chapter 3: Analysis
3.2.1 COST-EFFECTIVENESS
Project management provides a roadmap for the journey of success. It is the greatest resource that allows the manager to understand the available resources and the methods to use them with the demands. Thus, with a plan in hand, it is easy to utilize the resources in the optimum possible way. Project management, prior to launching a project, identifies the irrelevant costs, reduces wastage of resources and thus ensures cost-effectiveness in the longer run.
16
Chapter 3: Analysis
Project management goes through five stages which are; initiation, planning and design, executing, monitoring and controlling, closing and project control systems. After the allocation of the task, the project manager is responsible for drawing out a project management plan in the aforementioned order. He must also hire a team for delegation of work and to supervise the work thereafter. Project management is a branch of management which uses various management tools such as budgeting, allocating and optimization to fulfill a defined goal for a shorter period of time. The importance of project management in organizations is seen through quality of products, customer satisfaction, employee satisfaction, efficiency in business, mitigation of risks involved and a successful business in totality. The positive nature of all these factors of an organization explains why project management is important. Management of any kind always helps in painting a clear picture of what is available, what is required and what is the way to get there, and a true leader will always know it.
3.3
3.3.1
System supports a facility of registering users. The forms are in the format which the users have to submit in the prescribed formats
3.3.2
PROJECT MANAGEMENT
Manager can schedule and monitor project progress. Create projects. Assign tasks to leader .Manager can also create his team. So it reduces the chance of a project failing, ensure a minimum level of quality and that results meet requirements and expectations. 17
Chapter 3: Analysis
3.3.3
By the time of project creation actual date is allotted for project completion. This will enables the user to get the progress of project any time which is observed by the report. Reports of a project progress are viewed in form of graph with the difference of expected and actual result for completion of project.PMS will allow Manager and leader to generate reports of overall project based on the progress of tasks and subtasks. Manager and leader can also view individual task and individual subtask progress.
3.3.4
BUSINESS REQUIREMENTS
The main objective of the PMS is to provide cost and time effective solutions for organizations in maintaining and scheduling their projects. Project management is mainly targeted for achieving predetermined targets in a structured way.
3.3.5
USER FRIENDLY
The solution provides very simple and modified features, which are very easy to view and operate various features. The said project is designed and organized in very simplified manner to suit the current requirements of the organization and peoples.
3.3.6
SECURITY
The Project Management System deals with a lot of proprietary information for its users, which are confidential. It is therefore imperative to provide a means though which information can be kept confidential. This is also ensures that the data that is put into the system maintains its integrity because malicious or unauthorized individual will not have access to alter them. The security is maintained at different levels.
18
Chapter 4
SOFTWARE REQUIREMENT SPECIFICATION
4.1 PURPOSE
The main purpose for planning a project is for cost expediency. Proper project planning will insure that the amount of work to be accomplished, the time allotted to satisfactory complete the work scope, and the resources required to complete the work scope are equally balanced. Proper planning allows for the assessment of the impact of change prior to implementing the change. One of the most common purposes is to schedule a series of events or tasks and the complexity of the schedule can vary considerably depending on how the tool is used.
4.2
19
5. Block Users PMS Administrator can block Manager, Leaders and Members accounts after which they cannot be login to PMS. 6. Delete Users. PMS Administrator can delete users. 7. Edit User Information PMS Administrator can edit user information 5. Receive Messages from users. PMS Administrator can receive complains and messages about account related problems from the Users through messaging system.
20
Manager can view calendar 9. View Project progress Manager can also view progress of project any time which is observed by the graphical report 10. Change Password. Manager can also change password. 11. Complain box. Manager can also send messages to leader, member and admin about job seeker.
4.2.3
LEADER FEATURES
1. Online registration for Leader account. Manual Verification Leader can register online to PMS afterwards PMS administrator can verify the leader account. 2. Login. Leader that has been verified and has not been blocked by the administrator can login to PMS Portal. 3. Dashboard. Leader will also have his/her own dashboard which can be used after logging in. Assigned tasks are visible on leader dashboard that has been assigned by manager 4. Assign Subtask Leader can assign subtask to members in his team 5. Delete subtask Leader can delete subtask. 6. Edit Subtask Leader can edit assigned subtask information. 7. View Calendar Leader can view calendar. 8. View Subtasks progress Leader can also view progress of subtasks any time which is observed by the graphical report. 9. Change Password. Leader can also change password. 10. Complain box. 21
Leader can also send messages to leader, member and admin about job seeker.
4.2.4
MEMBER FEATURES
1. Online registration for a Member account. Manual Verification Member can register online to PMS afterwards PMS administrator can verify the Member account. 2. Login. Manager that has been verified and has not been blocked by the administrator can login to PMS Portal. 3. Dashboard. Member will also have his/her own dashboard which can be used after logging in. Assigned subtasks are visible on members dashboard that has been assigned by leader 4. Add Progress of Individual Subtask Member can add progress of subtask 5. View Calendar Leader can view calendar. 6. Change Password. Leader can also change password. 7. Complain box. Leader can also send messages to leader, member and admin about job seeker.
The following components are needed for web server: Web server like WampServer Web services programming support like PHP Database support like Mysql AT enabled Phone or GSM modem (USB/Serial port support)
26
Chapter 5
SYSTEM DESIGN
5.1 SPIRAL MODEL
The spiral model is selected for the project design it will help to make project that fulfill user needs.
Analysis
Spiral Model
Implement ation
Testing
27
Messages Projects Project_Id Project_Name Description Start_Date User_Id End_Date Start_Time End_Time Cntrl _No Date_sent To_Receiver From_Sender Opened Mail_subject Messages
Task Sent Cntrl _No Date_sent To_Receiver From_Sender Opened Mail_subject Messages
Figure 5.2 ER- Diagram
28
User
Sub Task Sub_Task_Id Task_Id Sub_Task_Name User_Ids Description Start_Date End_Date Start_Time End_Time Status
Projects Project_Id Project_Name User_Id Description Start_Date End_Date Start_Time End_Time Sent Cntrl _No Date_sent To_Receiver From_Sender Opened Mail_subject Messages
Task Task_Id Task_Name Team_Id Project_Id User_Id Description Start_Date End_Date Start_Time End_Time
29
Register
Login
Dashboard
View task
Create project
View subtask
Assign subtask
Create team
Add completion
Assign members
View completion
Assign task
View progress
30
Login
Dashboard
Create project
Create team
Assign members
Assign tasks
Edit task
Delete task
View progress
31
Login
Dashboard
User List
User Activated
32
Login
Dashboard
User List
User blocked
33
34
35
36
37
5.5
ARCHITECTURE DIAGRAM
An architectural model (in software) is a rich and rigorous diagram, created using available standards, in which the primary concern is to illustrate a specific set of tradeoffs inherent in the structure and design of a system or ecosystem. Software architects use architectural models to communicate with others and seek peer feedback.
Business Layer
Data Access
Registration UI
Register Data
Login UI
Login
Project
Dashboard UI
Display dashboard
Project UI
Task
Make Changes
Subtask UI
38
5.6
SEQUENCE DIAGRAM
Sign up
Login
Dashboard
Create project
Create team
Create task
Create subtask
Edit
Delete
Calender
Graph
Delete project
Create team
Create task
Edit task
Delete task
Create subtask
Edit subtask
Delete subtask
Calender
Graph
39
Chapter 6
SYSTEM IMPLEMENTATION
6.1 PMS DIRECTORY STRUCTURE
Pms are implemented with the help of the following directory structure. In the www directory a folder is made namely PmsPortal. In PmsPortal eight folders have been made. The .settings folder where all php files are residing and the images folder which contain all images for PmsPortal js folder which contains files with .js extension css folder which contains files with .css extension manager folder which contain all php files for manager role leader folder contain all php files of leader role admin folder which contain all php files for admin role member folder which contain all php files for member role the db folder where the database file of PMS residing and another folder namely includes is residing in which files which are to be included in every page are kept Following is the at a glance view of the directory structure of JRP:
www
PmsPortal application (All php files for user regarding to portal) images (Pms portal banners, images and logos) .settings (php files) js includes admin member manager leader
40
6.1.1 CONFIG.PHP
A config.php file kept in includes folder contains username, password, server name, database name and $domain variable which is made to avoid always writing the path http://localhost:8888/PmsPortal/Application. So where ever the path is needed instead of writing the whole URL just a variable is concatenated. $domain variable also helps to avoid correcting always the path in the browser to http://localhost:8888/PmsPortal.
6.1.2 DBOPERATIONS.PHP
Config.php file is included in dbOperations.php file which contains connection to the database and connection to the server, and sets all config.php file variables to global.
6.1.3
DB CONNECTION
Db connection query is also included in Config.php file which contains connection to the database and variables to global. connection to the server, and sets all config.php file
6.2
SESSION MANAGEMENT
Session is started in config.php file using session_start() function and as config.php file is included in dbOperations.php file which is included in every file of pms, session is easily managed by using $_SESSION[] arrays.
41
Chapter 7
SYSTEM TESTING
The purpose of this chapter is to identify some basic types of testing to provide evidence PMS Admin module by doing the functional testing of the system
7.1
SOFTWARE TESTING:
Software testing can be stated as the process of validating and verifying that a
software program/application/product: 1. 2. 3. Meets the requirements that guided its design and development; Works as expected; and Can be implemented with the same characteristics. [12] .
7.2
and executed, whereas inaccurate inputs are thrown out. Software testing also verifies that results are generated efficiently and large volume of data is handled without any hiccups. It can be carried out electronically or manually. Automatic software testing uses specialized software for testing the code which is under development. When applied judiciously, such testing always benefits the process of software development. [13]
7.3
1.
TESTING OBJECTIVES
The objective of software testing is to check: Whether the application is working as expected without any errors or bugs (Functionality).
2.
Whether the performance of the application is as expected and meets the need.
42
7.4
TESTING STRATEGY
When an organization tests its products or its tools, it tries to compare them
against its expectations and values. By its nature, testing introduces change as problems are identified and resolved. A test strategy is necessary to allow these two impulses to work together. Furthermore, testing can never be said to be 'complete', and a core skill in testing is the justified management of conflicting demands; without a strategy, these judgments will be inconsistent to the point of failure. The test strategy describes how the product risks of the stakeholders are mitigated at the test-level, which types of test are to be performed, and which entry and exit criteria apply. [14]
7.5
TYPES OF TESTING
There are several types of Software testing from which some are discussed below:
part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers during the development process. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended. [17]
44
7.6
TEST CASES
Feature to Test: To check whether the title of the home page is Project Management System. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal. Check the title of home page. The title of the page should be Project Management System Table 7.1 Title of home page check Expected Result
Feature to Test: To check whether administrator can login with correct email Address and password. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button The home page of the administrator module should open and display the current user request in activity field Table 7.2 Login Test Success Expected Result
45
Feature to Test: To check whether administrator can login with incorrect email address and password. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter incorrect Administrator Email address talha@gmail.com and Password Juw123 in text fields. Press login button An error message should be displayed on login page that User doesnt exists Table 7.3 Login Test Failure Expected Result
Feature to Test: To check whether administrator can login with correct email address and incorrect password. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and incorrect Password Juw123 in text fields. Press login button An error message should be displayed on login page that Incorrect Password Table 7.4 Login Test Failure Expected Result
46
Feature to Test: To check whether administrator can login with Incorrect email address and correct password. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha@gmail.com and incorrect Password Jw123 in text fields. Press login button An error message should be displayed on login page that User doesnt exists Table 7.5 Login Test Failure Expected Result
Feature to Test: To check whether the title of the administrator home page is Home (Admin). Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button The title of the page should be Expected Result
Home (Admin).
Table 7.6 Title of Administrator home page check
47
Feature to Test: To check whether Activate User feature works properly. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal Enter correct Administrator Username talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Activate User link from menu bar Activate User page should be opened showing links of each user name who has applied for registration. Table 7.7 Verify Activate User link check Expected Result
3 4
Feature to Test: To check whether the title of the activate user page should be Activate Users. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal Enter correct Administrator Username talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Activate User link from menu bar Check the title of the Activate User page. The title of the page is Activate User. Expected Result
3 4 5
48
Feature to Test: To check whether Verify User feature works properly. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal Enter correct Administrator Username talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Activate User link from menu bar Click on Verify Button in front of Sadiajuw user The Sadiajuw should verified, should not displayed in the list. be be Expected Result
3 4 6.
Feature to Test: To check whether Unverified User can login using correct username or password. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal . Enter correct Email Address Sadiajuw@gmail.com and Password Juw71687+ in text fields. Press login button The user should be redirected to the dashboard where an error message Your account has not been verified by the administrator. should be displayed. Table 7.10 Unverified User account login check Expected Result
49
Feature to Test: To check whether Verified User can login using correct username or password. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal. Enter correct Email Address Sadiajuw@gmail.com and Password Juw71687+ in text fields. Press login button The user should be redirected to the dashboard and log out link should also appear at the top corner of the dashboard Table 7.11 Verified User account login check Expected Result
Feature to Test: To check the Block user feature works properly. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal Enter correct Administrator Username talha123@gmail.com and Password Jw123 in text fields. Press login button Click on deactivate User link from menu bar Deactivate User page should be opened showing names of all user with a Block link in front of each. Table 7.12 Block Account link check Expected Result
3 4
50
Feature to Test: To check whether the title of the Deactivate user page is Deactivate User Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal Enter correct Administrator Username talha123@gmail.com and Password Jw123 in text fields. Press login button Click on deactivate User link from menu bar Check the Expected Result
3 4 5
The title of the page should be Deactivate User. Table 7.13 Title of the Deactivate User Page check.
Feature to Test: To check whether Verify User feature works properly. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal Enter correct Administrator Username talha123@gmail.com and Password Jw123 in text fields. Press login button Click on deactivate User link from menu bar Click on block link at the end of Sadiajuw row. The Sadiajuw should blocked, should not displayed in the list. be be Expected Result
3 4 6.
51
Feature to Test: To check whether Blocked User can login using correct Email Address Sadiajuw@gamil.com and passwordJuw71687+-. Step 1 2 Describe the Input or Action to Perform Open home page of PMS Portal. Enter correct Email Address Sadiajuw@gmail.com and Password Juw71687+ in text fields. Press login button Notifications page where an error message Your account has been blocked by the administrator. should be displayed. Table 7.15 Blocked User account login check Expected Result
Feature to Test: To check whether Users List feature works properly. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on users list link from menu bar Users list page should be opened showing list of users and their information Table 7.16 Verify Users List link check Expected Result
3 4
52
Feature to Test: To check whether the title of the Users List page is Users List. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button From menu bar click on users list link Check the title of the Users list page. The title of the page should be Users List Table 7.17 Title of the Users List page check. Expected Result
3 4 5
Feature to Test: To check whether Delete User link works properly. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Delete user list link from menu bar Users list page should be opened showing list of users and their information with delete button Table 7.18 Verify User List link check Expected Result
3 4
53
Feature to Test: To check whether the title of the Delete User List page is Delete User. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Delete user list link from menu bar Check the title of the Delete User list page. The title of the page should be Delete User. Table 7.19 Title of the Delete User List page check. Expected Result
3 4 5
Feature to Test: To check whether Delete button works properly. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Delete user list link from menu bar Click on Delete button Delete page should be opened showing message Are you sure you really want to delete that user with two button Yes and No Expected Result
3 4 5
54
Feature to Test: To check whether No link is a broken link. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Delete user list link from menu bar Click on Delete button Click on No button The page should be redirect to Delete User list page Table 7.21 No link check. Expected Result
3 4 5 6
Feature to Test: To check whether Yes link is a broken link. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Delete user list link from menu bar Click on Delete button Click on Yes button The page should be redirect to delete User list page and that user should be deleted from the list Table 7.22Yes link check. Expected Result
3 4 5 6
55
Feature to Test: To check whether the title of the Change Password page is Change Password. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button From menu bar click on Change Password link Check the title of the Change Password page. The title of the page should be Change Password Table 7.23 Title of the Change Password page check. Expected Result
3 4 5
Feature to Test: To check whether Change Password link works properly. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Change Password link from menu bar Change Password page should be opened. Table 7.24 Verify Change Password link check Expected Result
3 4
56
Feature to Test: To check whether the title of the Confirm Delete page is Confirm Delete User. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Delete user list link from menu bar Click on Delete button Delete page should be opened showing message Are you sure you really want to delete that user with two button Yes and No The title of the page should be Confirm Delete User. Expected Result
3 4 5
7.25 Title of the Confirm Delete page check. Project: Project Management System Test Case ID: 26 Created By: : Asma Sidra & Yasmin Creation Date: 12/10/2012
Feature to Test: To check whether Edit User link works properly. Step 1 2 Describe the Input or Action to Perform Open login page of PMS portal. Enter correct Administrator Email address talha123@gmail.com and Password Jw123 in text fields. Press login button Click on Edit User link from menu bar Edit User page should be opened. showing list of users and their information with Edit button Expected Result
3 4
57
7.7
VALIDATION LOG
Completion Project: Project Management System Test Event: Block Users Test Case ID 01 Testing Date Responsible Tester Date: 12/10/2012 Name: Asma Sidra & Yasmin Test Results /Problems Review Date: 12/10/2012 Name: Asma Sidra & Yasmin Status (Pass/Fail) Pass
12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin
02
The home page of the administrator module should open and display the current user request in activity field employer. An error message should be displayed on login page that User doesnt exists
Pass
03
Pass
04
The home page of the administrator module is displayed showing the login form of administrator. An error message should be displayed on login page that User doesnt exist.
Pass
05
Pass
06
Home
Pass
07
Activate User page should be opened showing links of each user name who has applied for registration. The title of the page should be Activate User.
Pass
08
Pass
58
09
12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma
Pass
10
The user should be redirected to the dashboard where an error message Your account has not been verified by the administrator. should be displayed. The user should be redirected to the dashboard and log out link should also appear at the top corner of the dashboard Deactivate User page should be opened showing names of all user with a Block link in front of each.. The title of the page should be Deactivate User.
Pass
11
Pass
12
Pass
13
Pass
14
Pass
15
Notifications page where an error message Your account has been blocked by the administrator. should be displayed. Users list page should be opened showing list of users and their information
Pass
16
Pass
17
Pass
18
Users list page should be opened showing list of users and their information with delete button
Pass
19
Pass
59
12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin 12/10/2012 Asma Sidra & Yasmin
Delete page should be opened showing message Are you sure you really want to delete that user with two button Yes and No The page should be redirect to Delete User list page
Pass
21
Pass
22
The page should be redirect to delete User list page and that user should be deleted from the list The title of the page should be Change Password
Pass
23
Pass
24
pass
25
pass
26
Edit User page should be opened. showing list of users and their information with Edit button
pass
60
Appendix A
APPENDIX A ABBREVIATIONS
CSS CS & IT DBMS HTML PHP PMS SQL ER WAMP VC JUW Cascade Style Sheets Computer Science and Information Technology Data Base Management System Hyper Text Markup Language Hyper Text Pre Processor Project Management System Structured Query Language Entity Relation Windows Apache MySQL PHP Vice Chancellor Jinnah University for Women
61
Appendix B
APPENDIX B GLOSSARY
DATA DICTIONARY
A data dictionary, or metadata repository, as defined in the IBM Dictionary of Computing, is a "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format." The term may have one of several closely related meanings pertaining to databases and database management
systems (DBMS): A document describing a database or collection of databases. An integral component of a DBMS that is required to determine its structure.
MODULE
A module is a portion of a program that carries out a specific function and may be used alone or combined with other modules of the same program.
WEB PORTALS
A web portal or links page is a web site that functions as a point of access to information in the World Wide Web. A portal presents information from diverse sources in a unified way.
62
Appendix B
A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development. The SRS fully describes what the software will do and how it will be expected to perform.
63
Appendix C
64
Appendix C
65
Appendix C
66
Appendix C
67
Appendix D
68
Appendix D
LOGIN PAGE
Following snapshot shows the login page for all users User can login through assigned email address and password.
69
Appendix D
DASHBOARD PAGE
Dashboard view of each user is according to their roles and privileges following snapshot is of manager dashboard it shows welcome note and his role. Activity feed consists of recent ongoing projects of manager with detail button. Similarly leader dashboard activity field will contain assigned tasks that have been assigned by Manager and the member dashboard activity field will contain assigned subtasks that have been assigned by leader.
Figure Dashboard
70
Appendix D
71
Appendix D
72
Appendix D
ADMIN DASHBOARD
ADMIN USERLIST
73
Appendix D
74
Appendix E
APPENDIX E CODE
The coding provided below is of the registration module of project management system.
1. INDEX.PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /> <link rel="stylesheet" href="css/style.css" type="text/css" /> <title>Project Management System</title> <link rel="stylesheet" href="css/nivo-slider.css" type="text/css" media="screen" /> </head> <?php include 'header.php'; ?> </div> <div class="left"> <div class="left_box"> <h1><strong>The<u>easiest</u> way to manage your projects</strong></h1> <br> <h2> Simple web based project management and collaboration tool</h2> <br> <p id="slider"> <imgsrc="images/home-intro.png" alt="Image 2" title="" /> <imgsrc="images/bbb.gif" alt="Image 3" title=" " /> <imgsrc="images/bbbb.jpg" alt="Image 4" title="" /> <imgsrc="images/dd.jpg" alt="Image 5" title="" /> <imgsrc="images/ddd.jpg" alt="Image 1" title="" /> <imgsrc="images/images.jpg" alt="Image 1" title="" /> </p> </div> <div class="left_side"></div> <div class="right_side">
Appendix E
</div> </div> <div class="right"> <h3><center> Manage your projects and tasks </center></h3><div class="right_articles"> <p> <imgsrc="images/Calendar2.jpg" alt="Image" title="Image" width="240px" height="150"/> </p> </div><h3><center> Create invoices & track expenses</center></h3> </div> <?php include 'footer.php'; ?> </body> </html>
2. LOGIN.PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> s<html xmlns="http://www.w3.org/1999/xhtml">
<head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /> <link rel="stylesheet" href="css/style.css" type="text/css"/> <title>Login</title> <?php include 'header.php'; ?> </div><h1 align="center"> Easy-to-use online project management & collaboration tool.</h1> <div class="left_box" align="center"> <form action="login.php" method="post" class="form" style="height:370px"> <h1 align="left"> Login</h1> <label> Email: </label> <input type="text" name="email1" align="left"/> <br>
76
Appendix E
<label> Password: </label> <br> <input type="password" name="password" align="center"/> <br><input type="submit" value="Login" class="submit" /> <a href='register.php'><b>Register </b></a> </form> <br> <div class="error"> <br> <?php error_reporting(E_ERROR | E_PARSE); email1 = $_POST["email1"]; $password = $_POST["password"]; $role =""; if($email1&&$password){ $query = mysql_query("SELECT * FROM users WHERE Email='".$email1."'"); $numrows = mysql_num_rows($query); if($numrows!=0) { while ($row = mysql_fetch_assoc($query)) { $username = $row['User_Name']; $dbemail1 = $row['Email']; $dbpassword = $row['Password']; $dbRole_Id = $row['Role_Id']; $dbUser_Id = $row['User_Id']; } // check to see if they match! if($email1==$dbemail1&&md5($password)==$dbpassword) { if($dbRole_Id == 1){ session_start(); $_SESSION['User_Name']=$username; $_SESSION['User_Id']=$dbUser_Id;//col name $_SESSION['Role_Id'] = $dbRole_Id; $_SESSION['$dbUser_Id'] = "log"; mysql_close($db_handle); header("Location: manager/manager.php"); exit(); } else if($dbRole_Id == 2){ session_start(); $_SESSION['User_Name']=$username; $_SESSION['User_Id']=$dbUser_Id;//col name 77
Appendix E
$_SESSION['$dbUser_Id'] = "log"; mysql_close($db_handle); header("Location: member/member.php"); exit(); } else if($dbRole_Id == 3) { session_start(); $_SESSION['User_Name']=$username; $_SESSION['User_Id']=$dbUser_Id;//col name $_SESSION['$dbUser_Id'] = "log"; mysql_close($db_handle); header("Location: admin/admin.php"); exit(); } else if($dbRole_Id == 4) { session_start(); $_SESSION['User_Name']=$username; $_SESSION['User_Id']=$dbUser_Id;//col name $_SESSION['$dbUser_Id'] = "log"; mysql_close($db_handle); header("Location: leader/leader.php"); exit(); } } else echo "Incorrect password!"; } else die("That user does not exists"); } else die("Please enter username and password"); ?> </div> <?php include 'footer.php'; ?> </body> </html>
78
Appendix E
3. REGISTER.PHP
<html> <head>
<style> input { width: 260px; } </style> </head> <?php include 'header.php'; ?> </div>
<h1 align="center"> Sign up and start <strong> saving time & money </strong>.</h1>
<div class="rightt" > <br> <br> <br> <h1><strong>Five reasons you'll love Project Management</strong></h1> <ol> 79
Appendix E
<li>It's ultra fast, fun and easy to use</li> <li>It lets you get organized and productive quickly</li> <li>Your data is really secure and safe always</li> <li>Invite your team and share projects & files</li> <li>The best support you'll find on all plans</li> </ol> </div> <br> <br> <div class="left_box"> <div class="error"> <?php $submit = strip_tags(isset($_POST['submit']) ? $_POST['submit'] : ''); $email1 = strip_tags(isset($_POST['email1']) ? $_POST['email1'] : ''); $username = strip_tags(isset($_POST['username']) ? $_POST['username'] : ''); $password = strip_tags(isset($_POST['password']) ? $_POST['password'] : ''); $repeatpassword = strip_tags(isset($_POST['repeatpassword']) ? $_POST['repeatpassword'] : ''); $date = date("Y-m-d"); $Role_Id = strip_tags(isset($_REQUEST['Role_Id']) ? $_REQUEST['Role_Id'] : ''); echo"<br>";
if($submit) { // check for existance if($email1&&$username&&$password&&$repeatpassword&&$Role_Id) { if($password==$repeatpassword) { // check char length of user name and full name if(strlen($username)>25||strlen($fullname)>25) 80
Appendix E
{ echo"length of user name is too long"; } else { // check password length if(strlen($password)>25||strlen($password)<6) { echo "password must be between 6 and 25 characters"; } else { // register the user // encrypt password $password = md5($password); $repeatpassword = md5($repeatpassword);
$queryreg2=mysql_query("INSERT INTO ('','$email1','$username','$password','$date','$Role_Id','') "); header('location: after-register.php'); exit(); } } } else echo "Your password donot match"; } else echo"Please fill in all fields"; } ?> </div> <br>
users
VALUES
81
Appendix E
<br> <label> Email: </label> <br> <input type='email' name='email1' placeholder="someone@example.com" pattern="^[azA-Z0-9-\_.]+@[a-zA-Z0-9-\_.]+\.[a-zA-Z0-9.]{2,5}$" maxlength=30 title="Please enter an email in proper format" required /> <br> <br> <br>
<label> User Name: </label> <br> <input type='text' name='username' value='<?php echo $username;?>'pattern="^([A-Zaz]{5,10})+\d*$" title="No space, Minmimum 5 characters required" placeholder="User Name" maxlength=25 required /> <br> <br> <br>
<label> Password: </label> <br> <input type="password" name="password" align="center" pattern="^(?=.*\d)(?=.*[az])(?=.*[A-Z])(?!.*\s).*$" placeholder="Password" title="Password must contain at least 6 characters without space,including Upper/Lowercase and number" maxlength=15 required /> <br> <br> <br>
<label> Repeat Password: </label> <br> <input type='password' name='repeatpassword' pattern="^(?=.*\d)(?=.*[a-z])(?=.*[AZ])(?!.*\s).*$" placeholder="Repeat Password" title="Password must contain at least 6 characters without space,including Upper/Lowercase and number" maxlength=15 required />
82
Appendix E
<select name='Role_Id'> <?php //open database connection $query = mysql_query("SELECT Role_Id,Role_Title FROM roles "); while ($row = mysql_fetch_assoc($query)) { ?> <option value="<?php echo $row['Role_Id']?> "><?php echo $row['Role_Title']?></option> <?php } ?> </select> <br> <br> <br> <input type="submit" name='submit' value="Get Started" class="submit" /> <br> <br> <br> <label> By creating an account you agree with our <a href="#"> <b>Terms of Service </b> </a>. <label/> </form> </div>
83
Appendix E
</body> </html>
4. ADMIN.PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Home(Admin) </title> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /> <script src="../src/js/jscal2.js"></script> <script src="../src/js/lang/en.js"></script> <link rel="stylesheet" type="text/css" href="../src/css/jscal2.css" /> <link rel="stylesheet" type="text/css" href="../src/css/border-radius.css" /> <link rel="stylesheet" type="text/css" href="../src/css/steel/steel.css" /> <link rel="stylesheet" href="../css/style.css" type="text/css" /> </head> <?php include 'header-a.php'; ?> <div class="left"> <br /> <br /> <div class="left_box"> <h2 style=" padding: 0; font: 2em Arial, Sans-Serif; letter-spacing: -1px; "><strong>Welcome to your Dashboard,<?php print ($username); ?> </strong> (Admin) </h2> </div> <div class="left_box"> <h3 style="width:780px"><strong>Activity Feed</strong></h3> <table width="800"<tbody width="100"> <tr> <th width="100">User Name</th> <th width="100">Email</th> <th width="100">Role Tiltle</th> 84
Appendix E
// for error hiding error_reporting(E_ALL ^ E_NOTICE); //open database connection include_once("../includes.php"); error_reporting(E_ERROR | E_PARSE); if(isset($_GET['action'])=='activate' && isset($_GET['id'])){ $query="update users set is_active=1 where User_Id=".$_GET['id']; $result =mysql_query($query); }elseif(isset($_GET['action'])=='deactive' && isset($_GET['id'])){ $query="update users set is_active=0 where User_Id=".$_GET['id']; $result =mysql_query($query); } $query = "SELECT users.User_Name,users.Email,roles.Role_Title,users.is_active,roles.Role_Id,users.Role_Id,users. User_Id,users.is_active FROM users INNER JOIN roles ON users.Role_Id = roles.Role_Id WHERE users.is_active=0"; $result = mysql_query($query); while ($db_field = mysql_fetch_assoc($result)) { $a = $db_field['User_Name']; $c = $db_field['Email']; $is_active=$db_field['is_active']; $d = $db_field['Role_Title']; if($is_active==1){ $html="<font size = '3' color='#000'><a href='admin.php?id=".$db_field['User_Id']."&action=deactive'>Active user</a></font>"; }elseif($is_active==0){ $html="<font size = '3' color='#000'><a href='admin.php?id=".$db_field['User_Id']."&action=activate'>Request</a></font>"} echo"<tr bgcolor=#F8CE89>"; echo"<td align = 'center'><font size = '2' color='#000'> $a</font></td>"; echo"<td align = 'center'><font size = '2' color='#000'>$c</font></td>"; echo"<td align = 'center'><font size = '2' color='#000'>$d</font></td>"; 85
Appendix E
echo "<td align = 'center'><font size = '2' color='#000'>".$html."</font</td>"; echo"</tr>"; } ?> </table> </div> </div> <br /> </div> <br /> </div> </div> </div> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br/><br/> <br /><br /><br /><br /> <?php include '../footer.php'; ?> </body> </html>
86
References
REFERENCES
[1] http://en.wikipedia.org/wiki/APACHE [2] http://www.w3schools.com/php [3] http://www.mysql.com/why-mysql [4] http://www.wampserver.com/en/presentation.php [5] http://en.wikipedia.org/wiki/Project_management [6] http://www.w3schools.com/Html5 [7]http://www.zend.com/en/featur [8] http://findmysolution.blogspot.com/2009/07/advantages-and-disadvantages-of php.html [9] http://en.wikipedia.org/wiki/WAMP [10] http://download.cnet.com/Komodo-Edit/3000-2212_4-139739.html [11] http://en.wikipedia.org/wiki/Adobe_Dreamweaver [12] http://www.google.com.pk/search?hl=en&q=Photoshop cs3&tbs=dfn:1&tbo=u&sa =X&ei=AkrjTZy ODsPMrQe3tI2sBg&ved=0CBYQkQ4&biw=1024&bih=575 [13] [8] http://webscripts.softpedia.com/script/Database-Tools/NHibernate-43490.html [14] http://en.wikipedia.org/wiki/Apache_HTTP_Server [15] http://en.wikipedia.org/wiki/Software_testing [16] http://www.i-techzone.com/software-testing/ [17] http://sites.google.com/site/itsallabouttesting/Home/test-stra [18] http://en.wikipedia.org/wiki/White-box_testing [19] http://en.wikipedia.org/wiki/Black-box_testing [20] http://en.wikipedia.org/wiki/Unit_testing [21] http://en.wikipedia.org/wiki/Functional_testing [22] http://www.testinggeek.com/installation-testing [23] http://en.wikipedia.org/wiki/Installation_testing
87