Malinthasa (talk | contribs) (This is the proposal document for the project "Event management system for Fedora" for GSoC 2013) |
Malinthasa (talk | contribs) No edit summary |
||
Line 99: | Line 99: | ||
May 10 – May 17 | May 10 – May 17 | ||
Prepare the database. | Prepare the database. | ||
Latest revision as of 08:47, 2 May 2013
Problem Descriptions
Fedora ambassadors are group of volunteers who promote and spread news to the world about Fedora OS and Fedora project. They have to organize number of events around the world from the small to large scale ( such as FedoraCon). Fedora ambassadors are using different kind of project management tools for several different tasks in an event management process. Most of the time, those utilities do not satisfy the project management requirements 100%. Also the ambassadors are working from separate places and on different events using different project management utilities. That makes budget management very complex. Using same platform by all ambassadors for event management would make the budget management easy and give effective results for their effort.
Abstract
The proposed project would be utilized to handle major project management tasks in Fedora event organizing process by ambassadors. The modules of the proposed system are
1. Task management module
2. Attendees management module
3. Report generating module
There are interconnection between the above mentioned modules. The proposed solution maintains those interconnections (case:Task management system has to inform completing some tasks to the Attendees management module for its operations). The uniqueness of the proposed event management system comparing it with current project management tools is that the proposed system explicitly focuses on the Fedora project's event management tasks.
Implementation plan
The design for the overall solution is based on object oriented programming(OOP) concepts and MVC architecture.
1. Task management module
Task management module consists of task creating and task maintaining, task completing as basic features. Task is considered an object in the implementation. The task entity in the database perspective is show in the Figure 1.
Figure 1
Network diagram concept is used to visualize and manage the dependencies between the tasks. The task managing feature will facilitate users to update the features of the tasks (task is considered as an object according to the OOP concepts throughout the project) to record the progress of the tasks. Visualization of network diagrams is done using existing JavaScript library, “JavaScript diagramming library.: JointJS”. The overview of the schedule is presented using Gantt charts. Existing JavaScript library, “dhtmlxGantt - Editable JavaScript DHTML Gantt Chart” is used for the visualization purpose of the Gantt charts. The proposed normalized database tables for task management module are shown in Figure 2
Figure 2
2. Attendees management module
This module facilitate attendees management for the events
1. Registration
Registration for the event requires authentication of the users ( some kind of log in system). The authentication is done using “sign-up-with-google” facility provides by Google. This facility provides the OAuth 2.0 open-standard protocol which allows the application to access user's data after the authentication. The proposed attendees management module uses the user's Google calendar to publish the schedule of the event. Appropriate details from the attendees are collected through a form and that information is stored in the database.
2. Maintain attendees
Record of each attendee is stored in the database. Spread important announcements related to the event are sent to the attendees of the corresponding event using bulk email. Sending bulk emails to the attendees is done using Gmail API(using bulk email sending facility).
3. Reporting module
Reporting system is developed based on the processed appropriate data in the database. The reporting system uses open source php library, “Reportico PHP Open Source Report Designer”. This library facilitate generating report in several formats. ( HTML,XML,JSON).
Timeline for the project progress
Before May 3-
1.Familiarized with the requirements of the project
2.Contacted project mentor for clarifying the goals of the project
3.Worked on the database design of the task management module
4.Searched for open source libraries for drawing network diagram, Gantt chart and report generating
May 3 – May 10
1.Prepare the entity relationship (ER) diagram of the database of the overall solution
2.Normalize the database design
May 10 – May 17
Prepare the database.
May 17 - May 22
Test the functionality of network diagram visualization library using test data
May 22 – May 27
Test the Gantt chart visualization library using test data
May 27 – June 3
Test report generating library with test data
June 3- June 17
1.Working on the MVC architecture based design of the solution
2.Define all model, controller, view classes
June 17- June 24
Code the basic model classes of the solution
June 24 – July 1
Code the basic controller classes
July 1- July 8
Code the basic view's HTML
July 8 – July 20
Repeat developing model, view , controller classes based on the basic classes
July 20- July 29
Test the developed classes with unit tests
July 29
Submit the mid term evaluation
July 29 – Aug 9
Integrate “google-sign-up” to the application
Aug 9 – Aug 16
Integrate “google-calender” updating feature
Aug 16 - Aug 26
Integrate network diagram and Gantt chart to the view classes of the task management module
Aug 26 – Sep 2
Working on report generating php library integration to the application
Sep 2 – Sep 9
Integrate bulk email sending facility to the application
Sep 9 – Sep 16
Make further changes in to the code to improve the functionalities
1.Exception handling
2.Bug removal
3.Unit testing
Sep 16 – Sep 20
For documentation
Sep 20
Submit the final code