How I utlised low-code and AI to make Clearwater Music School more efficient and increase revenue

Over the last year or so, we’ve managed to grow Clearwater Music School significantly, bringing in more teachers and students. Whilst this is of course fantastic, it also highlighted a number of issues that needed addressing if we were to capitalise on this growth and continue to take it to the next level. Many of our processes were ad hoc and manual, which led not only to a lot more work as we took on teachers and students, but also, we were making mistakes and missing out on revenue.

I decided to address this by building an application which would automate as much as possible, freeing up my time, as well as freeing up the teachers’ time so they could focus on delivering great lessons. Furthermore, a lot of the human error would be removed meaning that invoicing would be more accurate – a win-win for both our customers and us as a business.

Step 1 was to begin mapping up our key processes, which looked something like this:

The goal with this step was to understand what was happening from the customer and teacher perspective during the running of our core business – the booking, delivery and payment of lessons.

Following this, I began sketching a quick prototype

I began to validate this prototype with certain teachers to get initial feedback as to whether a tool like this would bring value to them. The way they interpreted the prototype, the questions they asked and the feedback they contributed with helped me to make adjustments and also confirm the initial hypothesis that this was something that was needed.

From this point, I started a project in Noodl, a low-code tool for producing applications. I had been using it for prototyping in various customer projects previously, and it felt like a natural choice for building this application for the music school.

Initially when I started building, Noodl was a commercial product, so the plan was to build the first version on their free tier, then upgrade to a hosted solution once we had a working MVP. However, since then, Noodl has become open source, meaning that it is completely free to use, but I had to set up hosting for myself. In the end I went with Vercel for hosting the front-end, Google Cloud for the backend (docker based), and MongoDB Atlas for the database.

I began building the MVP iteratively, getting feedback from various teachers as I went along. The main functions in the app which I built first were:

  • Registering and managing students (including number of lessons paid for by the customer)
  • Registering lessons
  • Registering cancellations (including keeping track of number of cancellations per year in accordance with the cancellation policy)

Once this basic functionality was in place, I asked 2 of the teachers to start using it as if it were live, whilst continuing keeping track of lessons as they usually would, so I could gain insights into where I should put the effort in next.

The app had no connection with a payment provider at this stage, so I was manually running an external python script which I integrated with the Stripe API to send invoices to all students who had 0 lessons left in credit, according to the student’s settings (lesson duration and number of lessons per block). This meant I didn’t need to spend time building the Stripe integration into the app whilst I continued to test the concept and tweak the app to the teachers’ needs.

Once things were running smoothly, and I’d brought an additional teacher into the app, I implemented an integration to Stripe so that an invoice would automatically be sent, as soon as the last lesson of the previous block was registered. I couldn’t find a way to get the Stripe module installed in Noodl , so I ended up implementing the API calls myself using Javascript in what Noodl calls Function nodes. Here, Noodl’s integration with ChatGPT helped quite a bit which enabled me to quickly write the code, and then tweak it according to Stripe’s documentation. It’s also possible to generate visual components with the help of the AI feature, although I haven’t experimented a great deal with that part just yet (though I soon will!).

The app is still being improved, and there’s a great deal of potential things that could be added to add even more benefits to the business. But already at this stage:

  • It is saving the teachers a lot of time not having to product reports with what lessons they have taught at the end of each month
  • Reducing errors in lesson reporting and invoicing
  • It has saved me time, since I don’t have to go through multiple sources matching reports to payments made in various systems (as well as a lot of back and forth with teachers when I have queries)
  • Enables us to give more accurate information when students have questions
  • Teachers are more quickly paid for their lessons

I will definitely continue to use Noodl for similar use cases to this, but also for producing quick prototypes for clients, as it’s so much easier to discuss and collaborate around something you can click, rather than images and words.