Managing your Life with eGroupWare
If your life is like mine, it's probably more complicated than it should be. There's that full time job, social events, and vacations to say nothing of various side businesses and their associated deadlines. The kids have Cub Scouts, soccer, and baseball. Since we homeschool, we have science club, field trips and play dates. And it seems that everyone we know has 2 email addresses and at least 3 phone numbers. Then there is the family budget, workout goals and the infamous Honey-Do List. This is a lot of information to keep track of.
There was a time when I had a work calendar on my employer's Exchange server and a home calendar in Kontact. Then my wife had a paper calendar on the wall in our office. Addresses and phone numbers were spread across Exchange at work, Kontact and Quicken at home, and a vast array of sticky notes and scratch pieces of paper generously scattered throughout the house.
So the question would inevitably arise, “If I want to get together with a friend, where do I look for his phone number, and when do we all have free time?” We finally realized that we needed a central place to store all of this information and we needed a place that we could access from virtually anywhere.
After doing quite a bit of research, I decided to install e-GroupWare to hold all of the bits and pieces of information that we'd been struggling to manage. E-GroupWare is web-based groupware system that runs under a php-enabled Apache server and requires either a Postgresql or Mysql database backend.
After having used e-GroupWare (EGW) for over 2 years, I'd recommend that you use Mysql as the database backend. I initially installed it with Postgresql and have since found various functions that simply don't work, only to be told that they work with Mysql.
The installation and configuration of EGW is fairly straightforward and well documented in the HowTo guide (see resources at end of this article) so I won't discuss this any further. I think it's more important to discuss what you can expect to do with EGW once it's installed.
My primary motivation for installing EGW was for group calendaring and shared contact management, so I'll start by discussing EGW's calendar function.
Figure 1 shows EGW's full week calendar view. As you can see, events in EGW are color-coded according to what category I assign to the event. Each event has a tool-tip that displays more detail about a given event when you mouse over the event. The small calendar on the left can be used to quickly select any day, week or month of interest. The drop-down menu at the top left of the screen allows me to select different calendar views: daily, weekly, monthly, or by user or category. By using another menu on the left side, I can look at different user's calendars, or even super-impose a group of users' calendars onto the screen at one time. Finally, menus in the the lower left corner offer various configuration options.
You edit an existing event by clicking on it. You add a new event by clicking on an open time slot on the calendar. Either way, you will be presented with a window resembling Figure 2. As expected, you can supply a title for the event as well as date, time and location. You can also prioritize and categorize the event, as well as marking it as “private” so other users can't see the details of a given event.
By clicking on the “Description” tab at the top, you can add additional information such as an agenda, directions, or any special comment you'd like. Additional users or groups of users can be invited to an event by clicking on the “Participants” tab. When a user is invited to an event, the event shows up in their calendar and they receive an event invitation via email notifying them of the new event. The user can use their calendar to accept or refuse the invitation. Using the screen under the “Recurrence” tab, you can schedule an event to occur regularly according to various scheduling schemes. I can request an email reminder in advance of an event using the “Alarms” tab.
One of the neat features of EGW's calendar is the ability to link other EGW objects to an event. For example, if I create a calendar event to call a client, I can link that clients contact information to the event. Then when its time to make the call, I can click on the calendar event, click on the “Links” tab and see a link to the contact information. I can also link to other calendar events, Wiki entries as well as tasks and projects. These links are bi-directional so if I link a contact to a calendar event, I can see the calendar event links when I bring up the contact in the contact manager.
Since EGW is web-based, I can use my calendar from just about anywhere, home, work or while on vacation. This also means that my wife can check my availability at a particular time before scheduling family activities and such. As busy as we are as a family, it would be very easy for us to become double-booked if it weren't for the shared calendar function of EGW.
I do a fair amount of side work that entails meetings and deadlines but I still try to reserve time for myself and my family. Because of the sophisticated access control mechanism in EGW, I can give my business associates access to my calendar without having to give them access to the rest of the family's schedule. This allows them to see when I've scheduled to work on their projects and to schedule meetings without having to worry about infringing on my family's time. And since I host this system as a courtesy to them, they gain the benefit of a complete groupware system that they might not otherwise have the resources to implement.
The main contact screen is shown in Figure 3. EGW's contact manager supports multiple address books as well as multiple categories within each address book. Though there is a search tool, I've never actually had to use it. I usually use the tabbed index feature. First, I select either “Name,” “First Name,” or “Organization” at the top left, then I press one of the alphabet links across the top of the page. This displays all of the records, for example, who's last name begins with “D.”
To view or edit a contact entry, you click on the magnifying glass or pencil icon, respectively, located at the right of the screen. The contact entry edit screen is shown in Figure 4.
As you can see, EGW seems to be focused on business contacts. As with the calendar events, I can add detail information, categories and links to other EGW objects. I can also add “Private” address information to a contact, such as their home address. EGW supports multiple phone numbers for each contact as well as a work and home email address and website URL. When properly configured, EGW will also let you define custom fields to be associated with each contact. These custom fields could be used to store information that EGW doesn't normally store, such as anniversary date, IM addresses, etc.
I happen to use Kmail to read e-mail both at home and at work, so I wasn't particularly excited about EGW's webmail client, until I went on vacation and discovered that webmail access can be quite convenient. EGW's email client is called FelaMiMail. Linux seems to be plagued by strangely named applications for some reason. FelaMiMail supports both POP and IMAP. I use IMAP so I can tell you that EGW supports multiple folders, as well as filtering and vacation rules. FelaMiMail will allow you to send attachments and look up addresses in the contact manager.
Though quite functional, I don't see FelaMiMail as being as powerful as the rest of EGW. For example, I can't link an email message with a calendar event or contact record, though you can save an email into InfoLog, which I'll discuss next. Also, there doesn't seem to be any native support for encryption tools such as PGP.
At my house, FelaMiMail seems to be colliding with my Exim mail server's open relay configuration. I have Exim configured to only forward email from my domains because I understand that my ISP actively scans for open email relay servers. The problem comes when I compose an email to an outside address using FelaMiMail. FelaMiMail uses my Comcast address as it's source address and Exim, rightfully, refuses to forward the message. The correct solution would be to configure both Exim and FelaMiMail to use SMTP authentication, but I've just not had time to do it.
Task management in EGW can be done with 2 different applications, InfoLog and Project Manager. InfoLog is a Do-List management program that lets you track phone calls, tasks, and notes. You can even delegate an item to another EGW user and break tasks down into sub-tasks. Scheduling tasks is just like creating calendar events except that you don't have to associate a particular time with an InfoLog task, just the dates the task is supposed to be started, and completed. You can also track what percentage of the task is complete. InfoLog tasks are displayed on the Daily calendar view.
InfoLog allows you to grant access to your task list just like the rest of the EGW applications. EGW's Project Manager goes beyond mere task management and provides complete project management. By using Project Manager, you can track time and billing associated with a task and group tasks into projects. I've recently discovered that you can schedule tasks to be dependent upon other tasks so that one task doesn't begin until the prerequisites are complete. If your PHP installation has functional GD, TrueType, and jpgraph libraries, you can even coax Project manager to print out a Gantt chart of your projects.
The document manager in EGW is called MyDMS, (My Document Management System.) MyDMS allows you to upload whatever type of document you like. Once a document is in MyDMS, you can assign comments, access controls and expiration dates to it. Then, when you need to get that document, you simply download it from MyDMS. You organize documents by putting them in folders and sub folders, as appropriate. MyDMS will even notify you via email when a document is updated.
EGW comes with a built-in Wiki which is based on the Tavi Wiki system. (See Figure 6.) A wiki is a quick and easy way to collect and link random bits of information. For example, you could use the wiki to store project details, vital statistics, recipes, or even a diary.
Updating an existing page is easy. You simply click on the page you want to edit, then click on the edit link at the bottom. If you are using a supported browser such as Firefox, you will be presented with the WYSIWYG editor shown above. You can also use the simple wiki markup language which is easy to learn and allows you to create various document elements such as tables, outlines, external hyperlinks, and horizontal lines.
Adding and linking to a new page is ridiculously easy. All you have to do is edit an existing page and refer to the new page by giving it a name with MixedCase. When you save the document, you will find a question mark after the new page's name. When you click on the question mark, a wiki page is automatically created with the new name. Go ahead and edit the new page. When you save the page, you will find that it's already linked to in the parent document. It's harder to explain and visualize than it is to actually do.
The wiki system has a rudimentary access control mechanism, though it's not as sophisticated as most of the rest of EGW. You can allow other EGW groups, individual users, to be able to read or modify a wiki page. On the other hand, the wiki system will track revisions. You can see who made changes to a page, and what those changes were. The wiki will let you back out undesired changes.
The final EGW application that I'd like to talk about is the bookmark manager. Since most, if not all, browsers have a bookmarking feature, why do I bother to use EGW's bookmark manager? Well, I have a computer at work, a workstation at home, a laptop, and my wife has a computer. It's so much more convenient to be able to store links to those particularly useful sites in one central location. For example, it's nice to have a place to store links to educational material, online banking, software documentation, political organizations, etc. Now, no matter which computer I'm using, or where I happened to be, I can access my bookmarks.
I understand that EGW supports synchronizing the calendar, tasks list, and contact list with other PIMS such as Kontact, Outlook, Mozilla, and various PDA's. However I've never had a reason to configure this. In fact, I have good reason NOT to try this function. As it turns out, I use Kontact and a PDA while my wife uses Outlook. I've been hesitant to configure synchronization because I didn't want to have to deal with situations where one of our systems supported a feature that the others didn't. But in a more homogeneous environment, I think EGW's synchronization support would be very useful.
With as many features as I've covered already, it's hard to imagine that there is more. EGW has a lot of bundled applications that I simply don't use. EGW comes with a knowledgebase manager, a forum, a newsreader, a polling system, and a workflow manager, among others. Once the applications are installed, the administrator grants or denies access to the various tools according to the user's requirements. This means that my sons could have access to their calendar, and the wiki, while my wife and I would have access to the various other tools we use. Then there are third-party tools that integrate with EGW. I'm currently investigating the pERP package. The pERP package is a general ledger package can handle accounts payable, billable, invoicing, inventory and reporting. Alas, it only runs under mysql so I'll have to migrate my system from Postgresql to mysql.
As you can see, there is a lot to be had from eGroupWare. If your needs are more modest, you can simply use the calendaring and contact management tools to help organize your life. On the other hand, if you are involved in many different activities and perhaps run a home business, eGroupWare could prove to be invaluable, and it's open source.
Installation HowTo Guide
pERP ledger system homepage.
Mike Diehl is a freelance Computer Nerd specializing in Linux administration, programing, and VoIP. Mike lives in Albuquerque, NM. with his wife and 3 sons. He can be reached at email@example.com
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- Designing Electronics with Linux
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Dynamic DNS—an Object Lesson in Problem Solving
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- Validate an E-Mail Address with PHP, the Right Way
- Build a Skype Server for Your Home Phone System
- Why Python?
- A Topic for Discussion - Open Source Feature-Richness?
- Tech Tip: Really Simple HTTP Server with Python
3 hours 46 min ago
- Reply to comment | Linux Journal
3 hours 54 min ago
- Understanding the Linux Kernel
6 hours 9 min ago
8 hours 39 min ago
- Kernel Problem
18 hours 41 min ago
- BASH script to log IPs on public web server
23 hours 8 min ago
1 day 2 hours ago
- Reply to comment | Linux Journal
1 day 3 hours ago
- All the articles you talked
1 day 5 hours ago
- All the articles you talked
1 day 5 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?