Client Profile - Angelsoft
Angelsoft was founded on a vision: that technology has the potential to automate and simplify the business of angel investing. Angelsoft has built the first group management and deal collaboration platform designed specifically for the angel community. From customized group web sites with integrated deal submission, through secure virtual deal rooms to inter-group syndication, Angelsoft automates and simplifies the business of angel investing. Combining the safeguards of an industrial-grade data storage facility with the convenience of a portable offline client, this software provides secure access to deals wherever and whenever angels need.
We were asked to help build the client in the client-server Angelsoft framework. In its essence, the Angelsoft platform is for deal tracking, right from the initial application through the finalization of the deal and beyond. The application requires different modes, namely for administrators, entrepreneurs (asking company), and angels (investors). In each mode, users need to have access to common data, sometimes presented differently. Certain data access is restricted, depending on what mode the application is in. For example, an administrator has access to all deals, while entrepreneurs only have access to Deals that they are directly involved in or have been invited into. Certain functionality is hidden or disabled, depending on the user privileges. For example, only entrepreneurs can edit their company data. The flow of data is crucial to the running of the application, both between client and server and within the client itself. To this end RDF was chosen to handle storage, and to take full advantage of this, the application makes heavy use of RDF XPCOM interfaces.
The server was designed and implemented from the ground up to provide seamless integration between a post-J2EE best of breed Java server architecture and the Mozilla client architecture, the Angelsoft application server allows for the exposure of complex angel investment oriented services to RDF capable clients, realizing the potential of the semantic web for the angel investment community. By leveraging the RDF standard and benefiting from the security and scalability of the Java platform, Angelsoft will be able to apply complex ontological processing to a rich set of investment data, allowing for analysis and comprehension of the processes and mechanisms whereby entrepreneurs and angels collaborate in the formation of the digital investment economy.
The success of a project like this relies heavily on having the right tools in place. With 2 teams working so close together, one for the server and one for the client, clear communication is crucial. MDG afforded Angelsoft the usual project tools for this, including a CVS repository, bug tracking, an archived mailing list. This created an environment where the developers could focus on the tasks at hand, and to push the limits of the respective technologies that they were working with.
The aim from the start was to utilize as much Mozilla code as possible for the client, and use the functionality provided by the 2000+ XPCOM interfaces available for application development. With advanced RDF APIs, file handling, and much more, there was no need for the development of new XPCOM APIs on the client side. Build scripts were put in place to integrate the new client source code with a a stable Mozilla branch based on one of the main Firefox releases. The client needed to be cross-platform, targeted initially for Mac and Windows, with Linux support set for a later date.
The features of the application are best illustrated by breaking out the main sections from a UI perspective. The basis of this is that it needs to be able to handle and present data in different formats and pull it all together in a coherent fashion to make it useful to the user. Throughout this section, the mode we will be previewing is the angel mode, which exposes most of the features that the client contains and loads the highest volume of data. Here are just some of the things available in this feature-rich client.
Views and Workspaces
Figure 1 : Angelsoft Default View
After the angel logs in, they are presented with the default Deals view. On the left side if the Navigation panel and the Tip panel. This is omnipresent in the main window, and is accompanied by the View Buttons at the top to provide the main navigation mechanism in the application. The Deals view shows a list of all current active deals. The other main view is the Groups, which has information on the main Investment Group that the user belongs to and all the other secondary groups associated with them.
One of the other main application paradigms is that of a workspace. The is an area split into tab panels, each one containing different information. Depending on who you are logged in as, workspaces organize data for deals, groups, and companies. From within each panel, you can carry out various tasks, such as as opening documents, writing messages, creating events and viewing information about members.
The 3-pane view is proved and useful layout for the Angelsoft client. It maximizes the information being showed to the user and provides easy navigation options. It is similar to the default layout in the Mozilla Thunderbird Email client.
Figure 2 : Workspace Tabs
The look and feel of the UI was built from the ground up based on detailed mock-ups provided by Angelsoft. The main global stylesheet is pulled in from the new Mozilla toolkit, but most of the widgets that you see have been heavily customized to meet the design needs of the application. This includes such things as more round tabs that blend with the surrounding widgets, an easy to use navigation tree, sharp headers, and blended menulists. All of the widgets are colored to fit in with the Blue/Yellow stand-out color scheme. Yet despite the extra effort to give a sharpness to the UI, it does not distract the users from the task at hand, namely reading, sharing and using information.
Wizards and Dialogs
A Wizard system was set up to make some tasks easier for users, such as setting up a new event (pictured), and to aid in the collection of data. The Mozilla toolkit already has a <wizard> widget, but this was too limited in its current state for our needs. So a reusable new XBL widget was created. It consists if a custom header, left and bottom navigation panels, and a main content area.
The application contains a number of other highly customized windows for carrying out various tasks. These include a registration wizard for new users, a login dialog that authenticates with the server, new and reply message windows, a document edit dialog, and more. The client aims to make such tasks accessible and intuitive for users as they make their way around the workspace.
Lists pervade the application. The Deal list is the entry point where you can enter and access all the information and documents for a particular deal. In each workspace, for a group and for a deal, you have access to the following modules: Profile, Documents, Messages, Events and Members. All of these modules, bar the Profile, contain lists. Selecting an item in a list opens the particular item in a different panel, which displays further information on that item. The lists are powered by XUL Templates, which means native RDF handling built-in to XUL widgets. It is particularly suited to the <tree> widget, used for these lists. They are designed to handle large volumes of data.
Messaging and Document Handling
Figure 3 : Messages
To make the application even more useful, a mechanism was developed for users to communicate with each other. Though a list of archived, threaded messages, users can discuss issues related to their group, or go over the finer points of a deal. There are options for email notifications of messages.
In an information exchange environment like this one, access to documents is an important feature. The Angelsoft client handles this seamlessly in the workspace. Documents can be classified to enable filtering to drill down to the ones that are most important at a given time for a user. Descriptions can be given to documents. And documents can be opened from the application, which passes control over the operating system for this task which determines what application the document should be loaded into.
The Angelsoft client organizes, displays, and edits information for use by all parties in a particular community, that of angel funding. Of the thousands of applications made to angel groups each year in the US alone, maybe only 1% makes it to receive funding. Yet the overhead in terms of human hours just to sift through all applications is huge bottleneck. This application aims to remove that bottlenect and make it easy for all parties involved to maximize their time and productivity.
While this was one of the more technically challenging projects that MDG has been involved with, it is certainly one of the more rewarding. It is a great showcase of what the Mozilla platform is capable of. The platform is feature rich, and combined with a server architecture like in this project, a powerful and innovative application is born.