How to make catalogue of freelancers with custom prices for their services?

Hi, everyone.

I’m trying to make catalogue of freelancers. They can choose what they do and then set prices for their services.

For example:

  • Vocal Tuning - Average price -$40 per track
  • Time alignment - Average price - $40 per track
  • Mixing Engineer - Average price - $200 per song

My table contains 2 lists: Freelancers and Choices.

List “Choices” contain specialties (services). A freelancer choose his specialty and then should be able to set price for it. I think what is the best way to do this functionality? May be I should make choice column with average price like: $5, $10, $20 etc. Then set this price for chosen service. Freelancers can have many services.

For now I don’t really understand how to store and make relations between freelancers, services, prices. May be someone already did something like this?

Thank, you for help.

A simple way to approach this would be to create a separate Freelancer Services table. At a bare minimum, this table would contain 3 columns: Freelancer ID, Service ID and price.

Each time a Freelancer adds a service, you would create a new row in that table. Then to get a list of all services provided by a Freelancer, you create a multiple relation column in your Freelancers table that matches the Freelancer ID to the same column in the Freelancer Services table. This column could then be used as the source of an Inline List component and included in the Freelancer details view.

1 Like

Thanks. That’s good. But can we do it on Freelancers list like shown below?

Cell 1 - Vocal Tuning,Time alignment,Mixing Engineer
Cell 2 - $40,$40,$200

Then use some kind of component to display this on Freelancers page like in example in my first post.

And second question is how to make form with multiple choice of Services and Prices on Submit/Edit page? What components or combination of them should I use?

That’s possible, but will be a bit tricky to manage. Is there a particular reason why you want to structure it that way?

You should use Choice Components for these.

Yes, I understood it’s not good idea, 'cause it’ll be difficult to sort Services and Prices.

Choice components, yes. But my question is how to organize multiple Services and Prices choice. Should I just place for example 3 pairs of Choice components like below or there is a way to add one more Service?

Service 1
Price 1
Service 2
Price 2
Service 3
Price 3

In Glide, this is the best way to create something like this.

2 Likes

Well, you can enable multiple selections with your Choice components, which will give you a joined list of values, which I guess is basically what you are looking for, ie.

The difficulty is going to come later, when you want to match the Services and Prices up, and it could get quite messy. You’ll either have to add a series of extra columns to split the joined lists and them patch them back together. And if the number of possible services that can be associated with a Freelancer is indeterminable, then that becomes essentially impossible to manage. The other approach would be to use a working table to convert the joined lists to arrays and then explode them into multiple rows. But again, either approach would be creating an awful lot of work.

May be I can use button with action Add Row to add more Services to Freelancer Services table? Can we do it from Freelancer page without entering Edit profile mode?

That’s what I would do, yes.
You don’t need to be in an edit screen, in fact that would just complicate things.

I assume that you’re using Glide Pages, yes? (not Glide Apps)

I would just have a button component on the Freelancer Profile page. Set the visibility so the button is only available if the user email is the signed-in user.
Have the button open an add form, target it at the Freelancer Services table, and add two choice components - one for the service, and one for the price. When the user submits, a row will be added.

It works! Thank you. I show Services in Data Grid. It looks nice.

Now I’m thinking about 2 things:

  1. How to limit Freelancer with 10 Services.
  2. How to edit and delete Services.

Oh, and one more. Can we choose Services from list or just type them? How to do this right way?

If you have a multiple relation column from your Freelancers table, you can use a rollup column that targets that relation and returns a count of Services per Freelancer. Then you could have an extra visibility condition on your “Add Services” button such that it’s only available if the count is less than or equal to 10.

If you have them in a Data Grid, you can make selected columns editable, but that might not be the best way, especially if they were initially created using values from choice components. It would probably be better to display them as a Collection so that users can navigate to specific records (rows). From there you can enable Edit and Delete.

Did you look at the documentation for choice components? It explains it pretty well. The examples show how it’s used in an App, but it’s essentially the same in Pages.

Done! Great.

Yes, Collection is good, but it’s too wide for mobiles. Also I don’t wanna use pics.

Yes, I did. I want to type anything in Services or choose one from the list. I found nothing in documentation about that.

Thank you! You really help me :slight_smile:

P.S. And, yes, I use pages. Sorry, forgot to tell you.

To clarify, a freelancer can:

  • Choose a service from a list and add their price.
  • Enter a service that isn’t in a list and add their price.

What is the purpose of choosing and entering a service?

The reason I ask is, if two freelancers enter (not select) the same service then being able to enter it or select it seems redundant (if we all end up entering the same services they might as well just be available in a list and if we all entered different services then why have them in a standard list?)

If I understand your data structure correctly, this is probably one of the complicating factors and just wondering if it’s necessary for version 1.

A suggestion is, that if a service isn’t available from a list, the freelancer can somehow ask for it to be added. Assuming you are designing for an audience you’re familiar with you can probably get a pretty compete list to start with and anything a freelancer wants to add will be a rare exception.

Yes you can do this. Just have a choice component of available services, and if they want to add a different one, then you can also have an entry component where they can type a different service. Two entry components can point to the same column.

1 Like

Thank you, Jeff!

1 Like

Yes, you’re right at many points. We will do something like this.

The problem is that the list is quite long. At the moment we have more than 50 options and it will grow.

I’m thinking about component like when you type something it will give you a suggestion. Then you can click this suggestion and use it as a service. That would be easier for freelancers to add their services.

Second way to make choice easier is to divide whole data on the segments and make two choice components: Dropdown and then Cheeps.

Just for an example below is a form from SoundBetter freelance platform. At the left side you can scroll and then drop Speciality to right and choose average price :slight_smile:

Yes, you could do this if you divide them into categories and use two choice components with Screen Values Filtering. They would select a category from the first list, and then the second list could be filtered according to the selected category.

Thanks again Darren!

Can you give me a hint what is the best way to place categories in my table?

Category 1: Item 1, Item 2, Item 3
Category 2: Item 1, Item 2, Item 3

Do it like this:

Screen Shot 2022-06-26 at 3.30.23 PM