TABLE OF CONTENTS CHAPTER NO
TITLE ABSTRACT
3
LIST OF FIGURES
3
INTRODUCTION
1.1 ABOUT THE PROJECT 1.
PROBLEM DEFINITION
2.1 EXISTING SYSTEM 2.2 DRAWBACKS OF EXISTING SYSTEM 2.3 PROPOSED SYSTEM 2.4 FEATURES OF PROPOSED SYSTEM 2.5 FEASIBILITY STUDY 2.
SOFTWARE REQUIREMENTS SPECIFICATION
3.1 INTRODUCTI INTRODUCTION ON 3.2 REQUIREMENT ANALYSIS 3.2.1 PURPOSE 3.2.2 SCOPE 3.2.3 INTERFACE REQUIREMENTS 3.2.3.1 HARDWARE REQUIREMENTS 3.2.3.2 SOFTWARE REQUIREMENTS 3.2.4 FRONT END 3.2.5 BACK END 3.2.6 CASE TOOL 3.
PAGE NO
OBJECT ORIENTED ANALYSIS
4.1 USE CASE DIAGRAM 4.2 SEQUENCE DIAGRAM 4.3 ACTIVITY DIAGRAM 4.4 CLASS DIAGRAM
4. 5.
MODULE DESCRIPTION IMPLEMENTATION
6.1 DATABASE DESIGN 6.2 CODING 6.3 SCREEN SHOTS 6.
TESTING
7.1 INTRODUCTI INTRODUCTION ON 7.2 TEST PLAN 7.2.1 UNIT TESTING 7.2.2 INTEGRATION TESTING 7.2.3 VALIDATION TESTING 7.
FUTURE ENHANCEMENT
8.
CONCLUSION
REFERENCES
4. 5.
MODULE DESCRIPTION IMPLEMENTATION
6.1 DATABASE DESIGN 6.2 CODING 6.3 SCREEN SHOTS 6.
TESTING
7.1 INTRODUCTI INTRODUCTION ON 7.2 TEST PLAN 7.2.1 UNIT TESTING 7.2.2 INTEGRATION TESTING 7.2.3 VALIDATION TESTING 7.
FUTURE ENHANCEMENT
8.
CONCLUSION
REFERENCES
QUIZ SYSTEM MANAGEMENT ABSTRACT: It is good source of interactivities among students and between the teacher and students. It is done in order to improve student„s comprehension levels and learning motivation. As one of their tools, online test tools are quite effective. However, in orde r to use the online test tool, a teacher is generally required a great deal of labor. For example, a teacher needs to create quizzes and input them in the online test tool. In order to solve these problems, we have developed a Web-based online test system which can create quizzes competitively and collaboratively by students for the purpose of reducing the load required for a teacher and promoting interactions among students and between the teacher teache r and students.
LIST OF FIGURES: FIG.NO. NO 4.1
FIG.NAME
PAGE
use case diagram
4.1.1
use case diagram for administrator
25
4.1.2 4.2 4.2.1 4.2.2
use case diagram for participant sequence diagram Sequence Diagram for Administrator Sequence Diagram for Participant
26 27 28
4.3 4.3.1 4.3.2
activity diagram Activity diagram for Administrator Activity diagram for Participant
29 30
4.4
class diagram
4.4.1 4.4.2 6.3
class diagram for administrator class diagram for participant screen shots
31 31
6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9 6.3.10
main form administrator authentication question generation question generation report generation registration rules and regulation category selection question bank result generation report generation
57 57 58 58 59 59 60 60 61 61
CHAPTER 1 1. INTRODUCTION 1.1 ABOUT THE PROJECT The ONLINE QUIZ is a web application for to take online test in an efficient manner and no time wasting for checking the paper. The main objective of ONLINE QUIZ is to efficiently evaluate the candidate thoroughly through a fully automated system that not only saves lot of time but also gives fast results. For students they give papers according to their convenience and time and there is no need of using extra thing like paper, pen etc. This can be used in educational institutions as well as in corporate world. Can be used anywhere any time as it is a web based application(user location doesn‟t matter). No restriction that examiner has to be present when the candidate takes the test.
CHAPTER 2 2. PROBLEM DEFINITION 2.1 EXISTING SYSTEM: The first problem is that there are loads of hard copied documents being generated. This brings us to the age-old discussion of keeping information in the form databases versus keeping the same on sheets of paper. Keeping the information in the form of hard-copied documents leads to the following problems.
2.2DRAWBACKS OF EXISTING SYSTEM: I. Lack of space – It becomes a problem in itself to find space to ke ep the sheets of paper being
generated as a result of the ongoing discussion. The documents being generated are too important to be ill-treated. ii. Filing poses a problem – Filing the documents categorically is a time consuming and tedious
exercise. iii. Filtering is not easy – It becomes hard to filter relevant documents for the irrelevant ones if
the count of the same crosses a certain manageable number. iv. Reviewing becomes time-consuming – All the process done manually at the centers and all
the records are maintained on the papers. So the maintenance of the record is very difficult in the departments and as well as it‟s very difficult for the workers to check the record. The Existing system is paper based, time consuming, monotonou s, less flexible and provides a very hectic working schedule. The chance of loss of records is high and also record searching is difficult. Maintenance of the system is also very difficult and takes lot of time. v. Result Processing : is slow due to paper work and requirement of staff.
2.3 PROPOSED SYSTEM: This Web Application provides facility to conduct online ex amination world wide. It saves time as it allows number of students to give the exam at a time and displays the results as the test gets over, so no need to wait for the result. It is automatically generated b y the server. Administrator has a privilege to create, modify and d elete the test papers and its particular questions. User can register, login and give the test with his specific id, and can see the results as well.
2.4 FEATURES OF PROPOSED SYSTEM: The ultimate aim of this project is to help the quiz analysis and facilitate the faculties the faculties for easy evaluation of the students and generation of the automatic score cards. The system shall display the set of questions with certain rules. It also displays the category for which the students wish to answer. Once the student has completed choosing the category starts answering the questions. The mark is given and report is generated based on the correct answers. PERFORMANCE LEVEL: The scope of this project gives immense opportunity for the students to know their levels in quiz. It provides effective software so as to help the students as well as the evaluators who are involved in evaluating the student‟s performance. The data in this project are maintained in the tabular form using DATA STRUCTURES: MYSQL in the form of database. It provides easy access to the user. Easy category questions are maintained in the database which provides easy for the user to access and choose the category. SAFETY: No data loss occurs in the quiz system. 1. It is very much protected in such a way that it gives permission to the students to access only when the username and password is correct. 2. The results are produced electronically so that nobod y is prone to mistakes. We assure that the project is completely authenticated in order to enhance RELIABILITY: security and corruptions of database as well as the software. The person is given access only if he/she has a valid username and password. The project is developed with the help of visual basic 6.0 software which meets QUALITY: the requirement of the user, the project is checked whether the phases individually have a served its purpose. FUNCTIONAL CAPABILITIES:
2.5FEASIBILITY STUDY: What are the user’s demonstrable needs? User needs a web-based system, which will remove all the above-mentioned Problems that, the user is facing. The user wants a web-based system, which will reduce the bulk of paperwork, provide ease of work, flexibility, fast record finding, modifying, adding, removing and generating the reports. How can the problem be redefined? We proposed our perception of the system, in accordance with the problems of existing system by making a full layout of the system on paper. We tallied the problems and needs by existing system and requirements. We were further updating in the layout in the basis of redefined the problems. In feasibility study phase we had undergone through various steps, which are described as under: How feasible is the system proposed? This was analyzed by comparing the following factors with both the existing system and proposed system. Cost :The cost required in the proposed system is comparatively less to the existing system.
Effort :Compared to the existing system the proposed system will provide a better working environment in which their will be ease of work and the effort required will be comparatively less than the existing system. Time :Also the time required generating a report or for doing any other work will be comparatively very less than in the existing system. Record finding and updating will take less time than the existing system. Labor : In the existing system the number of staff required for completing the work is more while the new system will require quite less number o f staff.
CHAPTER 3 3. SOFTWARE REQUIREMENTS SPECIFICATION 3.1 INTRODUCTION: It is good source of interactivities among students and between the teacher and students. It is done in order to improve student„s comprehension levels and learning motivation . As one of their tools, online test tools are quite effective. However, in order to use the online test tool, a teacher is generally required a great deal of labor. For example, a teacher needs to create quizzes and input them in the online test tool. In order to solve these problems, we have developed a Web-based online test system which can create quizzes competitively and collaboratively by students for the purpose of reducing the load required for a teacher and promoting interactions among students and between the teacher and students.
3.2 REQUIREMENT ANALYSIS: Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users. Requirements analysis is critical to the success of a development project. Requirements must be documented, actionable, measurable, testable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. Requirements can be architectural, structural, behavioral, functional, and non-functional. The development of project needs some requirement to make the project perform better and achieves the goal of project. In developing Online Quiz, the capabilities of computer and hardware plays a big impact on project quality. The project maker should determine the minimum requirements of hardware and also software to be used to develop a good and attractive project. There are two phases of requirement analysis as given below : 1) Primary Research: Identifying the user requirements conducting a survey based on a questionnaire. 2) Secondary Research: Comparing the indentified requirements with already existing software. having similar functionalities. Based on these researches the result is defined as the Software RequirementSpecification .
3.2.1 PURPOSE: This Web Application provides facility to conduct online examination world wide. It saves time as it allows number of students to give the exam at a time and displays the results
as the
test gets over, so no need to wait for the result. It is automatically generated by the server.
Administrator has a privilege to create, modify and delete the test papers and its particular questions. User can register, login and give the test with his specific id, and can see the results as well.
3.2.2 SCOPE: Scope of this project is very broad in terms of other manually cheking yourself. Few of them are:-This can be used in educational institutions as well as in corporate world. -Can be used anywhere any time as it is a web based application (user Location doesn‟t matter). -No restriction that examiner has to be present when the candidate takes the test.
3.2.3 INTERFACE REQUIREMENTS: 3.2.3.1 HARDWARE REQUIREMENTS: The processor used is intel®core™2 duo at 2 GHz. The capacity of Random Access Memory (RAM) is 4GB. The capacity of the storage element of disk space is 2.99GB. The monitor used is HDMI monitor. The keys available in the keyboard is 104 keys.
3.2.3.2 SOFTWARE REQUIREMENTS: The client used is the web browser( any ). The Database Server used is MYSQL workbench 5.2 CE. The application Server used is WASCE (Web Sphere Application S erver Community Edition) . The front end is visual basic 6.0. 3.2.4 FRONT END INTRODUCTION TO VISUAL BASIC
Visual basic is most popular programming language in the world, and generally use as a front end for database application. There are some important reasons to use Visual Basic rather than others.
Capability: VB is capable of producing software as sophisticated as any of the others dataaccess techniques available. There is little you can do in say, Developer 2000 that cannot be implemented equally well with ADO or OO4O. Flexibility: You do not have to use VB for only database access. You can use it to write a text processor, an e-mail listener, or 10,000 other tasks. Familiarity: Being the most popular language in the world means there is as steady supply of talented staff for you to add to your development teams. When the general supply is short, you will still be more likely to find development staff then for other langua ge.
Popularity: The popularity of a product is important for you to become familiar with because you will see more magazine articles and books as well as have better supply of third-party products from companies who will devote their resources in which there is a playback Microsoft Visual Basic, the fastest and easiest way to create applications for Microsoft Windows. Whether you are an experienced professional or brand new to Windo ws programming, Visual Basic provides you with a complete set of tools to simplify rapid application development.
The "Visual" part refers to the method used to create the graphical user interface (GUI). Rather than writing numerous lines of code to describe the appearance and location of interface elements, you simply add prebuilt objects into place on screen. If you've ever used a drawing program such as Paint, you already have most of the skills necessary to create an effective user interface. The "Basic" part refers to the BASIC (Beginners all-purpose Symbolic Instruction Code) language, a language used by more programmers than any other language in the history of computing. Visual Basic has evolved from the original BASIC language and now contains several hundred statements, functions, and keywords, many of which relate directly to the Windows GUI. Beginners can create useful applications by learning just a few of the keywords, yet the power of the language allows professionals to accomplish anything that can be accomplished using any other Windows programming language. The Visual Basic programming language is not unique to Visual Basic. The Visual Basic programming system, Applications Edition included in Microsoft Excel, Microsoft Access, and many other Windows applications uses the same language. The Visual Basic Scripting Edition (VBScript) is a widely used scripting language and a subset of the Visual Basic language. The investment you make in learning Visual Basic will ca rry over to these other areas. Whether your goal is to create a small utility for yourself or your work group, a large enterprise-wide system, or even distributed applications spanning the globe via the Internet, Visual Basic has the tools you need. Data access features allow you to create databases, front-end applications, and scalable server-side components for most popular database formats, including Microsoft SQL Server and other enterprise-level databases.
ActiveX™ technologies allow you to use the f unctionality provided by other applications, such as Microsoft Word word processor, Microsoft Excel spreadsheet, and other Windows applications. You can even automate applications and objects created using the Professional or Enterprise editions of Visual Basic.
Internet capabilities make it easy to provide access to documents and applications across the Internet or Intranet from within your application, or to create Internet server applications.
Your finished application is a true .exe file that uses a Visual Basic Virtual Machine that you can freely distribute.
Visual Basic Editions Visual Basic is available in three versions; each geared to meet a specific set of development requirements. The Visual Basic Learning edition allows programmers to easily create powerful ® applications for Microsoft Windows and Windows NT . It includes all intrinsic controls, plus grid, tab, and data-bound controls.
The Professional edition provides computer professionals with a full-featured set of tools for developing solutions for others. It includes all the features of the Learning edition, plus additional ActiveX controls, the Internet Information Server Application Designer, integrated Visual Database Tools and Data Environment, Active Data Objects, and the Dynamic HTML Page Designer.
The Enterprise edition allows professionals to create robust distributed applications in a team setting. It includes all the features of the Professional edition, plus Back Office tools such as SQL Server, Microsoft Transaction Server, Internet Information Server, Visual SourceSafe, SNA Server, and more. 3.2.5 BACK END INTRODUCTION TO MYSQL SERVER OVERVIEW OF THE MYSQL DATABASE MANAGEMENT SYSTEM
MySQL, the most popular Open Source SQL database management system, is developed, distributed, and supported by MySQL AB. MySQL AB is a commercial company, founded by the MySQL developers. It is a second generation Open Source company that unites Open Source values and methodology with a successful business model. MySQL is a database management system. A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL Server. Since computers are very good at handling large amounts of data, database management systems play a central role in computing, as standalone utilities, or as parts of other applications. MySQL is a relational database management system. A relational database stores data in separate tables rather than putting all the data in one big storeroom. This adds speed and flexibility. The SQL part of “MySQL” stands for “Structured Query Language.” SQL is the most common standardized language used to access databases and is defined by the ANSI/ISO SQL Standard. The SQL standard has been evolving since 1986 and several versions exist. In this manual, “SQL-92” refers to the standard released in 1992, “SQL:1999” refers to the standard released in 1999, and
“SQL:2003” refers to the current version of the standard. We use the phrase “ the SQL standard” to mean the current version of the SQL Standard at any time. MySQL software is Open Source. Open Source means that it is possible for anyone to use and modify the software. Anybody can download the MySQL software from the Internet and use it without paying anything. If you wish, you may study the source code and change it to suit your needs. The MySQL software uses the GPL (GNU General Public License), to define what you may and may not do with the software in different situations. If you feel uncomfortable with the GPL or need to embed MySQL code into a commercial application, you can buy a commercially licensed version from us. The MySQL Database Server is very fast, reliable, and easy to use. If that is what you are looking for, you should give it a try. MySQL Server also has a practical set of features developed in close cooperation with our users. You can find a performance comparison of MySQL Server with other database managers on our benchmark page. MySQL Server was originally developed to handle large databases much faster than existing solutions and has been successfully used in highly demanding production environments for several years. Although under constant development, MySQL Server today offers a rich and useful set of functions. Its connectivity, speed, and security make MySQL Server highly suited for accessing databases on the Internet. MySQL Server works in client/server or embedded systems. The MySQL Database Software is a client/server system that consists of a multi-threaded SQL server that supports different backends, several different client programs and libraries, administrative tools, and a wide range of application programming interfaces (APIs). We also provide MySQL Server as an embedded multi-threaded library that you can link into your application to get a smaller, faster, easier-to-manage standalone product. A large amount of contributed MySQL software is available. It is very likely that your favorite application or language supports the MySQL Database Server. The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”), but we don't mind if you pronounce it as “my sequel” or in some other localized way. History of MySQL We started out with the intention of using the mSQL database system to connect to our tables using our own fast low-level (ISAM) routines. However, after some testing, we came to the conclusion that mSQL was not fast enough or flexible enough for our needs. This resulted in a new SQL interface to our database but with almost the same API interface as mSQL. This API was designed to allow third-party code that was written for use with mSQL to be ported easily for use with MySQL. The derivation of the name MySQL is not clear. Our base directory and a large number of our libraries and tools have had the prefix “my” for well over 10 years. However, co-founder Monty Widenius's daughter is also named My. Which of the two gave its name to MySQL is still a mystery, even for us. The name of the MySQL Dolphin (our logo) is “Sakila,” which was chosen by the founders of MySQL AB from a huge list of names suggested by users in our “ Name the Dolphin”
contest. The winning name was submitted by Ambrose Twebaze, an Open Source software developer from Swaziland, Africa. According to Ambrose, the feminine name Sakila has its roots in SiSwati, the local language of Swaziland. Sakila is also the name of a town in Arusha, Tanzania, near Ambrose's country of origin, Uganda. The Main Features of MySQL The following list describes some of the important characteristics of the MySQL Database Software, for more information about current and upcoming features. Internals and Portability: Written in C and C++. Tested with a broad range of different compilers. Works on many different platforms. Uses GNU Automake, Autoconf, and Libtool for portability. APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available. Fully multi-threaded using kernel threads. It can easily use multiple CPUs if they are available. Provides transactional and non-transactional storage engines. Uses very fast B-tree disk tables ( MyISAM) with index compression. Relatively easy to add other storage engines. This is useful if you want to add an SQL interface to an in-house database. A very fast thread-based memory allocation system. Very fast joins using an optimized one-sweep m ulti-join. In-memory hash tables, which are used as t emporary tables. SQL functions are implemented using a hig hly optimized class library and should be as fast as possible. Usually there is no memory allocation at all after query initialization. The MySQL code is tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a GPL tool The server is available as a separate program for use in a client/server networked environment. It is also available as a library that can be embedded (linked) into standalone applications. Such applications can be used in isolation or in environments where no network is available.
Data Types: Many data types: signed/unsigned integers 1, 2, 3, 4, and 8 bytes long, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME,TIMESTAMP, YEAR, SET , ENUM, and OpenGIS spatial types. Fixed-length and variable-length records. Statements and Functions: Full operator and function support in the SELECT and WHERE clauses of queries. For example: mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;
Full support for SQL GROUP BY and ORDER BY clauses. Support for group functions (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(),MAX(), MIN(), and GROUP_CONCAT() ). Support for LEFT OUTER JOIN and RIGHT OUTER JOIN with both standard SQL and ODBC syntax. Support for aliases on tables and columns as required by standard SQL. DELETE, INSERT, REPLACE, and UPDATE return the number of rows that were changed (affected). It is possible to return the number of rows matched instead by setting a flag when connecting to the server. The MySQL-specific SHOW statement can be used to retrieve information about databases, storage engines, tables, and indexes. The EXPLAIN statement can be used to determine how the optimizer resolves a query. Function names do not clash with table or column names. For example, ABS is a valid column name. The only restriction is that for a function call, no spaces are allowed between the function name and the „ (‟ that follows it. You can mix tables from different databases in the same query (as of MySQL 3.22). Security: A privilege and password system that is very flexible and secure, and that allows hostbased verification. Passwords are secure because all password traffic is encrypted when you connect to a server. Scalability and Limits: Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows. Up to 64 indexes per table are allowed (32 before MySQL 4.1.2). Each index may consist of 1 to 16 columns or parts of columns. The maximum index width is 1000 bytes (767 for InnoDB); before MySQL 4.1.2, the limit is 500 bytes. An index may use a prefix of a column for CHAR, VARCHAR,BLOB, or TEXT column types. Connectivity: Clients can connect to the MySQL server using TCP/IP sockets on any platform. On Windows systems in the NT family (NT, 2000, XP, 2003, or Vista), clients can connect using named pipes. On Unix systems, clients can connect using Unix dom ain socket files. In MySQL 4.1 and higher, Windows servers also support shared-memory connections if started with the --shared-memory option. Clients can connect through shared memory by using the --protocol=memory option. The Connector/ODBC (MyODBC) interface provides MySQL support for client programs that use ODBC (Open Database Connectivity) connections. For example, you can use MS Access to connect to your MySQL server. Clients can be run on Windows or Unix. MyODBC source is available. All ODBC 2.5 functions are supported, as are many others. The Connector/J interface provides MySQL support for Java client programs that use JDBC connections. Clients can be run on Windows or Unix. Connector/J source is availableMySQL Connector/NET enables developers to easily create .NET applications that
require secure, high-performance data connectivity with MySQL. It implements the required ADO.NET interfaces and integrates into ADO.NET aware tools. Developers can build applications using their choice of .NET languages. MySQL Connector/NET is a fully managed ADO.NET driver written in 100% pure C#. Localization: The server can provide error messages to clients in many languages. Full support for several different character sets, including latin1 (cp1252), german, big5, ujis, and more. For example, the Scandinavian characters „å‟, „ä‟ and „ö‟ are allowed in table and column names. Unicode support is available as of MySQL 4.1. All data is saved in the chosen character set. All comparisons for normal string columns are case-insensitive. Sorting is done according to the chosen character set (using Swedish collation by default). It is possible to change this when the MySQL server is started. To see an example of very advanced sorting, look at the Czech sorting code. MySQL Server supports many different character sets that can be specified at compile time and runtime. Clients and Tools: MySQL Server has built-in support for SQL statements to check, optimize, and repair tables. These statements are available from the command line through the mysqlcheck client. MySQL also includes myisamchk, a very fast command-line utility for performing these operations on MyISAM tables All MySQL programs can be invoked with the --help or -? options to obtain online assistance. MySQL Stability This section addresses the questions, “ How stable is MySQL Server?” and, “Can I depend on MySQL Server in this project?” We will try to clarify these issues and answer some important questions that concern many potential users. The information in this section is based on data gathered from the mailing lists, which are very active in identifying problems as well as reporting types of use. The original code stems back to the early 1980s. It provides a stable code base, and the ISAM table format used by the original storage engine remains backward-compatible. At TcX, the predecessor of MySQL AB, MySQL code has worked in projects since mid-1996, without any problems. When the MySQL Database Software initially was released to a wider public, our new users quickly found some pieces of untested code. Each new release since then has had fewer portability problems, even though each new release has also had many new features. Each release of the MySQL Server has been usable. Problems have occurred only when users try code from the “gray zones.” Naturally, new users don't know what the gray zones are; this section therefore attempts to document those areas that are currently known. The descriptions mostly deal with Versions 3.23 and later of MySQL Server. All known and reported bugs are fixed in the latest version, with the exception of those listed in the bugs section, which are design-related.
The MySQL Server design is multi-layered with independent modules. Some of the newer modules are listed here with an indication of how well-tested each of them is: Replication (Stable) Large groups of servers using replication are in production use, with good results. Work on enhanced replication features is continuing. InnoDB tables (Stable) The InnoDB transactional storage engine has been stable since version 3.23.49. InnoDB is being used in large, heavy-load production systems. Full-text searches (Stable) Full-text searching is widely used. Important feature enhancements were added in MySQL 4.0 and 4.1. MyODBC 3.51 (Stable) MyODBC 3.51 uses ODBC SDK 3.51 and is in wide production use. Some issues brought up appear to be application-related and independent of the ODBC driver or underlying database server. How Large MySQL Tables Can Be MySQL 3.22 had a 4GB (4 gigabyte) limit on table size. With the MyISAM storage engine in 7 MySQL 3.23, the maximum table size was increased to 65536 terabytes (256 – 1 bytes). With this larger allowed table size, the maximum effective table size for MySQL databases is usually determined by operating system constraints on file sizes, not by MySQL internal limits. The InnoDB storage engine maintains InnoDB tables within a tablespace that can be created from several files. This allows a table to exceed the maximum individual file size. The tablespace can include raw disk partitions, which allows extremely large tables. The maximum tablespace size is 64TB. The following table lists some examples of operating system file-size limits. This is only a rough guide and is not intended to be definitive. For the most up-to-date information, be sure to check the documentation specific to your ope rating system.
Operating System
File-size Limit
Linux 2.2-Intel 32-bit
2GB (LFS: 4GB)
Linux 2.4+
(using ext3 filesystem) 4TB
Solaris 9/10
16TB
NetWare w/NSS filesystem 8TB Win32 w/ FAT/FAT32
2GB/4GB
Win32 w/ NTFS
2TB (possibly larger)
MacOS X w/ HFS+
2TB
On Linux 2.2, you can get MyISAM tables larger than 2GB in size by using the Large File Support (LFS) patch for the ext2 filesystem. On Linux 2.4, patches also exist for ReiserFS to get support for big files (up to 2TB). Most current Linux distributions are based on kernel 2.4 or higher and include all the required LFS patches. With JFS and XFS, petabyte and
larger files are possible on Linux. However, the maximum available file size still depends on several factors, one of them being the filesystem used to store MySQL tables. Windows users please note: FAT and VFAT (FAT32) are not not considered considered suitable for production use with MySQL. Use NTFS instead. By default, MySQL creates MyISAM tables with an internal structure that allows a maximum size of about 4GB. You can check the maximum table size for a MyISAM table with the SHOW TABLE STATUS statement or with myisamchk -dv tbl_name. If you need a MyISAM table that is larger than 4GB and your operating system supports large files, the CREATE TABLE statement supports AVG_ROW_LENGTHand MAX_ROWS options. You can also change these options with ALTER TABLE to increase a table's maximum allowable size after the table has been createdOther ways to work around file-size limits for MyISAM tables are as follows: If your large table is read-only, you can use myisampack to compress it. myisampack usually compresses a table by at least 50%, so you can have, in effect, much bigger tables. myisampack also can merge multiple tables into a single table .
MySQL includes a MERGE library that allows you to handle a collection of MyISAM tables that
have identical structure as a single MERGE table.
3.2.6 CASE TOOL INTRODUCTION TO RATIONAL ROSE : This is a brief overview to get students started in using Rational Rose to quickly create objectoriented models and diagrams. It is not by any means a complete introduction to Rational Rose, but it should get you started. A. GETTING STARTED: Click on Start, Programs, Rational Suite Development Studio 1.5, and then on Rational Rose 2000 Enterprise Edition (not the one that has the arrow next to it) . You will now see a window appearing that says “Create New Model ”. This is for working with Java, Oracle, and VB. Just press “Cancel”. Next, you see the main window called “Rational Rose- [untitled] ” and a smaller window within it called “Class Diagram: Logical View / Main ”. There is also a browser on the left side of the page that has the diagrams that you are working on in the project. If you ever want to see the specifics on any diagram that you are working on, go to the browser, click on the “ + “, and you‟ll be able to see what is in that view. To close the view, click on the – “. B. USE-CASE DIAGRAM: 1. The first diagram you‟ll be working on is a use-case diagram. Go to Browse and click on Use Case Diagram. You will get a window saying Select Use Case Diagram. Click on OK. You now will see a new window called Use Case
Diagram: Use Case View / Main . You will see a set of tools to the left of this window. These tools are specific to the Use Case diagram and will be used to create it. To make a Use Case, go to the tools and click on the one that looks like an oval. This is the Use Case button. (Note: If you ever want to know if it‟s the right button, just hold the mouse arrow over the button for two seconds, and it will tell you what the button is.)
2. Once you have clicked on the Use Case button, position the new mouse pointer wherever you want on the page and click again. The oval will now appear on the page. Now, type in a name for your Use Case. To reposition the Use Case, just click once on the Use Use Case.To change it‟s property (name etc.) double click on on the Use. 3. Now, we need to add some actors, which are actually the classes in this project (you‟ll see this later as you continue). Click on the stick figure figure in the toolbox. Now, click anywhere on the Use Case Diagram to place the actor. Once again, name your actor. As with the use cases, to reposition the actor click once or change its name, double click on the actor. 4. Finally, we want to connect the use cases with the actors. In order to do this, click in the toolbox on the box that has the curved arrow that says Unidirectional Association . This will allow you accomplish this task. You are now finished with the Use Case Diagram portion of the project. Don’t forget to save!!! 5. Now, we want to give the attributes their types, initialize the types, and distinguish the attributes as public, private, or protected. To do this, double click on the class anywhere that is blank . A new window called Class Specification will pop up. Click on attributes . Double click on the attribute that you want to select. Another new window called Class Attribute Specification pops up. In this window, you can initialize your attribute to any value, specify if it‟s public, private, or p rotected, and give it the t ype. 6. Next, we add some methods to our class. To insert a method of the class, right click on the class and this time select new operation . Now, type in the name of the method of the class. We also want to add arguments for the new operation. To do this, once again, double click on the class anywhere that is blank . The Class Specification window will again pop up. Click on operations . Double click on the method that you want to select. Another new window called Operation Specification pops up. u p. In this window, theGeneral tab is already selected. (If not, select it). Here you can decide if the methods will be public, private, or protected. After doing this, select the Detail tab. Right click in thespace below Name. Select insert . Now, type in the name of the argument. argument. Hit tab to insert the argument‟s type. Hit tab again if you want to set the argument to default. Press OK and you‟re back to Operations. Press OK again. 7. Great. Now that we have all the classes created, we can create an UNIDIRECTIONAL ASSOCIATION connection between classes. Click on the UNIDIRECTIONAL ASSOCIATION icon. Now, click on the first class, hold the mouse
button down, drag the mouse to the other class, and release the mouse button. To name the click on association, double the association connection line. The Association Specification window pops up. Type the Association name in the space provided. Press OK. Now, we need to insert the cardinality of the class association. To do this, right click on the association connection line, next to the first class. Select multiplicity and finally select the correct cardinality. Do the same for the second class ** If you nave more than 1 association between 2 classes, be careful. If you select association between the 2 classes again, it will overlap the first one. Click on the line, drag the other association, and release it. You can change the association properties (name, cardinality by double clicking on them). 8. It‟s time for AGGREGATION. It‟s basically done the same way that Association is done. First create theUNIDIRECTIONAL ASSOCIATION connection as above. ** Be careful! Create the aggregation by starting off on the class that you want the diamond attached to, then right click on the association line and press AGGREGATE. Don’t forget to save!!! D. STATE DIAGRAMS 1.Up until now, we dealt with the entire system, all the classes and use cases. Now, we‟re going to pick one of the classes and create a state diagram for it, specifically the book class. You need to let Rational Rose know which class you‟re going to use for the State Diagram. Select the book class by clicking on it once. Now, in the Browse menu, select State Machine Diagram. Click OK. Now a window New State Machine Diagram pops up. In the diagram type click on STATECHART. Click OK. The state chart diagram pops up with a tool bar besides it.
2. The first thing to do is get the Start State of the diagram. To do this, click on the black dot icon. This is the Start State. Position the new mouse pointer wherever you want on the page and click again. You can double click on the start state and change it‟s property (name etc.). 3. Next, click on the State icon (which is a rectangular icon). Once you have clicked on the state button, position the new mouse pointer wherever you want on the page and click again. A rounded rectangle representing the state will now appear on the page. Now, type in a name for your class by first double clicking on the state. To reposition the class, just click once on the class. To change its name, click twice. 4. Let‟s now give the transition between the states. To do this, click on the State Transition icon (which is an inclined arrow icon)on the tool bar. Click first on the state that the transition is coming from, and drag it to the state that the transition is going towards. To name the transition, double click on the transition and type in the name. 5. Continue this with all states. Finally, you should have an End State. The end state is reached when the item in the state diagram is thrown out. Connect the transition to this state in the same manner as you did with the other states. You can draw the End State by first clicking on the end
state icon (a black dot with a circle around it), and then positioning it wherever you want it in the page. Don’t forget to save!!! E. SEQUENCE DIAGRAMS
1. The last diagram in this exercise is the Sequence Diagram. Once again, this is a dynamic diagram, like the state diagram. Go to the Browse menu and select Interaction Diagram . In the Select Interaction Diagram indow that pops up, choose Logical View and click on OK. When the window New Interaction Diagram pops up, choose sequence as the diagram type and type the title. The tool bar comes beside the diagram. (Note: A Collaboration Diagram is almost the same as a Sequence Diagram. In this exercise, we will use the Sequence Diagram). 2. First, we need to choose the class objects that will be interacting in the diagram. To do this, choose the object icon (which is a rectangular icon). Position the new mouse pointer wherever you want on the page and click again. To name the class object, double click on the object (or click inside the rectangle and type). 3. To show a transition in the Sequence Diagram, click the right arrow icon, the Object Message icon. This is the “Object Message” icon used for transitions. Click on the vertical dotted line that extends from the bottom of the class object and drag it to the vertical dotted line of the second class object. 4. To make a self-transition, click on the “U-turn” arrow, the Message To Self icon . This is the “Message to Self” icon. No dragging is necessary. 5. To name either transition, double click on the transition and type in the name. ** Note: You can move the transitions slightly up or down as needed by clicking on them and dragging them. 6. Once you make a transition, the vertical dotted line of the class objects extend.
OK, you‟re done with all the diagrams. Now, let‟s generate some code!!!
CHAPTER 4 4. OBJECT ORIENTED ANALYSIS 4.1 USE CASE DIAGRAM The users of our system are students and facult y members. This diagram will explain the interaction between their role and the system. The use case diagram is given in the high level by representing the goals of the actor. The administrator can login to the question generation module using the authentication provided and can perform the operation of add/modify/delete/mov_next/mov_previous functions as show in fig 4.1.1. The user can enter the question bank module by satisfying the authentication need. The new user can perform the act of registering when they enter for the first time. Therefore the user can answer their question on their interesting topics and see their result instantly as show in fig 4.1.2
Figure 4.1.1 Use case diagram for administrator
Figure 4.1.2 Use case diagram for participant
4.2 SEQUENCE DIAGRAM This diagram shows the kind of interaction how the processes operate with one another and in what order. In fig 4.2.1 the sequence for login to the user page is given. Here the user logins the page only when the given id and password are found in the database successfully. When a report is generated it checks the database and displays in grid view, and it updates the database if a question is added, deleted, update.
Figure 4.2.1 Sequence Diagram for Administrator
Figure 4.2.2 Sequence Diagram for Participant
In fig 4.2.2 the sequence diagram for entire discussion When a new user enters he/she is asked to complete the registration process and then the y are allowed to login using their username and password when they wish. He/she can select their category before they move to the question bank. After submitting the answer it automatically calls the report generation module and gets the report generated.
4.3 .ACTIVITY DIAGRAM
They are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrenc y. In fig 4.3.1 Initially user is made to fill all registration fields filled in registration form. Once the user clicks submit, the username is verified. If the, username is already present, then the user is again taken back, So ,that he can
change the username. If the username is not present then it checks for password and remaining mandatory fields. If any of the mandatory field is left empty or filled incorrect, then the user is informed to enter the correct values. Once all verifications are succeeded, then the registration is done. To enter into the registration page the user h ave to enter the details first. After entering the details he has to verify the user name. If suppose the user name already exists then he has to enter the details. Then he has to verify the password. If the registration is successful then the unique id will be provided. Then the user can go the home page. To fill the farmer/wholesaler registration form then he has to fill all the details. Then the v erifying the username , password and the registration form. After verification he has to fill all the registration details. Then for the user the user id will be provided for the student/faculty. If the deny registration then the user has to go the home page.
Figure 4.3.1.Acticvity diagram for Administrator
Figure 4.3.2 Activity diagram for Participant 4.4 CLASS DIAGRAM: It is a diagram which is a static structure of a system that shows the system‟s classes, their attributes and the operations or methods along with their relationships among the classes.The main aim of the administrator to create new qu estion and the corresponding answer for them.This diagram makes the view more clear about what happening in the project. The functions performed are update, delete, modify etc ,as show in fig 4.4.1
Figure 4.4.1 Class diagram for Administrator In the fig4.4.2 it shows the clear idea of attributes and operation performed by the users. If he/she is a new user they can perform the operation of registration() and if already existing user then they can login() and can continue answering. After submitting report is generated with attributes of name ,category and rank in descending order.
Figure 4.4.2 Class diagram for Participant
CHAPTER 5 5. MODULE DESCRIPTION 1. 2. 3. 1. 2. 3. 4. 5.
1. 2.
This project involves following phases ADMINISTRATOR Authentication phase Question generation phase Report generation phase PARTICIPANT Authentication phase Registration phase Rules and category selection phase Question bank phase Result generation phase ADMINISTRATOR AUTHENTICATION PHASE: This proposed system is completely authenticated in order to enhance security and corruptions of database as well as the software. A person is given access permission to this system when he/she has got a valid username and password i.e. the administrator. Hence this authentication module includes two fields where administrator (programmer) is asked to enter the username and password. The details include: Username Password QUESTION GENERATION PHASE: This phase includes the various categorized question generation. In this phase the administrator can perform add, modify, delete, move_next, move_previous, clear_all operation. This phase may be the most important phase in proposed system, because it is the one where the entire system gets the categorized question.
REPORT GENERATION PHASE: This phase contains various report generation related to our system such as Administrator report, Participant report, Rank etc. the report gives the overall view about our system. PARTICIPANT AUTHENTICATION PHASE: This proposed system is completely authenticated in order to enhance security and corruptions of database as well as the software. A person is given access permission to this system when he/she has got a valid username and password. Hence this authentication module includes two fields where participant is asked to enter their username and password. The details include: 1. Username 2. Password
REGISTRATION PHASE: If the participant is an existing user then he can enter into the system, using his valid username and password. If the participant is a new one then he has to fill the registration form. Now valid username and password will assign to the user. Using that he can enter into the system. RULES AND CATEGORY SELECTION PHASE: This phase provides the students with a set of rules and regulations to be followed while attending the quiz. It is useful for the user who is new to the online process so that they can have a clear idea of what has to be done. This module also provides the students a special feature of category selection. This category includes Sports, Science, Software, and General Knowledge. Based on the category questions are put forth to the students. QUESTION BANK PHASE: This phase provides the students a set of multiple-choice questions and a set of answers below the specific question. Once after the current question has been answered it automatically makes a move to the second question with their corresponding answers.
1. 2. 3. 4. 5.
This module is provided with four fields: Question number Question field Option 1 Option 2 Option 3
RESULT GENERATION PHASE: The result of the corresponding student is generated based on his, her performance in the test. The result is generated at the end of the quiz. The result is generated with the help of following field: 1. Username 2. Category 3. Mark
CHAPTER 6 6. IMPLEMENTATION 6.1 DATABASE DESIGN: ADMINISTRATOR TABLE: QUIZADMIN NAME USERNAME PASSWORD
TYPE VARCHAR(10) VARCHAR(10)
TABLE: ADMINSPORTS NAME NO CAT QUESTION OPT1 OPT2 OPT3 ANS
TYPE NUMBER(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10)
TABLE: ADMINSOFT NAME NO CAT QUESTION OPT1 OPT2 OPT3 ANS
TYPE NUMBER(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10)
TABLE: ADMINSCIENCE NAME NO CAT QUESTION OPT1 OPT2
TYPE NUMBER(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10)
OPT3 ANS
VARCHAR(10) VARCHAR(10)
TABLE: ADMINGK NAME NO CAT QUESTION OPT1 OPT2 OPT3 ANS
TYPE NUMBER(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10)
TABLE: RANK NAME USERNAME MARK CATEGORY
TYPE VARCHAR(10) NUMBER(10) VARCHAR(10)
TABLE: ADMINUSER NAME USERNAME PASSWORD NAME EMAILID GENDER DOB
TYPE VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10) VARCHAR(10)
6.2 CODING: MAIN FORM:
Private Sub Command1_Click() Load Form2 Form2.Show Unload Me End Sub Private Sub command2_Click()
Load Form5 Form5.Show Unload Me End Sub Private Sub command3_Click() Unload Me End Sub
ADMINISTRATOR AUTHENTICATION: Dim rs As New ADODB.Recordset Dim s As String Dim flag As Integer
Private Sub Command1_Click() Dim a, b As String a = Trim(Text1.Text) b = Trim(Text2.Text) rs.MoveFirst While Not rs.EOF If rs.Fields(0) = a And rs.Fields(1) = b Then MsgBox ("login successfull") Load Form3 Form3.Show Unload Me Exit Sub End If rs.MoveNext Wend MsgBox ("invalid enty") End Sub Private Sub command2_Click() Load Form1 Form1.Show Unload Me End Sub Private Sub Form_Load() Set cn = New ADODB.Connection If cn.State = 1 Then cn.Close End If
cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs.Open "select * from quizadmin", cn, adOpenDynamic, adLockOptimistic End Sub QUESTION GENERATION:
Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Dim rs4 As New ADODB.Recordset Dim a As Integer Private Sub reset() If cn.State = 1 Then cn.Close End If Set cn = New ADODB.Connection cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs1.Open "select * from adminsports order by no", cn, adOpenDynamic, adLockOptimistic rs2.Open "select * from adminscience order by no", cn, adOpenDynamic, adLockOptimistic rs3.Open "select * from adminsoft order by no", cn, adOpenDynamic, adLockOptimistic rs4.Open "select * from admingk order by no", cn, adOpenDynamic, adLockOptimistic End Sub Private Sub Command1_Click() If Combo1.Text = "SPORTS" Then rs1.AddNew cn.Execute "insert into adminsports values('" & Text1.Text & "','" & Combo1.Text & "','" & RichTextBox1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')" MsgBox ("RECORD ADDED") Call reset End If If Combo1.Text = "SCIENCE" Then rs2.AddNew cn.Execute "insert into adminscience values('" & Text1.Text & "','" & Combo1.Text & "','" & RichTextBox1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')"
MsgBox ("RECORD ADDED") Call reset End If If Combo1.Text = "SOFTWARE" Then rs3.AddNew cn.Execute "insert into adminsoft values('" & Text1.Text & "','" & Combo1.Text & "','" & RichTextBox1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')" MsgBox ("RECORD ADDED") Call reset End If If Combo1.Text = "GK" Then rs4.AddNew cn.Execute "insert into admingk values('" & Text1.Text & "','" & Combo1.Text & "','" & RichTextBox1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')" MsgBox ("RECORD ADDED") Call reset End If End Sub Private Sub clear() Text1.Text = "" RichTextBox1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" End Sub
Private Sub command2_Click() If Combo1.Text = "SPORTS" Then cn.Execute "update adminsports set no='" & Text1.Text & "',cat='" & Combo1.Text & "',question='" & RichTextBox1.Text & "',opt1='" & Text2.Text & "',opt2='" & Text3.Text & "',opt3='" & Text4.Text & "',ans='" & Text5.Text & "' where no=" & Text1.Text rs1.Update MsgBox ("RECORD UPDATED") Call reset End If
If Combo1.Text = "SCIENCE" Then cn.Execute "update adminscience set no='" & Text1.Text & "',cat='" & Combo1.Text & "',question='" & RichTextBox1.Text & "',opt1='" & Text2.Text & "',opt2='" & Text3.Text & "',opt3='" & Text4.Text & "',ans='" & Text5.Text & "' where no=" & Text1.Text rs2.Update MsgBox ("RECORD UPDATED") Call reset End If If Combo1.Text = "SOFTWARE" Then cn.Execute "update adminsoft set no='" & Text1.Text & "',cat='" & Combo1.Text & "',question='" & RichTextBox1.Text & "',opt1='" & Text2.Text & "',opt2='" & Text3.Text & "',opt3='" & Text4.Text & "',ans='" & Text5.Text & "' where no=" & Text1.Text rs3.Update MsgBox ("RECORD UPDATED") Call reset End If If Combo1.Text = "GK" Then cn.Execute "update admingk set no='" & Text1.Text & "',cat='" & Combo1.Text & "',question='" & RichTextBox1.Text & "',opt1='" & Text2.Text & "',opt2='" & Text3.Text & "',opt3='" & Text4.Text & "',ans='" & Text5.Text & "' where no=" & Text1.Text rs4.Update MsgBox ("RECORD UPDATED") Call reset End If End Sub Private Sub command3_Click() If Combo1.Text = "SPORTS" Then cn.Execute "delete from adminsports where no=" & Text1.Text MsgBox "RECORD HAS BEEN DELETED SUCCCESSFULLY", vb Information, "Deleted" rs1.Update clear Call reset End If If Combo1.Text = "SCIENCE" Then cn.Execute "delete from adminscience where no=" & Text1.Text MsgBox "RECORD HAS BEEN DELETED SUCCCESSFULLY", vbInformation, "Deleted" rs2.Update clear Call reset End If If Combo1.Text = "SOFTWARE" Then cn.Execute "delete from adminsports where no=" & Text1.Text
MsgBox "RECORD HAS BEEN DELETED SUCCCESSFULLY", vb Information, "Deleted" rs3.Update clear Call reset End If If Combo1.Text = "GK" Then cn.Execute "delete from admingk where no=" & Text1.Text MsgBox "RECORD HAS BEEN DELETED SUCCCESSFULLY", vb Information, "Deleted" rs4.Update clear Call reset End If End Sub Private Sub command4_Click() Load Form4 Form4.Show Unload Me End Sub Private Sub Command5_Click() If Combo1.Text = "SPORTS" Then rs1.MoveNext If rs1.EOF Then rs1.MoveFirst End If Call display End If If Combo1.Text = "SCIENCE" Then rs2.MoveNext If rs2.EOF Then rs2.MoveFirst End If Call display End If If Combo1.Text = "SOFTWARE" Then rs3.MoveNext If rs3.EOF Then rs3.MoveFirst End If Call display End If If Combo1.Text = "GK" Then rs4.MoveNext
If rs4.EOF Then rs4.MoveFirst End If Call display End If End Sub Private Sub Command6_Click() If Combo1.Text = "SPORTS" Then rs1.MovePrevious If rs1.BOF Then rs1.MoveLast End If Call display End If If Combo1.Text = "SCIENCE" Then rs2.MovePrevious If rs2.BOF Then rs2.MoveLast End If Call display End If If Combo1.Text = "SOFTWARE" Then rs3.MovePrevious If rs3.BOF Then rs3.MoveLast End If Call display End If If Combo1.Text = "GK" Then rs4.MovePrevious If rs4.BOF Then rs4.MoveLast End If Call display End If End Sub
Private Sub Command7_Click() Call clear If Combo1.Text = "SPORTS" Then
rs1.MoveLast a = Trim(rs1.Fields(0)) Text1.Text = Val(a) + 1 End If If Combo1.Text = "SCIENCE" Then rs2.MoveLast a = Trim(rs2.Fields(0)) Text1.Text = Val(a) + 1 End If If Combo1.Text = "SOFTWARE" Then rs3.MoveLast a = Trim(rs3.Fields(0)) Text1.Text = Val(a) + 1 End If If Combo1.Text = "GK" Then rs4.MoveLast a = Trim(rs4.Fields(0)) Text1.Text = Val(a) + 1 End If End Sub Private Sub Command_Click() Call reset Combo1.Enabled = False Text1.Visible = True RichTextBox1.Visible = True Text2.Visible = True Text3.Visible = True Text4.Visible = True Text5.Visible = True Label1.Visible = True Label2.Visible = True Label3.Visible = True Label4.Visible = True Label5.Visible = True Label6.Visible = True Label7.Visible = True Command1.Visible = True Command2.Visible = True Command3.Visible = True Command4.Visible = True Command5.Visible = True Command6.Visible = True
Command7.Visible = True If Combo1.Text = "SPORTS" And rs1.RecordCount = 0 Then MsgBox ("SPORTS DATABASE IS EMPTY") Text1.Text = 1 ElseIf Combo1.Text = "SPORTS" Then rs1.MoveLast a = Trim(rs1.Fields(0)) Text1.Text = Val(a) + 1 End If If Combo1.Text = "SCIENCE" And rs2.RecordCount = 0 Then MsgBox ("SCIENCE DATABASE IS EMPTY") Text1.Text = 1 ElseIf Combo1.Text = "SCIENCE" Then rs2.MoveLast a = Trim(rs2.Fields(0)) Text1.Text = Val(a) + 1 End If If Combo1.Text = "SOFTWARE" And rs3.RecordCount = 0 Then MsgBox ("SOFTWARE DATABASE IS EMPTY") Text1.Text = 1 ElseIf Combo1.Text = "SOFTWARE" Then rs3.MoveLast a = Trim(rs3.Fields(0)) Text1.Text = Val(a) + 1 End If If Combo1.Text = "GK" And rs4.RecordCount = 0 Then MsgBox ("GK DATABASE IS EMPTY") Text1.Text = 1 ElseIf Combo1.Text = "GK" Then rs4.MoveLast a = Trim(rs4.Fields(0)) Text1.Text = Val(a) + 1 End If End Sub Private Sub Command8_Click() Unload Me End Sub Private Sub Form_Load() Text1.Visible = False RichTextBox1.Visible = False Text2.Visible = False
Text3.Visible = False Text4.Visible = False Text5.Visible = False Label1.Visible = False Label2.Visible = False Label3.Visible = False Label4.Visible = False Label5.Visible = False Label6.Visible = False Label7.Visible = False Command1.Visible = False Command2.Visible = False Command3.Visible = False Command4.Visible = False Command5.Visible = False Command6.Visible = False Command7.Visible = False End Sub Private Sub display() If Combo1.Text = "SPORTS" Then Text1.Text = rs1.Fields(0) Combo1.Text = rs1.Fields(1) RichTextBox1.Text = rs1.Fields(2) Text2.Text = rs1.Fields(3) Text3.Text = rs1.Fields(4) Text4.Text = rs1.Fields(5) Text5.Text = rs1.Fields(6) End If If Combo1.Text = "SCIENCE" Then Text1.Text = rs2.Fields(0) Combo1.Text = rs2.Fields(1) RichTextBox1.Text = rs2.Fields(2) Text2.Text = rs2.Fields(3) Text3.Text = rs2.Fields(4) Text4.Text = rs2.Fields(5) Text5.Text = rs2.Fields(6) End If If Combo1.Text = "SOFTWARE" Then Text1.Text = rs3.Fields(0) Combo1.Text = rs3.Fields(1) RichTextBox1.Text = rs3.Fields(2) Text2.Text = rs3.Fields(3)
Text3.Text = rs3.Fields(4) Text4.Text = rs3.Fields(5) Text5.Text = rs3.Fields(6) End If
If Combo1.Text = "GK" Then Text1.Text = rs4.Fields(0) Combo1.Text = rs4.Fields(1) RichTextBox1.Text = rs4.Fields(2) Text2.Text = rs4.Fields(3) Text3.Text = rs4.Fields(4) Text4.Text = rs4.Fields(5) Text5.Text = rs4.Fields(6) End If End Sub REPORT GENERATION:
Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Private Sub Command1_Click() DataGrid1.Visible = True Set DataGrid1.DataSource = rs2 End Sub Private Sub command2_Click() DataGrid1.Visible = True Set DataGrid1.DataSource = rs1 End Sub Private Sub command3_Click() DataGrid1.Visible = True Set DataGrid1.DataSource = rs3 End Sub Private Sub command4_Click() Load Form1 Form1.Show Unload Me End Sub
Private Sub Form_Load() Set cn = New ADODB.Connection If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs1.Open "select * from quizuser", cn, adOpenDynamic, adLockOptimistic rs2.Open "select * from quizadmin", cn, adOpenDynamic, adLockOptimistic rs3.Open "select * from rank order by mark desc", cn, adOpenDynamic, adLockOptimistic End Sub REGISTRATION: Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim s As String Dim flag As Integer
Private Sub Command1_Click() rs.AddNew rs.Fields(0) = Text1.Text rs.Fields(1) = Text2.Text rs.Fields(2) = Text3.Text rs.Fields(4) = Combo1.Text rs.Fields(5) = Text5.Text rs.Update MsgBox ("RECORD ADDED") Load Form5 Form5.Show Unload Me End Sub Private Sub command2_Click() Load Form5 Form5.Show Unload Me End Sub Private Sub Form_Load() Set cn = New ADODB.Connection If cn.State = 1 Then
cn.Close End If cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs.Open "select * from quizuser", cn, adOpenD ynamic, adLockOptimistic End Sub
RULES AND REGULATION:
Private Sub Command1_Click() Load Form8 Form8.Show Unload Me End Sub Private Sub command2_Click() Load Form1 Form1.Show Unload Me End Sub CATEGORY SELECTION: Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Dim rs4 As New ADODB.Recordset
Private Sub Command1_Click() rs1.MoveFirst Form9.Text1.Text = rs1.Fields(0) Form9.Label2.Caption = rs1.Fields(1) Form9.RichTextBox1.Text = rs1.Fields(2) Form9.Option1.Caption = rs1.Fields(3) Form9.Option2.Caption = rs1.Fields(4) Form9.Option3.Caption = rs1.Fields(5) Load Form9 Form9.Show Unload Me End Sub
Private Sub command2_Click() rs2.MoveFirst Form9.Text1.Text = rs2.Fields(0) Form9.Label2.Caption = rs2.Fields(1) Form9.RichTextBox1.Text = rs2.Fields(2) Form9.Option1.Caption = rs2.Fields(3) Form9.Option2.Caption = rs2.Fields(4) Form9.Option3.Caption = rs2.Fields(5) Load Form9 Form9.Show Unload Me End Sub Private Sub command3_Click() rs3.MoveFirst Form9.Text1.Text = rs3.Fields(0) Form9.Label2.Caption = rs3.Fields(1) Form9.RichTextBox1.Text = rs3.Fields(2) Form9.Option1.Caption = rs3.Fields(3) Form9.Option2.Caption = rs3.Fields(4) Form9.Option3.Caption = rs3.Fields(5) Load Form9 Form9.Show Unload Me End Sub Private Sub command4_Click() rs4.MoveFirst Form9.Text1.Text = rs4.Fields(0) Form9.Label2.Caption = rs4.Fields(1) Form9.RichTextBox1.Text = rs4.Fields(2) Form9.Option1.Caption = rs4.Fields(3) Form9.Option2.Caption = rs4.Fields(4) Form9.Option3.Caption = rs4.Fields(5) Load Form9 Form9.Show Unload Me End Sub Private Sub Command5_Click() Unload Me End Sub
Private Sub Form_Load() Set cn = New ADODB.Connection If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs1.Open "select * from adminsports order by no", cn, adOpenDynamic, adLockOptimistic rs2.Open "select * from adminscience order by no", cn, adOpenDynamic, adLockOptimistic rs3.Open "select * from adminsoft order by no", cn, adOpenDynamic, adLockOptimistic rs4.Open "select * from adminGK order by no", cn, adOpenDynamic, adLockOptimistic End Sub
QUESTION BANK:
Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Dim rs4 As New ADODB.Recordset Dim a As Integer Dim total As Integer Private Sub Command1_Click() If Label2.Caption = "SPORTS" Then If Option1.Value = True And Trim(Option1.Caption) = Trim(rs1.Fields(6)) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option1.Value = False And Trim(Option1.Caption) = Trim(rs1.Fields(6)) Then MsgBox ("ANSWER IS WRONG") End If If Option2.Value = True And Trim(Option2.Caption) = Trim(rs1.Fields(6)) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option2.Value = False And Trim(Option2.Caption) = Trim(rs1.Fields(6)) Then MsgBox ("ANSWER IS WRONG") End If If Option3.Value = True And Trim(Option3.Caption) = Trim(rs1.Fields(6)) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option3.Value = False And Trim(Option3.Caption) = Trim(rs1.Fields(6)) Then
MsgBox ("ANSWER IS WRONG") End If rs1.MoveNext Call display ElseIf Label2.Caption = "SCIENCE" Then If Option1.Value = True And Trim(Option1.Caption) = Trim(rs2.Fields(6)) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option1.Value = False And Trim(Option1.Caption) = Trim(rs2.Fields(6)) Then MsgBox ("ANSWER IS WRONG") End If If Option2.Value = True And Trim(Option2.Caption) = Trim(rs2.Fields(6)) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option2.Value = False And Trim(Option2.Caption) = Trim(rs2.Fields(6)) Then MsgBox ("ANSWER IS WRONG") End If If Option3.Value = True And Trim(Option3.Caption) = Trim(rs2.Fields(6)) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option3.Value = False And Trim(Option3.Caption) = Trim(rs2.Fields(6)) Then MsgBox ("ANSWER IS WRONG") End If rs2.MoveNext Call display ElseIf Label2.Caption = "SOFTWARE" Then If Option1.Value = True And Trim(Option1.Caption) = rs3.Fields(6) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option1.Value = False And Trim(Option1.Caption) = rs3.Fields(6) Then MsgBox ("ANSWER IS WRONG") End If If Option2.Value = True And Trim(Option2.Caption) = rs3.Fields(6) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option2.Value = False And Trim(Option2.Caption) = rs3.Fields(6) Then MsgBox ("ANSWER IS WRONG") End If If Option3.Value = True And Trim(Option3.Caption) = rs3.Fields(6) Then MsgBox ("ANSWER IS CORRECT") Call marks
ElseIf Option3.Value = False And Trim(Option3.Caption) = rs3.Fields(6) Then MsgBox ("ANSWER IS WRONG") End If rs3.MoveNext Call display ElseIf Label2.Caption = "GK" Then If Option1.Value = True And Trim(Option1.Caption) = rs4.Fields(6) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option1.Value = False And Trim(Option1.Caption) = rs4.Fields(6) Then MsgBox ("ANSWER IS WRONG") End If If Option2.Value = True And Trim(Option2.Caption) = rs4.Fields(6) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option2.Value = False And Trim(Option2.Caption) = rs4.Fields(6) Then MsgBox ("ANSWER IS WRONG") End If If Option3.Value = True And Trim(Option3.Caption) = rs4.Fields(6) Then MsgBox ("ANSWER IS CORRECT") Call marks ElseIf Option3.Value = False And Trim(Option3.Caption) = rs4.Fields(6) Then MsgBox ("ANSWER IS WRONG") End If rs4.MoveNext Call display End If End Sub Private Sub Form_Load() If cn.State = 1 Then Set rs1.ActiveConnection = Nothing Set rs2.ActiveConnection = Nothing Set rs3.ActiveConnection = Nothing Set rs4.ActiveConnection = Nothing rs1.Close rs2.Close rs3.Close rs4.Close cn.Close End If Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs1.Open "select * from adminsports order by no", cn, adOpenDynamic, adLockOptimistic rs2.Open "select * from adminscience order by no", cn, adOpenDynamic, adLockOptimistic rs3.Open "select * from adminsoft order by no", cn, adOpenDynamic, adLockOptimistic rs4.Open "select * from admingk order by no", cn, adOpenDynamic, adLockOptimistic total = 0 End Sub Private Sub marks() total = Val(total) + 10 Form10.Text2.Text = total End Sub Private Sub display() Call ref If Label2.Caption = "SPORTS" Then If rs1.EOF = False Then Text1.Text = rs1.Fields(0) RichTextBox1.Text = rs1.Fields(2) Option1.Caption = rs1.Fields(3) Option2.Caption = rs1.Fields(4) Option3.Caption = rs1.Fields(5)
Else Load Form10 Form10.Show Form10.Text3.Text = Label2.Caption Unload Me Exit Sub End If End If If Label2.Caption = "SCIENCE" Then If rs2.EOF = False Then Text1.Text = rs2.Fields(0) RichTextBox1.Text = rs2.Fields(2) Option1.Caption = rs2.Fields(3) Option2.Caption = rs2.Fields(4) Option3.Caption = rs2.Fields(5) Else Load Form10
Form10.Show Form10.Text3.Text = Label2.Caption Unload Me Exit Sub End If End If If Label2.Caption = "SOFTWARE" Then If rs3.EOF = False Then Text1.Text = rs3.Fields(0) RichTextBox1.Text = rs3.Fields(2) Option1.Caption = rs3.Fields(3) Option2.Caption = rs3.Fields(4) Option3.Caption = rs3.Fields(5) Else Load Form10 Form10.Show Form10.Text3.Text = Label2.Caption Unload Me Exit Sub End If End If If Label2.Caption = "GK" Then If rs4.EOF = False Then Text1.Text = rs4.Fields(0) RichTextBox1.Text = rs4.Fields(2) Option1.Caption = rs4.Fields(3) Option2.Caption = rs4.Fields(4) Option3.Caption = rs4.Fields(5) Else Load Form10 Form10.Show Form10.Text3.Text = Label2.Caption Unload Me Exit Sub End If End If End Sub Private Sub ref() Option1.Value = False Option2.Value = False Option3.Value = False End Sub
RESULT GENERATION:
Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim a As Integer Private Sub Command1_Click() cn.Execute "insert into rank values('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "')" Form11.Command1.Visible = True Form11.Command4.Visible = True Form11.DataGrid1.Visible = True Load Form11 Form11.Show Unload Me End Sub Private Sub Form_Load() If cn.State = 1 Then cn.Close End If Set cn = New ADODB.Connection cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs1.Open "select * from rank order by mark desc", cn, adOpenDynamic, adLockOptimistic End Sub REPORT GENERATION:
Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Private Sub Command1_Click() DataGrid1.Visible = True Set DataGrid1.DataSource = rs3 End Sub Private Sub command4_Click() Load Form1 Form1.Show Unload Me
End Sub Private Sub Form_Load() Set cn = New ADODB.Connection If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=quiz_sys;User=root;Password=;Option=3;" rs1.Open "select * from quizuser", cn, adOpenDynamic, adLockOptimistic rs2.Open "select * from quizadmin", cn, adOpenDynamic, adLockOptimistic rs3.Open "select * from rank order by mark desc", cn, adOpenDynamic, adLockOptimistic End Sub
6.3 SCREEN SHOTS:
Fig 6.3.1 MAIN FORM
Fig 6.3.2 ADMINISTRATOR AUTHENTICATION
Fig 6.3.3 QUESTION GENERATION
Fig 6.3.4 QUESTION GENERATION REPORT GENERATION
Fig 6.3.5 REGISTRATION
Fig 6.3.6 RULES AND REGULATION
Fig 6.3.7 CATEGORY SELECTION
Fig 6.3.8 QUESTION BANK
Fig 6.3.9 RESULT GENERATION
Fig 6.3.10 REPORT GENERATION
CHAPTER 7 7. TESTING 7.1 INTRODUCTION: Testing is a set of activities that can be planned in advance and conducted systematically testing requires that the developer discard preconceived notations of the correctness of the software just developed and overcome a conflict of interest that occurs when errors are encountered. Testing also provides the main objective of our project and understand the risk of implementation. Testing is a process of technical investigation, performed on behalf of stakeholder, that is intended to reveal quantity related information about the product with respect to the context in which it is intended to operate. Testing is the process of executing a program or an application with an intent of finding an error or bugs. Testing can be stated as the process of validating and verifying that a software program/application/product:
7.2 TEST PLAN: Test plan will describe about the scope and activities of our modules in the project .We must plan the test plans in the starting of our project. It will provide a unique identifier for our document. Testing should begin in “small” and proceeds in the “large”. Exhaustive testing is not possible. Provides an overview of our test plan. Specify the goals/objectives/constraints. Our project has eight modules. So, we will do testing from the starting phase itself .The main aim of test plan is to produce a correct code with all users requirements satisfied.
7.2.1 UNIT TESTING: Unit testing is used to test or verify the functionality of specific section of code. This is written by the developers to ensure that specific function is working or not. A unit is the smallest part of an application. Unit tests are created by programmers or occasionally by white box testers during the development process.
7.2.2 INTEGRATION TESTING: Integration testing (sometimes called Integration and Testing, abbreviated "I&T") is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing . Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. Integration testing is a type of software that seeks to verify the interface between components. The components are integrated in an iterative way. Integration testing will allow the interface to find the issues more quickly and fixed. It works to expose defects in the interfaces and interaction between integrated components (Modules). TEST CASE FOR END USER: If the user is just visiting our website then he /she can ac cess only the home page. TEST CASE FOR LOGIN: If the user has joined into our website they will be provided wih an user id And using that they can access their account. TEST CASE FOR CREATE SESSION: If the user wants to take a test then they can login as user and select their category and can proceed to next step.
7.2.3 VALIDATION TESTING: While verification is a quality control process, quality assurance process carried out before the software is ready for release is known as validation testing. The validation testing goals is to validate and be confident about the software product or system, that it fulfills the requirements given by the customer. The acceptance of the software from the end customer is also a part of validation testing. Validation testing answers the question, "Are you building the right software
system". Another question, which the entire process of validation testing in software engineering answers is, "Is the deliverable fit for purpose". In other words, does the software system provide the right solution to the problem. Therefore, often the testing activities are introduced early in the software development life cycle. The two major areas, when validation testing should take place are in the early stages of software development and towards the end, when the product is ready for release. In other words, it is acceptance testing which is a part of validation testing.
CHAPTER 8 FUTURE ENHANCEMENTS o The main aim of our project is create a good interaction between the student and teacher. o We are trying to do the project at best level to satisfy all the end users (i.e, student/faculty). o In our future we are decided to provide more security to our website which may not be hacked. o And we give the choice to student to add their name under the faculty who they wish and get advice for their betterment. o It will be more empowering. o Next we are aiming to provide some online classes in to our website.