IPSE

UK’s only not-for-profit association dedicated to the self-employed.

The Project

IPSE, The Self-Employment Association, is the UK’s only not-for-profit association dedicated to the self-employed, providing expert advice, vital protection, and a strong collective voice for freelancers and contractors. They achieve funding via memberships which allows them to support freelancers and the self employed with a number of initiatives, as well as campaign on a number of issues and legislation that affect freelancers.

IPSE, as a way to increase value to it’s membership, proposed the creation of a member directory, that will allow freelancers to network with each other. The directory would have a simple messaging system, and allow for freelancers to be searched for by location or skillset. Each user would need to be able to log in and make changes to their profile.

To encourage engagement within the directory, a “badges” system was desired, allowing individuals to achieve simple challenges to display on their profile. This is dependant on how long they have been a member, as well as attending events.

What I Proposed

I proposed building a system on WordPress that has each member has an account and a single post that they can edit. The post would be a number of fields (created by Advanced Custom Fields), and only editable by the connected user. This would have allowed the fields to be easily searched using custom queries.

I proposed a relatively simple messaging system. To prevent abuse, I suggested that from the site you can only message each freelancer once through the site. I suggested using Gravity Forms to help manage this.

All of this will need to be connected to IPSE’s API, using OAuth to handle logins, see if the user has an active subscription, and allow them to edit their profile if possible.

The design of the directory. This is the second iteration that matches IPSE’s new vibrant style.

What I Did

  • Create a custom post type “Members”, that contains details about the member, and link it to a field unique to each member (an email address).
  • Create a custom user level “IPSE Member”, that allows only the editing of one profile.
  • Create two front end forms, one that allows the creation of a profile upon first logging in, and a separate form for editing the profile at any point. The user on first login is directed to the creation of the profile first time, so they can create a basic profile. Further logins are directed to a dashboard, which they can edit the profile.
  • Create a few taxonomies such as “Skill” and “Location” so you can carry out searches for skills and areas.
  • Create a search engine that would allow people to to search via name, business name, experience, skills and location.
  • Integrate Google Maps API to geolocate users based on their address. This is not displayed within the search engine, however it will allow people to search based on location up to 25 miles away. This is completely optional.
  • Create a badge system that would allow administrators to add on badges to individual members, as well as generate badges automatically based on trackable metrics i.e. length of time individual was a member.
  • Create a messaging system using Gravity Forms that would allow users to message each other. To prevent abuse, you are only allowed to message each user once. There is a separate dashboard which will show you all the messages you have sent or received so you can review them.
  • Create a fully customised theme built on Underscores that displays all this information, from designs given to me by the client.
  • Integrate with IPSE’s own custom API to grab member’s details and allow users to log in.

An example profile. Due to not being logged in the “Message Me” button isn’t present, but it still allows people to connect with me via social media.

Challenges

At the start of the project, I started in earnest using Gravity Forms to create the front end forms, as we wanted the users to see as little of the WordPress dashboard as possible. I realised pretty quickly that it was a bit overkill, as it added a layer of complexity to the build. In the end using ACF’s front end form functionality, it allowed me to create a form that directly interacts with each member’s profile.

The biggest challenge was using OAuth to connect WordPress to IPSE’s custom API. Originally it was a custom connection that an off-the-shelf solution was not able to interact with. I spent a bit of time building a custom connector that turned the returned information from the API endpoint and convert it into a format that the off-the-shelf plugin that handles OAuth for WordPress could understand. After a few days work, I was able to use the IPSE API to log into the WordPress site, which would create an empty profile (if not present), or allow you to edit your own profile. Like any great piece of painstaking work, it was changed in late 2024 to the standard WordPress login, as the main IPSE went through a rebrand and a rebuild on new technology.

Results

At the end of the project, IPSE had the following.

You can check out the IPSE Directory here.

From the Client

At IPSE we aim to give our members a place where self-employment works for them and a key part of that is the community they can build with us. We needed a directory for our members to build a profile and connect with each other. Rhys understood what we were trying to achieve, provided clear direction in scope development, and executed our vision to a tee.  The member directory is running with fantastic technical performance and is receiving great feedback from members.

Toby Tetrault
Head of Marketing and Technology, IPSE

Do you have a WordPress project you need assistance with? I have over 15 years experience of delivering successful WordPress projects. Arrange a call or drop me a message and I’ll see if we can work together!