Is there a way I can simplify this redundant workflow?

The part of my app I am struggling with is a ‘Vehicle Customization’ workflow. After reaching here, the user has already created a Vehicle and defined their Vehicle Name. Now, they follow this workflow to add individual components to their vehicle. These components include the engine, intake, exhaust, transmission, driveshaft, etc… There are about 40 individual component screens the user visits before finishing their vehicle customization.

Each component screen provides a list of the user’s current components for that category and a searchable list of all relevant components held in the database. The user has the option to select from the existing list or add their own ‘new’ component, which then adds that component to grow the database for that category.

The problem I’m running into is space and formatting. Anytime I make one change, I have to make that change on 40 other identical screens, and I’m getting rather frustrated. I’m an Adalo noob, and I feel like there is a much better way to iterate this data entry process. My hope is to trim the amount of screens I have to just one functional set that can iterate through all component categories without the need for 40 replicate sets for individual components.

Right now a Current User can create multiple Vehicles (collection), but the Current Vehicle (collection record) is what passes through this workflow. All components are set up as collections related to Vehicles. Each component (Engine, Intake, Transmission, etc.) is set up with properties Name and Vehicles (relationship).

Is there a way I can set this up? How would I structure my data to allow this?

Screencap of my current setup:

Screencap of my current data structure:

Thanks!

I would combine the components into one collection.
Giving you 3 collections overall…

Vehicles
ComponentCategory
Components

Have a horizontal list (ComponentCategory) at the top of the screen which filters the Component list below. Component list could have a toggle to add to Current Vehicle, as well as ability to click for more info (Detail Screen).

Beware if users are adding their own components to a master table, you will likely have erroneous data in your database for other users to then use.

Good luck :slight_smile:

Hey @Rozza,

Thanks for your imput! i was able to build out what you’ve described here, and it works well.

I’m hoping to move away from the ‘dropdown list selection’ and move toward a navigation model that relies on ‘forward arrow’ and ‘backwards arrow’ navigation for the user, from one Component entry page to the next.

Is there a way to implement this?

  1. You could have a component list, nested within component category list. This list is set to show 1 record and filters out component category where current vehicle component category > components count Greater or equal to 1.

  2. For a bit easier implementation why not have a list of Component Categories with a forwards/ backwards flow. Within that list an icon or other element that is visible when…
    current vehicle > category type > component = greater than zero
    When you click an item eg. Transmission it will take you to a list of transmissions. One of these is selected and added to the current vehicle, in the same action the user is sent back to previous screen. The list updates showing that transmission has been filled. The user chooses the next component category.

Of course there are other ways, you could try pagination but that I have not implemented before.

@Rozza,

Thanks for your detailed response - This was super helpful and really opened my eyes to the options I had in terms of both data structure & user navigation.

I did some research on pagination, and found this super useful video tutorial, which I ultimately implemented.

However, I’m getting stuck (yet again haha) with passing data from one screen to another.

I’ve condensed to 1 input screen now just to work out the functionality. A user creates a vehicle and lands on the ‘vehicle landing page’. They then hit the ‘Build’ button which pushes ‘Current Vehicle’ to the middle page - an introduction page with instructions. The user then selects the button at the bottom of the page, which is actually a list of ‘Categories’, which pushes both ‘Current Vehicle’ and ‘Current Category’ to the S Test 2 page. Here, they effectively cycle through ‘Categories’ and will be able to choose components as they go along.

My issue now is that when I view data on the ‘S Test 2’ page, the Current Vehicle data is not transferring over, even though Adalo claims that data is being pushed from the previous page. What could be causing this and how can I fix this?

Thanks again!

Glad you are happy with your changes.
Seems like a circular link or your flow is not passing the data, I would check, triple check your elements for a rogue link and properly check your flow from screen to screen. If your ‘Previous step’ button is a link to ‘Intro…’ instead of ‘Back’ then that will break your flow.

Also, if you are in the habit of copying screens to have one as backup, this is a place to look for that rogue link.