This semester, we took on the challenge of modernizing part of the UIAM Information System – specifically, the Projects module. The original system was built using plain procedural PHP. It didn’t follow any structured architecture – code for logic, layout, and data handling was all mixed together. Form handling and routing are done manually, and there are no built-in tools for things like validation or security. Because of that, the code is harder to scale, difficult to test, and overall not very maintainable. To solve these issues, we’re rebuilding the system using a modern PHP framework.
At the core of the backend, we’re using Laravel, which is a powerful PHP framework. It helps developers build secure, well-structured, and scalable web applications. One of its biggest advantages is that it follows the MVC pattern, which stands for Model-View-Controller. This separates the application into three layers: the logic, the interface, and the data, making the project easier to manage.

For the frontend, we’re using Blade templates, which are Laravel’s built-in templating engine. Blade allows us to write clean HTML mixed with dynamic content in a very readable and maintainable way.
Our data is stored in a MySQL database, which handles all the structured information- such as projects, users, roles, and other system data. Laravel integrates smoothly with MySQL, so we can manage and query our data efficiently. Lastly, we’re using Git for version control. This allows us to track changes in the code, collaborate with others, and manage the project in a safe and organized way.
Implementation Overview
Projects List
The main interface lists existing projects, showing relevant attributes like project number, name, type, financial data, and the responsible user. Each entry includes an Edit button that opens a detailed form.
Edit Form

The form allows authorized users to modify:
- Basic project data (names, dates, status, funding, etc.).
- Project classification and status via select fields.
- All fields are validated before submission (e.g., required fields, date ranges).
We used Blade components (form templates) to create reusable inputs – making the codebase cleaner and updates easier to apply across the system.
Investigators Section
Users can assign investigators to projects:
- Each investigator has a searchable dropdown (for selecting a system user).
- Role selection and year assignment are available.
- The list of years is generated based on project duration.
A key feature is the “Add Investigator” button, which uses AJAX to dynamically insert additional investigator entries into the form without reloading the page. All changes are saved to the database and immediately reflected in the project list, including a timestamp showing when each project was last updated.
Looking ahead, we plan to develop a Publications module that will allow us to manage academic publications directly within the system. One of the key features will be connecting publications to journal quartiles, enabling automatic classification based on their impact. We also want to address challenges like duplicate entries and self-citations during citation imports to ensure data accuracy. Finally, we are exploring API integrations with major external databases such as Web of Science and Scopus to streamline the import and update of citation data, making the system even more powerful and user-friendly.