Wednesday, August 4, 2021

New website for NIS live!

Nemesis Information System is now available on my personal website too! For latest updates, visit https://www.roabraham.com/drupal/nis. You can find the latest NIS materials here with some extra content (migrated from my older blog). Feel free to explore!

Saturday, March 7, 2020

Friday, September 13, 2019

NIS v0.9.19a is released and ready for testing!

Nemesis Information System v0.9.19a is released for public alpha test! What's new in version 0.9.19a:

  • Search by text is enabled for popup lists: when a form requires you to enter the ID of a certain database item (such as products, projects, orders, etc.) in the backend system, you can search for texts in the records so you will find the appropriate item easier. Since you have to enter the ID of the item in the input box (not the search text), click on the '+' icon in the last column so the item ID will be copied to the input box. This makes managing the database a lot faster and easier.
  • Regular bugfix: a number of bugs have been fixed as the base system was re-written for better modularity. Additional small improvements were applied on the application as well.

For developers:

A small micro PHP framework was built and now the web application of NIS is based on this framework. This is not an MVC framework yet as it lacks the 'View' part currently. Instead, classes for entities are used for handling complex objects. Most of the global constants and function have been moved to these entity classes as well. The architecture of NIS is based on the following elements:

  • MODEL: the class for generic objects for interacting with the database. Most of the read/write operations are executed using these objects. The database connection is created with this class as well.
  • CONTROLLER: the class for generic objects for processing the user input and passing them to MODEL objects, then generating output based on the result of database interactions. Most of the backend modules are now implemented by child classes of the CONTROLLER class.
  • Entities: these are special classes for complex database items, which would be hard to manage without these classes. These classes were used in NIS before the new framework for it was created. Entities are somewhere between models and controllers as they are used for both interacting with the database and processing user input, then generating output based on the results, but they cannot be truly enrolled to any of the groups above.

For further information, please check the web API documentation.

Please note NIS is still in alpha stage so using it in production environment is not recommended yet as it may still contain unknown bugs and vulnerabilities!

For testing purposes, feel free to download and install the application!

Friday, March 29, 2019

NIS March upgrade

Nemesis Information System v0.9.18a is released! This upgrade contains security improvements and makes the GUI  a bit more comfortable. The API has been updated as well with its documentation so it is now easier to generate new forms on the website as a massive part of the CSS manipulation functions for Javascript are generated dinamically when adding new input fields to the forms. Key changes are:

  • Improved security for document management (documents containing sensitive information [such as documents of employees or tasks for projects] are stored in the database or automatically encrypted when stored on the filesystem; database encryption key must be set!);
  • New input field types (datetime and interval) for form classes so saving date and time or interval in the database is more user-friendly (as the user no longer has to use the classic ISO format, all fields are prepared for this purpose and the system generates the ISO-formatted timestamp automatically);
  • More detailed API documentation for form classes (especially for the valid options of input fields) to make coding easier;
  • Meta-code for generating input field visibility functions for Javascript to make building complex forms more effective (DOM IDs of rows and input fields must be specified to use this feature, see the API documentation for further information).

Feel free to download and try the new version!

Please note this is still an alpha version of the system and it is recommended for testing and development purposes only!

Thursday, March 7, 2019