Level One is a lightweight tool created by the UNHCR (UN Refugee Agency) for capturing information on the first level details of refugees in an emergency context. In its recently released initial version, the application was used in Niger to register information about families in emergency contexts. The key idea behind the application is to provide a means to quickly capture information and provide quick reports and overviews. Once a new family is registered, administrators can easily view and track the related information about the evolution of registered families.
The application has a client server architecture. A database is provided via SQL Server for the backend, which is accessed via a Java application created using the NetBeans Platform for the front end.
UNHCR, Registration Levels, and Emergency
During an emergency situation, which corresponds to 3 to 7 months of a crisis, the UNHCR's mission is to provide assistance and protection to persons who are in distress and who generally leave their countries for reasons such as war or a climate catastrophe. In such scenarios, information is urgently needed to schedule a response for these people. In this first phase, "level one", we work on quoting the required information based on family composition, vulnerabilities, people in need of urgent care, water requirements, housing, food, and other related sequences of primary need.
After the first few months, when the situation is under control, we head towards stabilization of the response. When the situation stabilizes we work on "level two", which focuses on personal information on an individual basis.
- The ability to capture information about the family head, together with some basic bio data such as name, date of birth, date of arrival, date of registration, the number of the document provided at the time of the first registration, the family constitution by age cohort, the specific needs that exist within the family, the address in the country of origin, and the address in the country of asylum.
- The ability to manage the different statuses of the families. A family can be active, inactive, on hold, or closed.
- An interface to see the different types of consistency problems that can exist within the database.
- A set of reports on households and individuals, following criteria of data, such as location, specific needs, and process status.
- Management of security within the application by inserting an authentication module, together with authorization levels and logging.
- Management assistance within the generic information capture process.
Another NetBeans Platform application created by the UNHCR is RAMS, the Refugee Assistance Management System. The NetBeans Platform is not just a framework or beautiful presentation layer. It is a collection of great experiences about best practices in Java desktop development. The NetBeans Platform is open source, enabling you to learn by yourself from the best Java developers in the world!
The NetBeans Platform is a set of integrated architectural patterns in Java desktop programming with plenty of design patterns to resolve recurrent problems in standalone desktop development. We can mention some of them as modularization, loose coupling between different modules, branding out of the box, reuse of existing modules in the application, docking, the Lookup API (the Swiss army knife of the NetBeans Platform), and the Actions API.
The NetBeans Platform is the best rich-client platform I know. You can learn how modularization works by using the Service Provider Interface to facilitate application extensibility with reuse of functionality and extend existing functionality into existing applications.
- The Window System API system, with one of the best docking frameworks, gives you the flexibility to arrange your screen with the customized views you need to do your job, the flexibility of characteristics such as persistenceType for managing view opening, and persistence after application relaunch. Default modes (or positions) are available to layout your view, while different facilities are offered by the framework for creating new modes. Also, the NetBeans Platform uses the concept of TopComponentGroup to let you, with a few lines of code, open the same TopComponent multiple times in different combinations, related to particular contexts and tasks.
- The Actions API permits easy connections between Actions, Toolbars, Menus, and Buttons. With just one class and just two or three annotations, you can easily create an action and put it into the toolbar or menu and connect it to different buttons in different panels. With the help of LookupListener you can activate or deactivate the action all in one place. This contextual approach generalized in the NetBeans Platform reduces dramatically the size of the application and facilitates the inclusion of best practices.
- The Node and Explorer API facilitate separation between model and presentations. With the same nodes infrastructure, you can have a List, Tree, Table, Icon, or Menu with just one or two lines of codes. With knowledge about LookpListener, Node, Children, ExplorerManager, ExplorerManager.Provider, you can change your presentation layer by using just one small class. Thanks, NetBeans Platform.
- The File System API is yet another wonder of the NetBeans world. You manipulate a virtual file system as a physical file system with the same API, with the same syntax, with the same concepts. In addition, depending on your needs, you can create your own file system. The success of this concept manifests in the management of an XML file, the layer.xml, as a tree of directories and files. Using the Data System API brings the File System API an additional layer of abstraction to group several files into one file system and a single entity to represent the unique entity within a node. This enables users of an application using this concept to manipulate physical files or virtual files, depending on the operating logic you want to assign them.
And that is just the tip of the iceberg. The NetBeans Platform is a wonderful framework for developers. I recommend it. Thanks NetBeans team!