Mindfire has deep experience developing Java web applications and Java-JSP-Servlet-Struts-driven web sites. We describe some of these Java web project experiences below, and will be glad to share our expertise in detail with you.
Applet for uploading Images
A media and publishing software provider
Industry:
Graphics / Imaging.
Technologies:
Java Applet/Servlet
A digitally signed Java Applet with elegant and intuitive desktop like interface for uploading multiple images to server. Provides flexible thumbnail view where user can single/multiple select a set of images to upload. The selection could span multiple folders as well as the applet has folder navigation tree to the left. It also supports filtering based on file name/type/size. All applet options are server configurable.
We also did the server side programming using Java servelets for receiving the files uploaded by the applet. The servelet supported multithreading for simultaneous uploads.
Mac Address Finder
Online proofing approval software provider
Industry:
Publishing
Technologies:
Java, C, MacOS API
A Java applet for finding MacAddress of the client machine and to be used as licensing and authorizing process. Proved to be more complicated than our initial estimates as it had to deal with various combinations of Win32, MacOS 9, OSX, IE, Safari, Netscape, different signing methods etc. Also there was no straight method of doing the above in Java so we have to use different approaches for different OS including using JNI on MacOS 9.
Integration of BrowserHawk
Healthcare technology and services company
Industry:
Healthcare
Technologies:
JSP, Oracle 10g, BrowserHawk 10.1 Enterprise Edition
This is an automated tool to detect certain browser settings, system settings, and plug-in versions in order to determine if a client has the appropriate environment. In other sense, it works as a diagnostic tool to inform the user if their browser supports to run an existing application. Along with detection, the tool must also be capable of sending the test result for the analysis.
Research: BrowserHawk is the best approach for automated browser and system analysis. BrowserHawk makes it easy for professional web developers to build high impact sites that reach the widest possible audience, while ensuring a Flawless Web Experience for every visitor regardless of their browser settings and system capabilities. The product is very matured, well-documented, easy to use, and full-featured.
Fax Gateway
Provides web applications and services
Industry:
Healthcare
Technologies:
Java Swing, Netbeans
The Fax Gateway service is a service developed to poll URLs on the Internet and check to see if a fax needs to be sent. If a fax is in the Queue at a given URL the gateway pulls the fax from the Internet location and sends it to a local Fax Server which handles the delivery of the actual fax. This UI application will consist of 4 different views inside one Main Window Frame and one dialog. A Card Layout or some other suitable layout scheme will be used to change the views inside the Main Frame Window based on Menu and Tool Bar events. The Main Frame Window will have both a Tool Bar and a Menu Bar.
Image Server Gateway
Provides web applications and services
Industry:
Healthcare
Technologies:
Java Swing, Netbeans
The Image Server Gateway service is a service developed to send DICOM files from an SCU (Service Class User) modality to the practice management system. This UI application will consist of 5 different views inside one Main Window Frame and one dialog. A Card Layout or some other suitable layout scheme will be used to change the views inside the Main Frame Window based on Menu and Tool Bar events. The Main Frame Window will have both a Tool Bar and a Menu Bar.
Modality Worklist Gateway
Provides web applications and services
Industry:
Healthcare
Technologies:
Java Swing, Netbeans
The Modality Worklist Gateway service is a service developed to pull patient information from the practice management system into a DICOM SCU (Service Class User). This UI application will consist of 4 different views inside one Main Window Frame and one dialog. A Card Layout or some other suitable layout scheme will be used to change the views inside the Main Frame Window based on Menu and Tool Bar events. The Main Frame Window will have both a Tool Bar and a Menu Bar.
InBoundFax Client
Healthcare technology and Services Company
Industry:
Healthcare
Technologies:
Java, Netbeans, Jax- RPC
This project has been developed for creating the client library and wrapper for inbound fax web service. Also designed a client application to test the wrapper library and download the pending faxes from the Inbound server.
DICOM Image Viewer
Healthcare software company
Industry:
Healthcare
Technologies:
Java, imageIO, DICOM
The application supports a wide verity of Transfer Syntaxes and is very user friendly. It is designed to work with a very capable PACS system. It allows images to be arranged on the basis of their Patient ID, Study ID, Series ID, etc.
Java Based Space Ship Game
Online Gaming Company
Industry:
Gaming
Technologies:
Java, Sql Server
The project is an online strategy gaming system where players can choose from a list of available battle space ships, crew, weapons and shields or build their custom fleet to battle against other online players. A challenging AI is developed with 5 levels of play. Players gain points and ranks as they win battles and joins an elite group.
School Asset Management System
IT firm
Industry:
IT Solutions Provider
Technologies:
Java, J2EE, Apache Tomcat, Eclipse, iReport, Javascript, Ajax, MySQL, Linux
Implemented reports for a multi-role based access system for schools that allows management of assets. Used iReport for PDF generation. The application allows to generate several custom reports to track inventory and costs and provides a unique way of forecasting reports and determining budget for the next year.
Web based application for tracking mobile user usage data
Mobile Services Provider
Industry:
Mobile Services Provider
Technologies:
JDK 1.6, Ejb 3.0, Hibernate 3.2, Spring 2.5, Quartz Scheduler1.6, MySql, NetBeans6.5
Designed and implemented a web application that allows mobile service subscribers to register and specify thresholds to receive notifications when usage exceeds specified threshold. Using this application Wireless mobile phone users can set thresholds and track their minutes used, SMS and other internet data usage. The other key feature of the site is that it keeps inventory of the transactions/events including calls, sms, mms, data connection to internet, etc that the user has made. The data is collected from the respective operator web sites periodically and stored locally for the user to view and generate custom reports.
The objective is to allow users to use their mobile phones without worrying about exceeding their minutes and have one place where they can review all events over the time. User receive a message based on their preference automatically by email and/or sms. The system was designed to account for a large user base and the downloads from operator websites can be done once in a day.
Apart from the website a Data Gathering module, which is loosely coupled with the web module was designed and implemented and was responsible for collecting user data from service provider websites, parse the data and log user details.
A Periodical monitoring module was also designed and implemented for periodically comparing usage data with the threshold set by user to send alert messages.

Google Analytics Connector and Sales Demo
Software Development
Industry:
IT
Technologies:
Java, Google Analytics API, DOJO framework, XML, HTML, CSS
The project has two sections:
1. Google Analytics Connector
The application is built as a Java class file, using the Google analytics API to pull web site analytics data, and place inside a MYSQL database.
Following functionalities were implemented:
1. Connect to the Google Analytics API with a Google account from a properties file.
2. Properties for the class includes anything environment specific, database connect info, Google account info, timeout settings, OS dependent paths, etc.
3. Retrieve all NEW data (data not in the MYSQL database) for the whole sites.
4. Used a SAX parser to convert XML to Java Objects.
5. Report (log) any invalid / incomplete data.
6. Protect against API timeouts.
7. Report (log) API unavailability.
8. Method that if called by an external thread would interrupt the execution, and clean up all memory structures and external connections to the API and database.
9. Insert the data into a MYSQL database structure that closely matches the API data format, but has additional fields to help with retrieval at a later date, such as "insert time" and "a unique identifier".
10. The insert should be transactional so ensure partial data is not inserted.
11. Report (log) database errors and rollback any pending inserts that are related to the data being inserted.
12. Perform all data operations in less than 1 minute optimally, 5 minutes absolutely.
13. The database structure should have sufficient indexing to allow fast retrieval of all data.
2. Sales Demo
Developed sales demo to simulate a web application. Content lives within an XML file. It simulates a web application that already exists and used by the customer Sales-force. Application works in IE 6, 7, 8 and the most recent version of FireFox (Mac & PC), Safari (Mac & PC) and Google Chrome.

UI Radiology Application
Software Service Provider
Industry:
Healthcare
Technologies:
Java 1.6, Swing, Netbeans 6.5, JavaDB
The Radiology service is a service developed to pull information and images from the practice management system which is then listed into the UI application. The application provides the detail view of the studies and open a custom view to display the images of the study.
The application is mainly used by the doctors to review the study and provide their feedback on the same. The feedback is converted to XML and uploaded to ftp server through a service.
This UI application consists of 3 different views inside one Main Window Frame and 4 dialogs. The Main Frame Window consists of a Menu Bar. Some dialog elements are generated dynamically. Application has also the local storage which is the native JavaDB. The database stores the configurations of the application and custom report templates created by the doctors.
Baby Portrait Shopping Cart Site
IT Solutions Provider
Industry:
Information Technology
Technologies:
Java, J2EE, Spring MVC Framework, Hibernate DAO, MySQL, Acegi security, authorize.net
Desiged and Implemented a shopping cart solution for an existing baby portraits web site that allows parents to upload photographs of their new born child. Implemented enhancements that allows parents to send links to friends and family via which recipients can directly view their albums and order photos.
Implemented process flow to allow users to add photos to cart, create account and checkout via authorize.net. Implemented member portal to view status of their orders.
Google AdWord Campaign Creation Portal
Internet Marketing Agency
Industry:
Sales and Marketing
Technologies:
Java/JSP, Google AdWords Library, MySQL, jQuery, Ajax, GWT
The project aims to provide an interface/portal to the users to create the Campaigns for any specific Google AdWord account along with storing all the Campaign details in the database for future reference. Interface/Portal have the facility to set all the details of the Campaign including geographic locations, languages and scheduling information. The application uses JQuery and Ajax to fetch all the related information from the Database and represent in a proper way.
RSS Mail Subscription
Software Services Provider
Industry:
Software Service
Technologies:
Java, Spring 3.0, iBATIS 2.3, PostgreSQL, RSS Reader: CURN
This project has been developed to forward RSS Feeds to the registered users with active accounts. The features include a registration procedure wherein a user has to register for getting RSS feeds on his email account. The user then needs to activate his account by clicking on a link sent to his email. A RSS reader package, CURN, is used to read feeds and send mails to the activated users. CURN has been developed in Java.
Reporting Solution
Software Solutions Provider
Industry:
Software Services
Technologies:
Java, Pentaho Report Designer, Pentaho BI Server, Pentaho SDK, PostgreSQL, JavaScript, jQuery
This project uses Pentaho report designer to design reports and publish them on a website. The report design involves fetching data from database and using the required fields to display the reports. The report can get parameters and then display the results accordingly. This project also has a module which supports ad-hoc reporting wherein a normal user (without any database knowledge) can design his/her own report. The reports can be viewed as PDF document, Spreadsheet, CSV and Word Document (rtf/doc).
Paid Referral Campaign Support
Internet Marketing Agency
Industry:
Sales and Marketing
Technologies:
Java, MySQL, GWT and SmartGWT, Google Visualization API
This project aims to provide an interface to its user for managing all the advertising accounts from this interface itself. The user can create any number of advertising accounts, sign-up, and then also can update the sign-up details. This interface stores all the login credentials and then provides the credentials to the user for logging in to the advertising account. If the advertising channel is not Google AdWords or MSN adCenter then the user can also directly create campaigns for these channels and manage them. This application also has an interface to display analytic data of all the campaigns using charts and tables. The application has been developed using SmartGWT and GWT, and Google Visualization API is used for creating charts.
Order Delivery System
Windows And Doors Manufacturer
Industry:
Manufacturing
Technologies:
Java, JSP, Servlet, Struts Framework
The ODS is designed to be handled by direct dealers of various products offered by the production farm. All dealers can create their own admin account using their valid account number and thereafter they can create user under them. Dealers can set permission, pricing preferences and product preferences for their corresponding users. Users will work with the ODS to place QUOTE or BID or ORDER for a particular product with in their respective authorities or permissions. Dealers or the admins of a particular account will have the authority to setup or modify users.
In the user part, a user can place a QUOTE or BID or ORDER for any product as per the permission granted to them by the dealer or admin. While placing an order, to view the product for the given dimension will be displayed by the system, which is generated dynamically. After the user accepts the view it goes to the pricing section where the pricing for that particular order is done. There after the final acceptance from user it moves to the checkout for billing purpose. A user can view any placed order and can take a dynamically generated receipt printout at any time. One can also edit an incomplete order at any time. A user can check the status of the order placed as they are in process in the production farm. While placing a QUOTE or BID or ORDER, user can choose the shipping type from few options provided by the farm.
The ODS also provides a rapid response window for their users, which opens during the working hours of the production farm. This window works with urgent orders or quotes and helps the users to get quick response from the production farm.

Online Sales Tracking System
ISV
Industry:
ISV
Technologies:
Java, J2EE, JSP, Java Wickets
The Web Application's general purpose was to provide a way for the salesman to track their customers purchase and sales report and for the sales manger to track the salespersons overall sales and purchase details. There were three main functional areas of application like pricing and availability of items , Salesperson's dashboard and sales report. For the sales report we used the Google chart API to display different reports according to user of application. In the UI of salesman dashboard jQuery is extensively used to make application more dynamic.
Online Order Pplacement and Accounting
ISV
Industry:
ISV
Technologies:
Java, J2EE, JSP, Java Wickets
The Web Application's general purpose was to provide a way for the Client's customers to place orders on line and to review accounting information such as Invoices and A/R aging. There were mainly three functional sections of the site Order Entry, Accounting & Administration.
br>
br>
The Order Entry and Administration sections had tabbed panels to select the various functions within them. The Accounting section had Summary panel containing a panel for recent invoices, a panel for open orders and panel for A/R aging. A link on each of the invoices and open orders panel had linked to a full panel view of either invoices or open orders respectively. The invoice full panel view had some search functionality to search invoice.
Campaigns and Ad Groups
Internet Marketing Agency
Industry:
Sales and Marketing
Technologies:
Java, MySQL, GWT, SmartGWT, Google AdWords API and MSN AdCenter API
This project aims to provide an interface/portal to the users to create campaigns in MSN and ad groups in MSN and Google. It has been developed using GWT. It uses Google AdWords API and MSN AdCenter API to communicate with Google AdWords and MSN AdCenter respectively. The application also has a feature to edit existing campaigns and ad groups. The most important feature and advantage of this application is that it has a single interface to manage both MSN and Google accounts. The application also provides a feature to copy campaigns and ad groups across accounts in Google or MSN and from Google to MSN.
br>
br>
This application also uses SmartGWT for some of its UI needs. Apart from creating and managing accounts in Google and MSN, the application also stores the information locally for faster access and to create a replica of the hierarchy and information in the application as in Google and MSN.

Financial Management System for Restaurant
Food and Support Services Company
Industry:
Food and Support Services
Technologies:
Java, Spring, Hibernate, DB2, Eclipse, Maven, Ajax, JQuery
This web application presents a set of web pages to accommodate the complete accounting process used for quantitative information of finances.
br>
br>
This provides interface to prepare the transaction's source document such as a purchase order or invoice. It records the transaction by making entries in the appropriate journal, such as the sales journal, purchase journal, cash receipt or disbursement journal, or the general journal. Such entries are made in chronological order. It prepares closing journal entries and post-closing entries to ledger accounts.
br>
br>
It has the inventory module which includes a screen for inventory entry, lists a precise number of items on their shelves and storage areas in order to place orders or control losses. Managers need to know how many units of their products are available for customer orders, what is the current supply and menu needs. Inventory count sheets are implemented to provide answers to all these questions on which the business rely.
br>
br>
The application uses JQuery and Ajax to fetch all the related information from the Database and represent in a proper way.

Currency Trading Application
Industry:
Trading
Technologies:
Java Swing, MYSQL
This is a swing based currency trading application to automatically trade currencies in the Forex API trading platform. User can able to schedule order in advance that will get executed (placed) in Forex trading platform on desired time, based on the current market price for selected currency pair at that time.
br>
br>
This application also offers trading in variable currencies. Users are free to bid in any currencies they want. The application also handles multiple currency type bidding in the same time.
br>
br>
The application runs a process as a windows task in every one minute which in real time place the orders in the Forex trading platform.
br>
br>
The application consists of a division where user can "view" and "edit" the unplaced scheduled orders. User can also check status of the placed orders at any time.