
Introduction
I encountered a very interesting use case for a pre-sales demo for a tribal organization. The requirement - to provide users with the ability to view, create, and maintain a family's history for up to 5 generations in an easy visual manner.
Data Model
The data model was super simple. I created the data model with the following steps:
- Created a table called Family Member in Dataverse
- Added a lookup column to the same table and called it Father
- Added another lookup column to the same table and called it Mother
- Added another column to upload a picture (optional)
Solution approach 3 - Generative Pages
Not too long ago, Microsoft announced Generative Pages and they seemed super interesting to me. I thought I will give them a shot with this use case. I used a bunch of prompts to make the page work exactly the way I wanted.
Prompts
First set
- I want to display data from the Family Members table as a family tree for the selected person (which I want to select from a dropdown) and the tree should load once a person is selected <<hbh_familymember>>
- I want to fit all levels within the screen. The user's image is cropped off
- Can you stretch it to fit in the available space on the screen?
- I want to fit all levels within the screen. The user's image is cropped off
- Can you make the connecting lines longer so that the family tree is wide enough to fit the
- Can you move the names below the photos?
- Can you add some space between the photos and name?
- Can you reduce this gap?
Second set
- Can you replace the dropdown of family members with a gallery of family members? I want to show the full name and the photo of members. Users should be able to search by full name. Once a user selects a person, the gallery should get hidden and the family tree should become visible.
- I want to show a default person icon when a family member doesn't have a picture
- On the family tree, I want to be able to click on a person, to open a pop-up, showing the selected member's name and image. I also want the ability to edit the name and change the picture
- When viewing a family tree, irrespective of the levels available, I want the sizing of the family tree to be the same as when there are 4 levels
- When I select a user that has 4 or 5 levels of family tree data, the page crops off the family tree. Can we please make sure it doesn't get cropped off?
Third set
- For any selected member, I want to show 3 levels of family tree. If members don't exist for any level, clicking on that member should let me create a member in the pop-up that opens when clicking on an existing member
- When I select a user that has 4 or 5 levels of family tree data, the page crops off the family tree. Can we please make sure it doesn't get cropped off?
- For any selected member, I want to show 4 levels of family tree. If members don't exist for any level, clicking on that member should let me create a member in the pop-up that opens when clicking on an existing member
- The page stretches the individual cards in the list of family members when the screen gets bigger. Can the size of the cards remain fixed?
Final set
- The page is making the cards elongated when I go full screen. Can they not do that?
- The height of the individual family member card in the gallery changes when the screen size changes. Can the height of the cards remain the same?
- See how the cards are taller than what they need to be?
- Can you align the gallery to the left, in line with the search text box?
- Can you sort the gallery alphabetically?
Demo
Here is a quick demo:

As you can see, it created a really looking nice page within minutes. I will talk about whether I would use this in a production app or not in another post, but for a proof of concept for a presales demo, this was amazingly quick!
To learn how to create a generative page, click here.
Recent articles
- A unique app to create and manage family trees – Part 1
- Changing the attachment on a note in canvas apps
- Adding a title and description when uploading an attachment in canvas apps
3 thoughts on “A unique app to create and manage family trees – Part 2”