Georgia Tech CS8803 AIA - Advanced Internet Application and Services Spring 2009 Project Proposal SYN-RG: SYNCHRONIZED RESOURCE GROUPING Camilo Cepeda, Unmesh Deolekar, Sean Roberts MOTIVATION AND AIM Effective communication and collaboration between employees can increase a company's productivity. Technological advances, such as the ability to share files and track employee requests from remote locations, can make intra-company collaboration easier and more efficient. However setting up a company's IT infrastructure to support these services can be time-consuming and expensive. To address these issues, we present SYN-RG (Synchronized Resource Grouping), an adsupported Internet-based collaboration suite, which allows the employees of a company to share files, manage service requests and communicate with each other through discussion forums and possibly web-based videoconferencing. Since it is ad-supported, the use of the tool will involve no additional costs to the company. SYN-RG may also be especially useful to those organizations that operate in different geographical locations, allowing them to maintain closer bonds betweens departments through the Internet without needing to install any additional software on their own servers. RELATED WORK After coming up with the idea for SYN-RG, we searched the Internet for ideas and concepts we could use for inspiration. Microsoft Office's Groove 2007 has some features similar to what we want to implement. This software allows a group of users to setup shared workspaces that they can use to post messages and share files. However, Groove must be purchased, installed and setup on a particular machine in order for it to work. SYN-RG, on the other hand, allows users to communicate from any web browser, enabling platform and application independence. We believe this can be quite beneficial to small businesses that might not have enough money to buy Groove for all their machines. Mantis is another web-based program that allows bug tracking of software projects. It allows the submission of requests and has many kinds of status labels to manage them. However, this software has to be installed in the company’s systems, which initially does not provide remote access. Moreover, it does not allow the discussion of topics and file sharing through workgroups. OVERVIEW OF THE SYSTEM To get access to SYN-RG, a system supervisor (or super administrator, usually the head of the IT department) goes to the website, www.syn-rg.com, and creates an account for their company. The initial setup is then performed, where basic company information is provided and employee accounts are created. Employees will then be able to login to create project groups, share files, and submit and track company requests. All of these services will be managed by SYN-RG, eliminating the software maintenance work and increasing productivity for the company. SYN-RG is positioned towards small to medium-sized businesses that do not already have a full IT infrastructure in place, as well as businesses spread in different geographical locations. We aim to provide services that these businesses would need but do not have the time, money, or technical knowledge to implement by themselves. DETAILED PROPOSAL The system will consist of a core module, which will allow a super administrator (SA) to create a company site. The SA can then login to the site and create employee accounts, which will have their basic information, such as name, user ID, password, e-mail address and clearance level. This last item will determine if the employee is the SA or has any other special privileges. The core module will allow employees to log in and out of the company site and will also host additional modules. The modules we will be focusing on are the request module, workgroup module and calendar module. These names are very generic, so their overall functionality is detailed below. Request Module The request module of SYN-RG allows employees to submit requests and view the status of those requests, depending on the assigned role of each employee within the module. • ROLES: The two roles that will be used within the request module are: - Clients: Those who can submit requests and update pending ones. Clients can also view the status of pending requests as well as their request submission history. - Administrators: In addition to client functionality, administrators can approve or deny requests, as well as view the entire request database which consists of all current (pending) and past requests. When registered users are added to the requests module, the SA will determine whether that person will have client or administrator privileges. • REQUESTS: Requests are the main method of communication between users in this module. Each request will have information associated which identifies it uniquely, such as its ID, the user that submitted it, its status (for example pending, approved, denied), request type (for example, a maintenance request), its solution (if one is available) and the dates and times on which a particular event occurred (for example, when the request was submitted or approved). Request types are managed by an administrator, and may also be associated with a particular company department, where the department head will receive that particular type of requests. A group of administrators may also be in charge, and in this case, any of them will be able to handle the request. For example if a request of type "Maintenance" is submitted, then it would be approved by an administrator who handles maintenance requests. When clients and administrators are viewing past requests, they can search and sort by their associated properties. Some requests may be set as public if the solution applies to a large number of users (for example, a classic one: “the printer does not work”). This way a knowledge base will be gradually created, so that clients can query before actually sending a request to prevent duplicates from being submitted. Workgroup Module This module will allow the creation or joining of workgroups by any user. Workgroups can be public or private, and they can hold as many users as employees are registered in the site. These workgroups will have many features to facilitate communication between the employees of the company. These include: - Messaging: Members of the group will be able to post messages to the group, allowing for the discussion of particular topics. - File sharing: Members will be able to post files pertinent to this workgroup so that other members can access and download them. - Videoconferencing (possibly): One member may set up a videoconference, and start talking through his or her computer’s webcam. Anyone in the group will be able to watch the video stream. Calendar module Every user will have a calendar associated with them, and access to it may be provided to other users. This module will allow employees to set up meetings and let others know their availability immediately. The system may also find an optimal meeting time between two or more employees by automatically searching calendars. Also, e-mail reminders may be sent to employees and notifications will be shown on the user’s SYNRG home page. WHY RUBY ON RAILS? Ruby on Rails is an open source framework used to develop web-based applications, which is compatible with Windows, Linux and Mac servers. It is based on the Ruby programming language. This framework provides many tools for quickly developing software, which saves the programmer from developing frequently considered use cases (such as insert, edit, delete and view information on a database). Another advantage is that it implements the MCV (Model-Controller-View) principles, which separates the appearance of the web application from its processes and its database structure, allowing the programmer to edit any of the three without worrying about possible side effects on the other two parts. PROCESS PLANNING The following schedule includes all the features mentioned previously except for the videoconferencing on the workgroup module, which will be implemented given enough time. Resources Language: Database: Software: Operating Systems: Ruby on Rails MySQL Internet Explorer 7, Mozilla Firefox 3, Apple Safari OS X, Windows XP, Windows Vista Schedule: Week 1 2 3 4 Goals Learn Ruby on Rails and MySQL Setup web server, begin work on core module Continue work on core module Finish core module 5 6 7 8 9 Request module Group module Calendar module Finish up Implementation and Final Testing Room for Delays/Improvements, Project Report and Presentation TESTING The project will be tested by the three developers, as well as other people that may be asked for help. The teacher and TAs may also be consulted throughout the semester to get their opinion on its current status. Our overall goal with this system is to provide ease of use, and our test cases will be written to ensure this is accomplished. ACTUAL IMPLEMENTATION After some more thought, we realized our project was too broad and difficult to implement and test in one semester. Dr. Liu suggested we implement one scenario of the kind of site we'd like Syn-RG to provide. We decided to develop our project as a helpdesk application that allows the submission and tracking of IT requests, while allowing users to search past requests. ACTUAL IMPLEMENTATION After some more thought, we realized our project was too broad and difficult to implement and test in one semester. Dr. Liu suggested we implement one scenario of the kind of site we'd like Syn-RG to provide. We decided to develop our project as a helpdesk application that allows the submission and tracking of IT requests, while allowing users to search past requests. BIBLIOGRAPHY Lenz, Patrick. Simply Rails 2, 2nd Edition. May 2008, Sitepoint. Mantis Bug Tracker. Web site: http://www.mantisbt.org/ Microsoft Office Groove 2007. Web site: http://office.microsoft.com/en-us/groove/default.asp Thomas, Dave et. al. Agile Web Development with Rails, 2nd Edition. December 2006, Pragmatic Bookshelf.