Open-Source Daycare Management System Project Proposal Jason Butz University of Evansville December 3, 2009
Contents 1 Introduction 2 2 Technical Approach 2 2.1 Background.............................................. 2 2.1.1 Client Requirements..................................... 2 2.2 Proposed Solution.......................................... 2 2.2.1 High Level Design...................................... 3 3 Statement of Work 3 3.1 Task Definition............................................ 3 3.2 Schedule................................................ 3 4 Capabilities 4 4.1 Program Experience......................................... 4 4.2 Facilities................................................ 4 4.3 Personnel............................................... 4 5 Costs 4 Appendices 5 Appendix A................................................. 5 1
1 Introduction Many churches run a daycare service either during the week or when they hold services for their members. Software can be used to help ensure proper records are kept on the children. Proprietary software exists for this purpose however it can be expensive with the needed licensing fees and special hardware. I plan to write a cross-platform, open-source, application to assist in the maintaining of a daycare. This application will help by managing the information on the children such as where the children are located, any special needs, as well as who is permitted to get the child. It will use a database and webserver backend and will present an easy to use interface for children to be checked in and their information to be managed. 2 Technical Approach 2.1 Background There is a known program called Parent Pager that assists in the managing of a daycare. The licensing fees for Parent Pager is around $3000 a year. It is also not possible to customize Parent Pager with special features that may be needed in a certain environment. As such a free, open-source application could assist day-cares in lowering costs while not sacrificing the aid provided by computers. The Parent Pager program allows children to be placed into the system and then checked in and out while maintaining information about them such as their name and contact information. It also has the ability to contain other vital information such as allergies or dietary needs. Parent Pager also keeps records of attendance and who is able to check-out the child for security reasons. 2.1.1 Client Requirements Check children in and out of the system Maintain records on all children Basic identification information such as name, address birthday, and parents name Medical information such as allergies, medical conditions, and diet restrictions Security information such as who may pickup the child Allow for generation reports of attendance Be cross-platform 2.2 Proposed Solution I plan to create a PHP application which will run on a web server using a database back-end. This system will allow clients to navigate to a URL and run the application through a web browser. This will achieve the cross-platform aspect of the requirement since there are web browsers that will run on every environment. PHP is a good choice for the programming language since there are many web servers that can run it and it is able to run on many platforms. Using PHP, HTML, and CSS I plan to create a user-friendly interface to this system that will allow daycare staff to log-in and check children in and out of the system as well as update some information when it is deemed to be appropriate. The World Wide Web Consortium has standards for HTML and CSS and these standards are designed to encourage websites to work in all web-browsers and so it would be wise to make use of these standards to assist in interoperability. Using PHP and a database the application will be able to maintain a large number of records efficiently thus being able to have access to all of the information easily. The front-end that uses HTML and CSS will allow children to be checked in and out of the system easily with little to no computer knowledge required. The use of PHP will also allow for the generation of reports using entry from the user. In order to test the application I plan to setup the system on a small network and enter in a number of children and then bring in people and ask them to check in children when given a name and see if they are able to effectively navigate the interface with little to no prior exposure. I will then have multiple people come in and then have them all begin checking in students to ensure that no errors occur with multiple users. 2
2.2.1 High Level Design Database Tables to store information: Child Records Attendance Classes Staff / Workers Records of check-ins and check-outs PHP Back-end Allow for access to the database through a front-end Be constructed using object-oriented programming to allow for easy expansion in the future Provide an administrator section for managing of children, staff, records, and the design of the application HTML Front-end Pages to allow users to easily navigate the application and enter in information with ease 3 Statement of Work 3.1 Task Definition I will begin by designing the database portion on the program. The PHP code depends upon the database, and the front-end will use PHP. This means that the database must be the first part to be designed. I will begin with the child records since that is the most important area then proceed through the rest of the tables. Next the Front-End will need to be designed in order to allow for the back-end to meet its needs when trying to display content. After this the PHP classes will need to be designed. The settings and functions classes will be made first so that the other classes can effectively make use of them. The Report Generator will have a longer amount of time allocated to its design since it is reasonably complex and will allow for semi-custom reports to be generated. After this the test cases which will be used later shall be designed since we will know the types of data we will need. Next a time for rest will be allowed to prevent burn-out on the project. After that the implementation in PHP begins. This will be done in the same order as that of the design of the PHP program. Next the HTML and CSS will be created for the front-end of the entire program. Then the testing will begin, including testing the security to help prevent and major security holes such as SQL injection and PHP session hijacking since these can both cause wide-spread damage when taken advantage of. After that help files will be created in an on-line format, probably in a wiki format for upload to Google Code later on. After that everything will be uploaded to Google Code so that others can work on it in addition to myself. A Gantt Chart has been provided in Appendix A detailing the breakdown of tasks as well as a general overview of the schedule. 3.2 Schedule I am planning for the design of the database to be completed by October 6th. In this stage the SQL queries for the database will also be created. Next I begin the design of the Front-end. I have allowed 8 days for its completion, which means I should be finished on October 14th. Next comes the design of the PHP classes. This will take the longest amount of time. I have placed this completion date at December 3rd. After the time allocated for rest the implementation of the PHP program will begin. I have that set to begin on December 30th. I have it set to end on February 17th. Next is the actual creation of the HTML code for the front-end. That should be completed on February 22nd. Next comes testing, which is set to be completed on March 1st. After that help files will be created which should be done March 7th. Seven make-up days have 3
be allowed for tasks being delayed by sickness or technical malfunctions. Seven more days have be allowed for uploading and setting up of a Google Code project, which puts the final completion date at no later than March 21st. 4 Capabilities 4.1 Program Experience I have had more than 5 years of experience with PHP and MySQL. My first large project was a custom-made content management system. It used templates and loaded each page from a flat file and placed it into the page. A Daycare Management System in many ways is similar to the content management system. The pages must load dynamically with information from a database. I have also examined the code of several Web Bulletin Board Systems while writing modifications. These load all information from a database. The combination of these two systems results in something very similar to that of the daycare management system that I am proposing. I am also taking a course in Databases. The course covers the theory and design of databases. It should therefor prove a useful aid. 4.2 Facilities At the University of Evansville I have access to the Computer Science server, which runs an Debian-based Linux distribution. It has the Apache web-server and MySQL database servers installed on it. At the University of Evansville I also have access to several computer labs that could be used to simulate client machines. I also have access to another Linux-based server that runs at my home which has very few resources available upon it. It would therefor be good for testing on low-end hardware. I also have access to a web-hosting account that runs an unknown Linux distribution and has Apache and MySQL installed. All of these in combination with my own computer which has both Windows and Linux installed upon it should provide plenty of places to test and developthe application. 4.3 Personnel The only full-time personnel that will be working on this project will be myself, Jason Butz. I am a Computer Science major at the University of Evansville, and am in my senior year. Dr. Deborah Hwang has agreed to be the project adviser. I also have access to other professors and students all who have varying experiences. 5 Costs This project will have minimal costs since the main requirement is a computer to program and test on, and many are already available. The only possible cost could be that of any special devices that the client wants the application to be able to work with, such as a label printer for the children s names. 4
Appendix A 5