1. Project Objective
This is a project to enhance the current Calendar function of SugarCRM. You need to create a new Calendar module that will be an altertive to the current Calendar, which should be very intuitive and easy to use. The current Calendar will remain as is but the new Calendar will be created as a separate module like "Calendar2".
2. Background
The SugarCRM's Calendar module is an user interface for users to create/update/delete a meeting and a call. It also has an entry point (menu) to create/update/delete a task and displays its subject on its due date.
But the features of the current Calendar is very limited when compared with a modern web application like Google Calendar or Egroupware, this project will enhance the user interface of the Calendar to be competitive with modern ones.
3. Concept of new Calendar
You can create a new Calendar module by copying the current Calendar if needed as a base line of new "Calendar2". The reason why you create a separate Calendar is to make it easy for existing users to install the new Calendar2 while keeping the existing information safe.
Calendar2 will just be an user interface to the meetings, calls and the tasks modules. It won't have a table but all of data are saved in meetings table, calls table, tasks table, and the vCal (schedule) table. You will not need to modify the call or the tasks tables, but you may need to modify the scheme of the meetings table which will need to store additional information as described below.
4. Target SugarCRM Edition
Sugar Professional
The Professional codes with the resource management module (developed by me) will be provided under NDA.
5. User Interface
The new user interface will be powered by Ajax. The powered interface will be very similar to the Calendar interface of Egroupware.
[login to view URL]
5.1 Views (the way how it displays information to users)
It has day/week/month views as well as a shared view that will display a weekly view of multiple (selected) users. Take a look at Egroupware for your information.
Each schedule is displayed as a band-wide square like Egroupware. Conflicted schedules are overlay-ed and flip-flopped when clicked. When an existing schedule is clicked, a popup will be displayed and the current schedule can be edited. The popup also has the Delete button by which users can delete the schedule.
The shared view has an option to select a team(s) or user(s), and it displays schedules of selected team(s) and user(s).
The views have options in an upper right corner where you can decide if you want to see tasks in each view or not. If checked, each view will display a task subject on a due date/time.
Meetings, calls, and tasks are colored separately. Wine, blue and green, for example.
Private meetings and calls are only visible to a user who owns it.
5.2 Creation/Update
A new meeting or call is created in an unified manner. By clicking at the starting time line of a current calendar, it will popup a creation form. The popup should have following tabs.
- The first page will ask an user to fill out;
- Subject
- start date (selected by a mini calendar)
- start time
- duration
- whole day (check box)
- location
- priority (dropdown)
- category (dropdown)
- options (check box - non blocking and private)
- "related to" field
- description field (text area)
- It does not have a button to search for free time. It is implemented in the 2nd tab. If the whole day check box is checked, the time field is grayed out, and the start time and the end time will be determined automatically.
- The 1st tab also has a reminder field. An user can specify following things.
- Whether you send out invitation emails to participants. (chek box)
- Whether you set up a reminder. The reminder time is defined in the account settings page. (check box)
- The 2nd tab is the place to select participants that is different from that of Egroupware. It has three selection boxes in the upper div for selecting users, and two boxes in the middle div for selecting resources. And a free time scheduler will lie under them in the bottom div that is similar to that of the current meetings editview.
- The top left box is a selection box of teams. The bottom left in the 1st div is an user selection box. There is a button "Display" between the two boxes. By clicking a team in the top left box and the display button, team members of the selected team will be displayed in the bottom left box. The right box displays selected teams or members. There are two buttons between the two left boxes and the right box - "Add" and "Remove". By selecting a team in the upper left box or a member in the bottom left box and clicking the Add button, those teams or members will be added to the right box. When a team is selected and added, you need to create a meeting for all of its members when saved. By selecting a team or a member in the right box and clicking the Remove button, those members will be removed from the right box.
- In the middle div, the left box is for the resources (meeting room, shared car, projector, etc.). It will list defined resources in the Resources module (provided). The right box will display a selected resource. There are two buttons between the two boxes - "Add" and "Remove". By selecting a resource in the left box and clicking the "Add", the selected resources will be added to the scheduler. Even when the scheduler can show all of resources, you can only book a single resource at a time basically, so only one resource in the right box should be selected and saved. But when an user selects multiple resources by using the Ctrl button, all of selected resources should be booked.
- The scheduler will lie under the resources' boxes. It will display free/busy time of selected teams, users and resources in the right boxes. You can book a single resource at a time in default, but the scheduler display the availability of all of resources in the right box.
- The 3rd tab will define recurrence. It is similar to that of Egroupware.
- The popup has the save, cancel, and apply buttons. It also has the delete button.
- When a meeting or a call is deleted, and when it is one of recurred ones, you need to ask an user if the current one is deleted or all of recurred ones are deleted.
5.3 tables and scheme
The new calendar will update the current scheme of meetings and calls. These table need to store additional information like category, options, whole day, recurrence. They may need to have one-to-many relation to recurrence tables.
Their relations to notes or other classes are kept.
All of schedules including those of resources are stored in the vCal table.
5.4 Localization
The date/time format is defined in the locale settings in the account setting page. All of format displayed in views should be compliant with this.
Also in the account settings page, users should be able to define which will be start of a week - Sunday or Monday, and default start/end time of a day so that a whole day meeting is properly booked.
5.5 Optional features (you can estimates fees for this task but it may not be included in the project.)
The new Calendar2 has an option to import multiple holidays or events. There are two types of users who can import holidays. One is administrator who imports a company-wide holiday. Another user is a general user who imports holidays for himself.
The imported holidays are listed in the Admin/locale settings page or the account settings page respectively. Users can select multiple lists of holidays and delete them.
The format of holidays is iCal.
Axiom Consultancy Services is an India based software development company that focuses on quality, on time delivery and cost-effective onshore and offshore software development services. With a vision of creating a competitive advantage in Information Technology and Software Development industry and becoming the most valued partner of our clients, we deliver high quality Business Management Solutions. ACS is a pioneer in outstanding desktop & web based application, Website Design and Development and E-commerce Services.
Examining the landscape of your company, we take the time to understand your industry, current methods and ideologies to find the most suitable IT solutions for your company. Providing experienced and unbiased service, our goal is to help your business grow and prosper.