While users can build functioning Django web application prototypes using AI4MDE, they face a significant bottleneck when manually creating realistic test data. Users must tediously input test data by hand, which slows down the prototyping process and often results in sparse, unrealistic datasets that don't effectively demonstrate the application's capabilities.
Our solution automates data generation through a three-step process. First, it extracts Django model definitions from the prototype application, automatically identifying the structure and relationships between different data models. Next, it uses topological sorting to handle foreign key dependencies correctly, then generates a comprehensive prompt that includes the model schemas along with any custom instructions provided by the user. Finally, it leverages the Groq LLM API to generate realistic, contextually appropriate synthetic data, which is then inserted into the database.
Our solution eliminates the tedious manual data entry that previously bottlenecked the prototyping workflow. Users can now generate realistic datasets automatically, allowing them to focus on application development. Additionally, the system supports localized data generation based on custom user instructions, creating more culturally relevant prototypes that better demonstrate the application's real-world potential to stakeholders.
Our client is AI4MDE, a research initiative at LIACS (Leiden Institute of Advanced Computer Science) that develops tools enabling users without programming expertise to design Django web applications based on UML diagrams.
Communication with our client was consistently productive. We maintained regular bi-weekly meetings that allowed us to establish clear expectations from the outset, actively gather input on evolving requirements, and incorporate client feedback effectively into our development process. The client demonstrated strong engagement throughout the project, providing timely responses and valuable guidance that helped shape our solution to meet their specific needs.
Our team consisted of seven students, with a designated scrum master and a product owner to ensure effective project management. We divided work around frontend and backend development, with two team members focusing on frontend implementation and four handling backend development. Additionally, one team member took responsibility for CI/CD setup and deployment processes. We operated using two-week sprints to maintain steady progress and regular deliverables.
The most significant technical challenge we encountered was setting up CI (continuous integration), since our client's existing CI setup had multiple issues. This required us to develop alternative CI solutions to meet our project requirements. What we are most proud of as a team is our effective work distribution and the excellent communication we maintained with our client, which contributed to the project's success.