IntroductionHow many a times have we talked about the importance of computer in our lives? But, the true question that arises is that how actually we can use computers to make our lives easier. Obviously, we can say that a computer is responsible for our daily activities. However, I felt that having an opportunity to use my initial programming skills to make a computer that could benefit my school library or possibly other libraries all around the world. How would my program help libraries and what are the facts lacking in present library systems, well, as you read through and use my library database, you are sure to find out. Problem Identification Going to the library and finding one book out of a possible million is always a strenuous job especially for students and teachers in a school like ours, who out of their possible 1 hour break, spend a minimum of 30 minutes just searching for the precise book they want to read. The more unique and diversified the collection of books in a database, the more difficult it is to actually find a book. Through the creation of my database, I aim to solve all the problems that a library might have to face in the terms of organization and location of their books. Let us first see what exactly are the problems faced by libraries that they need to solve. 1. KEEPING a RECORD OF ALL THE BOOKS- every library in the world has to keep a record of all the books it has so that books can be borrowed, viewed and modified. 2. SEARCHING THE BOOK- searching for a specific book out of many can sometimes be a timetaking and boring job, especially in some massive libraries which are spread over a few floors such as in universities, public libraries or even a library on a smaller scale, such as our school library. Searching for a book in our school library has always been a dilemma and disturbance to readers. Sometimes, the person might not name of the book but other details about the book such as the author or publication or just what subject is linked to. The only way to do these in many libraries is a manual search in the given section. In such a case, it becomes all the more difficult to search for a book. 3. ADDING NEW BOOKS- in any library, it is quite obvious that new books would enter the library every week or every month and if a library is not able to keep adding new books to its collection maybe called a poor library. 4. MODIFICATION OF EXISITING RECORDS- just like the addition of books in the database, it is always important to modify the records of the books if any mistake is made. Modification of data is important for the accuracy of the data. 5. DELETING THE BOOK FROM THE DATABASE- it is sometimes essential to delete a book from the record because of anonymous reasons. A good library system should have an option to be able to delete any book record at any point of time. 6. TRAINING STAFF- on the addition of new librarians or employees in the library, it is essential for them to know all the books in their library and their location in the library. This could be an extremely difficult job for a normal person in a manual record system as he or she would keep flipping pages of a manual record book to help a student search for a book. 7. ALLOWING AUTHORIZED ACCESS (PROTECTION OF DATA)- some books, such as reference books in a school library are not allowed to be viewed by students but only be teachers. Also, not everyone is allowed to come and add, delete or modify the records of books in a library. EXISTING SOLUTION OT THE PROBLEMAs of today, our library is divided into various sections (genres) over a relatively large area and in our school library; there is only a manual record of books. The problem with this is that the records could end up to be thick books kept with the library. The only source for information about a book in the library would be the librarian who would have all the information about the books. What are its disadvantages? a) This means that as for searching the books, the only way a student or teacher can search for a book is that either he manually looks through the library in search for a particular book which might not even be present in the library or another alternative to this would be to ask the librarian or staff member. However, the staff member themselves will not be able to tell the readers much about the book as they to as human beings do not have unlimited memory and only a manual record of all the books. They would only be to help users find the book if they can provide a lot of information about the book. Therefore, this would also be very inaccurate and it would not be a very surprising that if a student would go to the librarian and ask him the name of the book, he would not know. Therefore, searching for a book, manually, in a huge library with a million books can be a very hectic job. Thus, a student who is looking for a book of a particular subject can only go to the genre (section) it belongs to in the library and then search manually. b) Adding new books to a manual record is always a difficult job for the librarian. First of all, he or she will have to add that book in the manual record of the school’s database and then to inform users and search for this book would be even a greater difficulty. On the addition of new books, the staff needs to be informed so that they can help users find the newly added book. c) Talking about the modification of data in a manual system, it can become very messy and difficult as first of all searching for the book to be modified will take a lot of time and then making the changes would also be difficult. However, modification is a must to maintain the accuracy of the information. As in addition, all the staff has to be informed about the modifications made to nay book in the database. A similar condition occurs in the deleting or removal of a book form the database as well. d) Besides the major difficulties of searching and modifying the data of books in a library manually, I feel that the most important problem that a library which does not have a computerized system faces in the training of staff. Every library clearly has more than a few thousand books and it is not possible for any human to possibly locate any book named out of the thousand. In fact, even a librarian who has been in the library for many years might only be able to assist in finding a few hundred books. Therefore, any new staff will have to be trained immensely over a long period of time so that they can have some idea of the books in the library and towards which part of the library do which books lie (for example, which part of the library has physics book, which has past examination question books). e) The last problem that I feel would be faced by the existing manual solution to the school library is the protection of data. Any of the information of the books can easily be modified by anyone as it does not have any protection. It is because of this reason that I feel manual systems can become extremely unreliable and this is a major drawback. ALTERNATIVE SOLUTION TO THE PROBLEM: As a computer student, I decided that having an opportunity to use my newly acquired computer programming skills as part of my IGCSE coursework, I could create a program that could help my school and possibly other libraries around the world to organize their books systematically and properly. Therefore, I decided to create a library database using visual fox pro for my computer project as part of my IGCSE coursework which would also prove to be a perfect alternative and solution to the problem of maintaining the records of books in a library. Using an automated computerized program to keep and maintain the record of the books can have various advantages and when compared to the existing manual situation, this can seem to be extremely useful and worth paying for… what are the advantages of using a computerized system such that it solves the above problems? Here are just a few points. a) Maintaining a database of all the books on a computer is extremely useful. First of all, the memory of a computer is incomparable and extremely high and a good computer can hold extremely large amounts of data without harming the speed much. Compared to a manual system, a computer’s memory is much more and the use of it avoids any human errors. b) When searching the data in a manual system as the one I mentioned above, time becomes a major factor and there is a serious wastage of time in the selection of a particular book. In a good computerized system (one that is installed and located in various points in a library), one can easily come, type the name of the book, he or she wants to read, look at its details and move on to find that book. This is a simple, cheap and time-saving concept of searching books in a database. Another major problem that occurs is that students sometimes know very little about the book that they wish to search, for example only the name of the author. In such a case, it becomes all the more difficult to locate the book in the huge library manually. However, with the use of the computerized system, the student has various options with which he might want to search for the book. c) Adding to the existing records can be of much ease in a computerized system. When an option (such as in my solution to the problem) is available, an authorized user (mentioned further on) can easily login, enter the details of the new book and save it in the existing database. There is no need to inform anybody about this new book as anybody who wants any information about the book can easily enter the library database and search for the required book. d) Similar to addition of books, is the modification and deletion of the record of books. Once again, if required, an authorized user can login, make changes and save those changes in the database. These changes do not need to be remembered by the librarian or staff as if wanted to view, can easily be seen on the updated database. When books are removed from the library, the same thing happens as the user can come and remove the records of the book. As a result, nobody will be uselessly looking through the books to find one which is not even there. He can simply enter the name of the book he wishes to read and if it is not there or deleted, he will not be wasting his time, manually searching it. e) Besides the obvious facts that a computerized system will help in keeping a record of all the books and help to maintain the accuracy of data through the ease of modification, I feel that one of the most important advantages as compared to the manual system would be the training of staff. In a manual system, the staff needs to be extremely familiar with the library and they have to know the names of the books or flip through papers to find details about any book. However, if an automated computer system is in place, anybody, who knows the basics of how to use a computer, can help a student or a teacher find a book. There is no longer a need to learn the name and position of any book in the database. Also, if the staff needs to be trained in order to add the records of books (if new books are entered to the database), they can be easily told to do this using the computer. The entire system removes the margin of human errors and even if mistakes are made, they can be easily removed. f) Protection to data has always been a question mark in any firm or organization. Nobody wants to let disclose information about the information that must be know to only some people or as a matter of fact, allow people to modify this information without privileged access. In a manual system, there is not data protection, whereas in a computerized system, only a few selected people will be allowed to make changes to the records of the database. Therefore, there are various advantages of an automated computerized library database and this is what I wished to create for my project. The various advantages of this database would benefit all libraries especially my school and make life easier for librarians, students and teachers. OBJECTIVES: Through the creation of a computerized library database such as this, I had various objectives: 1. To help our library create a record of all their books on a computer so that it is free and easy for anyone to look into. 2. To help readers, students and teachers to search for books on the basis of anything they want (such as name, author, subject, teacher etc.), eliminating the need to manually go and look into the library. 3. To save time. In our school, there is only a 45 minute break and for a few library classes, only an hour of time in their library. To locate for a specific book manually in such time can be a waste of precious time. However, searching for it instantly on the computer will save immense amount of time. 4. To help librarians maintain their records of books in the following ways a) ADD new books- the librarian can automatically type in the details of the new book s that have been entered in the database. B) MODIFY existing records- the librarian can modify and change any incorrectly entered records or any changes that have to be made to the information about the book. c) DELETE existing records – on the removal of a book from the library, it can easily be located on the database and then deleted permanently with ease. 5. To reduce the number of staff needed to be employed. Also, training of staff can also be done easily and not may are needed as the system becomes so user friendly that anyone can come and sue it without the need of help. However, the labour force would decrease tremendously with the use of an automated system and the few members of the staff can be trained easily. 6. To make it more convenient for the librarians and staff members as they do not need to remember anything about the books. They will have a computer to themselves and when asked about the book, they can search in the details and tell the reader, where in the library, the book is located. 7. To protect data easily. No modifications can be made to the details of the book unless the user has access to that area of the database with the use of a user name and password. 8. To reduce human errors. When there is no computer, there can be various mistakes made by people in telling anyone the details of the book. However, in a computerized system, any mistakes can be corrected with easy and there is no scope for human errors as a computer will only display he information entered to it. 9. To maintain accuracy of data. I would put in validation checks (such as type check, presence check and range check) which would not allow the user to enter ay wrong data. Also, data would be kept accurate as any modifications or changes are dealt with immediately so as to maintain the accuracy. PLANNINGChoosing the idea (Topic Planning)When I and my classmates were first told about the CS project, all of us were extremely fascinated by the idea. We all came up with a lot of different and unique ideas which matched our own interests. I myself came up with many ideas such as sports, Economics and Physics. I first thought about creating a database of cricket leagues around the world and then thought of a database of currency exchange rates and finally a database of the different football leagues in Europe. However, when I discussed with my Computer teacher, Sir Suresh, he told me that this would not be suitable as I was not solving any given problem. Then an idea struck me on spot. I am not a frequent reader or a fiction-lover, however, I often go to the library is search of books related to my classroom academics. However, I often face a lot of time problems and by the time I actually find the book, my break is over and I cannot read anything or practice anything from that book. This has always been a major disturbance to me and when I thought of this, I thought of the computerized library database which would solve all these problems of searching. When I told Sir Suresh my idea, he said that I can surely do that and so I finalized this topic. Planning of my MethodProject PlanningBefore I could go into the details of how actually I planned to create this library database, I decided to sit down and plan what all I was going to include in my database and what are the problems I intended to solve. Starting of, I first researched about all the problems that are actually faced by frequent library visitors and librarian themselves. Of course, the main problem which everyone talked about was the problem of searching for books in the vast quantity available in the library. However, I could not just talk about searching in the database. So when I talked to the head librarian of our school, she said that they always have a problem in maintaining the records of all the books. By this she meant that they had problem modifying the book details or deleting or even adding new books to the database. All these questions moved around in my mind until I decided that I could include all these points in my project. Therefore, after a detailed search and question rounds with book lovers and the librarian, I planned to include the following in my project. First of all, to help everyone in the school, I decided to include the main search form through which anyone could search books on the basis of name, author, subject or even the teacher in charge. This would be the most important part of the database as it would benefit everyone all around the school. As I talked to the librarians of the problems they faced, I hoped to solve their problems as well through the database. Therefore, so that they could maintain an automated and computerized record of books, I created options for them so that they or any authorized teacher, can come and add new books to the library, modify the details of the existing book (such as if it were moved to a different section in the library) or even delete books (in the rare condition of the removal of the book from the library). All these options would reduce a lot of the labour work for our school library and teachers. However, some students may misuse the system if I would allow anyone to come and change the details about the book. It is because of that reason that I decided to make a security form so that only selected users can come in and modify, add or delete the data. Therefore, if any teacher would have access to this, they must have the user name and password and so this option completely removed the danger of as student harming the record. When thinking about this option that I had just planned, another thought struck me. What if there is a new teacher or librarian or staff member whom the school wishes to give privileged access. In that case, how will the new user login? For this problem, I also decided to create an admin account whose sole purpose would be to the come in and add new members (teachers or librarians) to the database by giving each one their own user name and password. If the admin by any chance wanted to access and modify the books himself, there would of course always be the option of them just logging in via the teacher’s account. However, the sole purpose of the admin’s account would be to add new members. Therefore, I decided to bring in these factors into the database so that I would solve all problems in existing manual libraries. Information gatheringIn order to add a bit of the initial data, I looked into a few of the books in the library and noted their details on my computer. As I did not have much time, I also took the details of books at my own house as well as my friend’s house but I assured the fact that these books were there in my school library. I added about 25 books initially to the database so that they would be accurate and so that I could test the program which I would have created. Software planningWhen we were first told about this project, there were various softwares from which we could choose. We were told about Visual Basic, Visual FoxPro and Microsoft Access. However, before I thought about using any other software, I thought that Visual FoxPro would be best for me because of various reasons. 1. I had been using this software for 2 years and my teacher told me that I had been doing an extremely good job in it. 2. I was comfortable and familiar with all the functions of this software. 3. I, as a student, had been learning about this software and would learn more as in school as this was the only program being taught in school. 4. I had already created a program as part of my school project before and could reuse some of the commands (i.e, the security login) 5. I would not be needing much help, where as if I would shift the software, I would be requiring much more effort and time to spend on it. 6. The only drawback, I feel, of using Visual Foxpro is that the project is very simple in design as there are not many options to make it attractive. Time Planning This project was being carried out over an extremely long time. I decided to start this project of in the middle of my Grade 10 first term. However, later I realized the fact from planning that the entire project would take me more than 2 months to complete. The former is the time I decided to branch out for each particular section: a) Choosing the topic- after a lot of thought as I mentioned above, I finalized the topic of my project which had to be a good one as it was going to go on for the whole 2 months. This would take me approximately 3-4 days. b) Recognizing the problem with the present library system- once again, as I mentioned earlier, I used to go to the library and talk to he librarians with what exactly the problem was that they faced. Also, I used to ask my friends who used to go to the library about what their ‘book searching’ problems actually were. This entire process would not take me more than 2 of my break times in school. c) Planning the project- to see what exactly my program will intend to do (as mentioned above). This would take me a lot of time and I thought about 4-5 days. d) Gathering the Data- I chose all the books whose details I decided to add. This would not take me more than 2 days. e) Choosing the Software- once I had finalized everything about the problems my computerized database should solve, I had various options for the selection of the program with which I was going to make the database. This selection was extremely important as it was the basis of my entire project and therefore I looked into the pros and cons of each and every software available to me. By deciding to ask a few people and through teacher’s assistance, I decided to take out 2 days for this part of my project. f) Making the tables (adding the data) and forms- the tables were the first and most important step in the making of my project. The various tables are the basis on which all the outputs are processed and so this had to be done accurately. I feel that making the forms would be the most strenuous job as there would be numerous forms throughout the entire project. In each one, I had to add command boxes, labels, text boxes, combo boxes and various other things to meet the demands of my library database. This would be the first part of my major project and I feel that this would take me wound about 8 days to complete. g) Adding the algorithms- this, I feel would be the part of my project which would be most difficult and time-consuming. Using proper variables and algorithms require a lot of logic and high level thinking. Sometimes, I have head that you can get stuck for hours and still not find a way out. It is because of this reason that I decided to take out 10 days for this part of my coursework. h) Testing all the algorithms and debugging- after I had added all the algorithms, I would want to check whether it was displaying all the information as I wanted to. I gave the computer all sorts of correct and incorrect data (mentioned further in testing) to see if it gave me the desired output. This would also take a lot of time as I might have to make many changes because of the wrong results I obtained (debugging). I took out a whole week for debugging my program. i) Designing the software- after, I was satisfied with the working of the entire program; I decided to make my project look attractive so that it can be displayed in the library. Also, I had to take screen shots of my entire project in my report. This would take me a good 4 days. j) Documentation and report making- finally, I had to make the entire report and user and technical documentation. I feel that it is this part of the project that would take out most of my time. As I said, it would take me the most time and so I though of two weeks for this assignment. Gannt ChartFollowing is a gannt chart summarizing my time spent on the various aspects of my project. SOFTWARE REQUIREMENTSHARDWARE REQUIREMENTSImplementationEntire Flow Chart of how my project works- DescriptionThe above is a basic flowchart showing the exact functions that my library database would carry out so that it would be worth implementing. Although this is explained in detail later on, this is a brief summary so that it can be implemented easily. When the user first enters the database, there will be an option for him to enter as a teacher, student or admin. If he enters as a student, he can search any book on the basis of name, author, subject and teacher in charge. This is a huge benefit as many a times; students do not know the name of the book but other primary details about the book. Another option with which the user can login is as a teacher or authorized librarian. However, this is only for privilege users as not everyone can come in and just modify the books. People who are allowed to enter into this part of the database have access to adding new books, modifying existing books and deleting old books. This is of utmost importance in a library database. One major option which cannot be forgotten is the case when a new teacher or librarian joins the school. So that, this person can also have access to modifying records, he or she must get their own user name and password to go past the security form. This is made possible through the admin account where the admin of the school can enter to let new people into the database.