AI4MDE Reverse-Engineering

The Product

Our AI4MDE reverse engineering solution addresses the critical gap where developers couldn't import and visualize existing Django projects within the AI4MDE platform, which previously only supported forward engineering from UML to code. The product works through an intelligent pipeline that allows users to upload Django projects as ZIP files via a web interface, automatically parses the project structure to extract classes, attributes, and relationships, then converts this data into standardized JSON format representing UML Class Diagrams that integrate seamlessly with AI4MDE's existing ecosystem. This solution transforms AI4MDE from a forward-engineering-only tool into a complete bidirectional Model-Driven Engineering platform, enabling developers to visualize and document existing codebases without manual effort while providing the research community with a comprehensive bridge between traditional software development and model-driven approaches.


The Customer

Our client was AI4MDE Studio, a research initiative developed at LIACS (Leiden Institute of Advanced Computer Science) focused on bridging the gap between Artificial Intelligence and Model-Driven Engineering. AI4MDE is an open-source, web-based platform that enables users to design, manage, and deploy UML Class, Activity, and Use Case diagrams through an intuitive interface or chatbot interaction, with integrated APIs that convert these diagrams into fully functional Django software prototypes. Communication with the client was structured and collaborative, featuring weekly meetings to discuss progress, address technical requirements, and gather feedback. The client provided clear guidance on JSON schema requirements and compatibility with AI4MDE's existing ecosystem, while expressing satisfaction with our development trajectory throughout the project. This regular engagement ensured our reverse engineering solution aligned with their platform's technical standards and user needs.

"Leveraging existing functionalities, we can avoid redundant work and focus on extending the system effectively."
The Team

Scrum Master and Project Lead - M.A.C. (Max) Klomp : Organizing and facilitating Scrum events while ensuring smooth communication both within the team and with external stakeholders.
Tech Lead - Yuan, R. (Ruike): Overseeing the project's technical direction and ensuring alignment with overall goals and deadlines.
Product Owner - Juan Mediavilla: Helping prioritize features, align development with the client's needs and code test.
Developer - Shengan, L. (Lucian): Focusing on frontend components, backend endpoints, and front-back integration.
Developer - Xinyue Wang: Contributing to frontend pages, data transformation, and front-back integration.
Documentation - Z. (Zhonghao): Ensuring clear and complete technical materials.

We collaborated using an agile workflow, with weekly client and TA meetings and GitHub for code management and coordination. We faced challenges such as integrating into an existing codebase, learning a new framework, and improving team communication. We're most proud that we overcame these challenges and successfully delivered a functional MVP with a clean, user-friendly interface.


The Technologies

Frontend Technologies
React (JavaScript/TypeScript) – For building the user interface.
Tailwind CSS – For styling and responsive design.

Backend Technologies
Django (Python) – Core web framework for backend logic.
Django REST Framework (DRF) – For exposing RESTful APIs.

Data Storage & Processing
PostgreSQL – Relational database for persistent storage.
JSON – Used as a structured format to represent UML Class Diagrams.

DevOps & Deployment
Docker – For containerized and consistent deployments.
GitHub Actions – Used for continuous integration (CI) and testing workflows.

Testing & CI Tools
ESLint – JavaScript/TypeScript linting.
TypeScript Compiler (tsc) – Static type checking.
Ruff – Fast Python linter.
MyPy – Static type checker for Python.
pytest – For unit testing Python code.

These technologies collectively support the AI4MDE platform's full-stack architecture for reverse-engineering Django projects into UML class diagrams.