AppHUE Timetable System

October 1, 2017 | Autor: Patrick Bard | Categoria: Information Systems, Human Computer Interaction, Web Design
Share Embed


Descrição do Produto

AppHUE Timetable System Alexandre Madrini, Carlos Silva, Giulia Reato, Henrique Borges, Henrique Jung, Patrick Bard 2014

Abstract This report consist of the development, evaluation and quality assessment of a web-based course selection system. This systems allows an admin to edit the databases containing the information about the department courses, degree, level, category and lecture time. And an user to select his/her enrolled courses and print them on a single timetable without clashes.

Contents Introduction . . . . . . . . . Design and implementation Development . . . . . . . . Design and implementation Evaluation . . . . . . . . . . Formative . . . . . . . Summative . . . . . . Quality . . . . . . . . . . . Conclusion . . . . . . . . . Bibliography . . . . . . . . Appendices . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

1

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

2 2 2 3 3 3 5 5 6 7 8

Introduction Our project consists of a web-based course selection system, developed to provide an online application where university students can freely choose their courses from different departments and years. The system will warn the users about possible timetable clashes. We gave the application the name AppHUE, a recursive acronym for Hue is a University Experiment. We used Goldsmiths, University of London as a source of data to fill the database and run our tests. We used our own experience as international students to motivate our work. Those students can freely pick any course of any departments, increasing the possibility of selecting courses that are running at the same time. These can generate timetable clashes among the students. With this system, we hope to make this process more straightforward and less bureaucratic. This report will cover our development process, our main challenges and describes the final product. The application itself is online at www.apphue.com.ur main challenges and describes the final product. The application itself is online at www.apphue.com.

Development post-mortem We developed this project based on agile principles, however, since it is a quite small software, not all of those may apply. We tried to follow the principles of Scrum, dividing the team in two groups. The first one were responsible to test what was developed by the other one. We had meetings in each two to see our progress on the development and test, when possible, what was already done. That worked fine, however we should have had more meetings. Some weeks were more productive than others, for example, the implementation of the timetable on the screen was difficult and took more time to finish. If we had met more often, maybe we could have solved that problem faster and more effectively.

Development The project was developed in the PHP script language with the help of the CakePHP framework[1]. CakePHP is one of the best PHP frameworks available since it is free and opensource, licensed under the MIT License; it also has a professional and demanding community working on. It implements all the features that are expected for a normal business PHP framework, with an easier approach to use. The framework provides conventions alongside guides to use them, which helps the development process. As we are using CakePHP, the project uses the MVC (Model, View, Controller) standard for implementation, making this a major role on development. Basically, the Controllers deal with the group functions; for instance, execute a query on a whole table and retrieve all its data assigning to accessible variables. Models have the singular options, such as the importance of database fields in a table; for example: to know if is possible to have a NULL field when trying to save a value. And the Views are the actual visualizations pages that the user will interact with.

2

Regarding SQL injection, since early versions CakePHP features integrated protection against this problem[2]. As we are using the most recent stable version, a good work on improving even more this was done by its community.

Design and implementation Our first idea was to use java to develop the project since it was the most known programming language, then we changed to PHP because some of us had already worked with this language and thought it would be easier. To create a user friendly design, Bootstrap was used to build the pages layout. It is consider a front-end framework and it is based on CSS and JavaScript to help web applications to become elegant and consistent. It prevents client mistakes by the way to display information, for example consistent notion of Warnings and Errors by colours. It was developed by Mark Otto and Jacob Thornton at Twitter, and its first concept was to maintain consistency. Since 2012, it is the most popular GitHub project (measured by star numbers), with more than sixty thousand followers and twenty thousand forks [3]. Bootstrap help us to achieve visual consistency. It has an easy layout to navigate, and help the user to avoid common errors. We can rely on its performance since it got tested by several major websites, including Twitter[4], considering this, users should be familiar with the key parts of the interface. It is context responsive: it works regardless of the screen size and resolution, handling both desktop computers and mobile devices. Finally it has a good documentation, with plenty of examples of usage. All that combined gave the project a boost in productivity. To implement the actual timetable creation, Helper classes were created (See Figure 1). They contain the methods used to create the timetable view. It begins creating the table space, then it checks which courses fit on which day. Arrange all the data and provide a visualization, if there were no clashes, it calls the pdf methods and provide the pdf file.

Evaluation We decided to divide our group into two subgroups with distinct functions. One for the development and another for the testing. Our main effort at beginning was to create a consistent and friendly user interface, because we were dealing with a web application.

Formative The major functions such as feeding and editing the database came all built in by the framework(See Figure 3). Thus, this functionalities had a low test priority, since all of them are well implemented by the community. Their tests were to guarantee that the framework installed and configured properly which consist on quick actions.

3

Figure 1: UML diagram of project Helpers, where the timetable creation functions are stored

A great amount of time was spent to assure easy accessibility and common errors preventions. We won’t allow user to execute task that they are not allowed to, such as delete information. Also prevent non users for gathering information. For example if a common user enter a non existent page, or a page that requires administrator access, an error is displayed (See Figure 2). Figure 2: Error example - user not authorized

Also, most part of the test was to ensure that our timetable was created correctly. With some lectures and labs on the database, tests were done in the following cases. Select courses, retrieve the table created and check the lectures times. Select courses that have a laboratory to check if they are well allocated on the time they should be. Also, when removing an option it also removes the lab if one exist. When a clash is reported it presents an error screen and the course overlaying each other as they should, and removing one of those courses removes the error as expected. The pdf version is only displayed when there are selections and they do not make a clash, and show a simple version of the same timetable selection. On all of the above tests, the project went successful at the end. 4

Summative When the development finished, the test was focused on the site functionality itself, using the small subset of courses we had. We conduct tests using possible users, in our case international students of Goldsmiths. We send a link and instruct them that all the system does is generate timetables. Our initial response was very positive, with all users managing to use the system with some minor confusion - mostly only temporary. On all those tests we just act as observers and did not give any further instruction, letting the interface speak for itself. Later, we realize that all our test base was from the computing area. We think we should have extended the testing to a broader audience. We also performed an automated stress testing on our system, using the Website Load Tool [5], which simulated 100 users access at once. The results showed that the average load time of each page increased from 3 seconds to 10 seconds; clearly noticeable but still could be solved with a better server. A known bug is to refresh a search with new parameters. It is needed to logout and login again, in that way it would create a new session to receive a new input. We could not pinpoint the reason of this because on previous tests it was behaving properly.

Quality Our main goals were: 1. Create a web interface and a cloud running program. 2. Provide an user-friendly system that allows a student to pick courses without generating clashes on the timetables. 3. If there are clashes, show some suggestions as options to solve that clash. The tests carried out after the final version of the application generated good results. The users could generate their timetables and avoid clashes, once the system automatically warns the user when a clash happens. The only requirement that we were not able to implement on the final system was suggesting other courses, in case of a clash. At first we thought about a tag system. We could tag a course on the database with some of its contents (e.g. Software Projects could be the tags development, coding, group projects, report writing) and if a clash occurs with that course we would suggest another courses that shares a number of same tags and does not cause a clash on the current timetable. The implementation of the first goal demanded more time that we expected, and dynamically suggest new courses were a problem difficult to reach, once the database were already established for the early tests. We could not agree on how to solve this problem.

5

Conclusion The timetable problem was a real issue we had been through and with this coursework we were able to create a software that help the user to find a solution to this problem, we learned a lot and discovered incredible tools as we implemented this project. We had some trouble on implementing the suggestions in case of a clash on the timetable, we were not able to reach an agreement on how to implement it in time, so we decided to remove this functionality of our project. Our functionality tests were simple as the system is not really complex, we fixed most of the bugs, but there is still one known bug when the user tries to do a new search for classes it always respond with the data of the first search the user made, unless the user re-enters the system. The application was not fully evaluated by the final user, we asked to other international students to test the software but it was not a significant amount of testers, even so they gave us positive feedback and some ideas (e.g. remove the hyperlink from the Error text from a clash) to aprimorate it.

6

Bibliography [1] CakePHP Website http://cakephp.org/, Retrieved on March 2014 [2] CakePHP Data Sanitization SQL Injection http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-WithCakePHP/Data-Sanitization.html, Retrieved on March 2014 [3] GitHub trending repositories https://github.com/search?q=stars%3A%3E1&s=stars&type=Repositories, Retrieved on March 2014 [4] Bootstrap from Twitter https://blog.twitter.com/2011/bootstrap-twitter, Retrieved on March 2014 [5] Website Load Tool http://websiteloadtool.codeplex.com/, Retrieved on March 2014 [6] D. Abramson, Constructing School Timetables Using Simulated Annealing: Sequencial and Parallel Algorithms. Management Science, 1991 [7] D. Costa, A Tabu Search algorithms for computing an operational timetable, European Journal of Operational Research, 1994 [8] H. Ueda, D. Ouchi, K. Takahashi, T. Miyahara, A Co-evolving, Timeslot/Room Assigment Genetic Algorithm Technique for Universities Timetabling, Lecture Notes in Computer Science, 2001 [9] M. P. Carrasco, M. V. Pato, A Comparison of Discrete and Continuous neural network Approaches to solve the Class/Teacher Timetabling Problem, European Journal of Operation Research, 2001 [10] A. Colorni, M. Dorigo, V. Maniezzo, Metaheuristics for high school timetabling. Computational Optimization and Applications, 1998 [11] W. Erben, J. Keppler, A genetic Algorithm Solving a Weekly CourseTimetabling Problem. Lecture notes in Computer Science, 1996 [12] S. K. Borges, Resoluo de timetabling utilizando algoritmos genticos e evoluo cooperativa, Master’s Degree for Computer Science, 2003 [13] P. Cowling, G. Kendall, L. Han, An investigation of a hyper heuristic genetic algorithm applied to a trainer scheduling problem, 2010 [14] V. A. Moura, R. A. Scaraficci, A GRASP Strategy for a more constrained school timetabling problem. International Journal Of Operational Research, 2010 [15] T. B. Cooper, J. H. Kingston, The Complexity of Timetable Construction Problems. Basser Department of Computer Science - University of Sidney, 1995

7

Appendices The next images presented are UML diagrams of the project. Text might be small to read, so please consider refer to the pdf version Figure 3: A UML view of the project Controllers

8

Figure 4: A UML view of the project Models

9

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.