Application Components
While most MVC implementations provide action class caches, auto-population of objects, and tag libraries, the Concursive framework goes beyond the basics and adds real world features that are used in web-based applications. The following list includes features that have been added to the framework:
Security
- SSL logins – providing a consistent entry-point into the application
- Single session sign-on per user name – if a user is already logged in, a second login prompts if the user should cancel the other session and continue
- Client browser auto-logout when server session expires
- Roles and permissions – each user can have a single role in which permissions are granted
- User hierarchy – each user can report to another user
- Action level permissions – restricts module usage based on user role permissions
- Record level permissions – restricts record usage based on record ownership and user hierarchy
- Protection from concurrent updates to the same record – users are notified when another user has already updated a record in which they are trying to update
- One-way encrypted passwords stored in the database
- Private and public key encryption
- Database gatekeeper – controls access to specific databases based on user authentication; useful for developing against multiple databases
- Protected file system on server – prevents unauthenticated access and snooping of files
- Logging
Performance
- Database Connection Pool
- Object Cache, for sharing system level resources between users
- Image Cache, implementation for reusing images such as graphs
- Indexed Data, for quicker data searches
User Interface
- Page layouts – templates for defining where global elements should be placed and where the content is placed; keeping the content separate from the layout
- Page skins – settings to define how page elements are displayed, typically with style sheets; colors, borders, images, sizes, etc.
- Record paging – server-side and client-side elements for navigating a result set
- Calendar – server-side and client-side elements for displaying a calendar with optional settings; small or large, with icons for holidays and custom events
- File transfer – server-side and client-side elements for allowing clients to upload, download, and stream files based on permissions and file content-type
- Graphs – server-side image generation including web browser tool-tips; bar, line, pie, plot, etc.
- Menu system
- Top-level menu displaying modules; graphically rich using style sheets
- Sub-menus for each module; graphically rich using style sheets
- Tab-style container menus; graphically rich using style sheets
- Global items – elements that traverse the whole site or a sub-section of page layouts
- My Items; a list of alerts specific to the user
- Recent Items; a list of recently accessed items
- Search; a text field for searching the whole site for related content
- Quick Actions; a menu for popping up an action item form
- Help; page-sensitive help
- QA Development Tool; page-sensitive bug, feature, and help entry
- Site preferences – allows for installations to easily modify the all terminology
- Lookup lists – a standard way of using combo-boxes with advanced features for displaying entries that are no longer valid in the list and for allowing items to be modified by an administrator
- Dynamic Forms – forms expressed as xml and translated by a JSP for a consistent look
- Taglibs – html tags that allow cached access to users, lookup lists, and various custom html elements
- Time Zones – every element is sensitive to the user's timezone, both when displaying and entering dates and times
Rules Engine
- Object events – action triggers a customizable workflow process when an object is inserted, updated, deleted, or selected
- Scheduled events – a timer triggers a customizable workflow proces
- Notification manager – responsible for sending and logging messages
System Scheduler
- Can execute tasks written in Java
- Can execute native executables
Data Transfer and Exchange
- HTTP-based XML API – multiple clients can add, update, delete or retrieve records on the server
- Synchronization through XML API – multiple clients can synchronize tables with the server, the server can also map legacy primary keys to server primary keys on-the-fly
- Process log through XML API – a timestamped listing of external and internal processes
- Reader/Writer – a generalized application that can read data from various inputs and write the data to various outputs
- Direct database connectivity
Document/Data Indexing and Search
- Class indexers to define object metadata to be saved and indexed
- Context-sensitive search results with word highlighting
Utilities
- AppUtils for loading and saving persistent application settings
- ContentUtils for parsing content and metadata from documents
- DatabaseUtils for working with databases independent of the database type
- DateUtils for common date methods
- FileUtils for common file methods; copying files
- HTMLUtils for working with HTML elements and data
- HTTPUtils for remote HTTP and HTTPS connectivity
- ImageUtils for thumbnails and image conversion
- JasperReportUtils for compiling reports and generating PDFs
- ObjectUtils for reflection and serialization
- SearchUtils for working with result sets
- SMTPMessage for text and HTML email messages, optionally with attachments
- StringUtils for common string methods
- SVGUtils for complex SVG methods
- XMLUtils for common xml methods; parsing, searching nodes, converting to text
- ZipUtils for adding files to .zip files
Sign in to add your comment.