In my last Post I said I would attempt to create the project using RUST. Well after playing with RUST and Rocket for a few days I came to realise the naivety of that approach. RUST and Rocket are both great but do not have the tooling and plugins available to make this a quick simple job, so I have abandoned that approach to go back to PHP and Laravel.
On that note I thought I had given the project enough thought pre-coding for me to get straight in and crack on with minimum fuss. Nope. Again my naivety shows up again. I was happily writing the code for inviting participants to groups and realised I felt a bit uncomfortable about the thing, i.e. I had the faint whiff of something not 100% correct. Now being fairly pragmatic I recognised this as a good time to stop and look at what I was building. That meant no more code until I could identify the smell and find ways to get rid of it.
Hopefully I have now done that but I am going to give it another day of thinking and write down my thoughts before I start coding again. Hopefully I will have truly understood what the smell was and redesigned my way out of it.
After all, this is my project, my code and I can rewrite it as many times as I like.
Now that I have Synapse running on my laptop I thought it would be good to start building out the client that I am going to try and build for it. I have been writing PHP code for a few years now and my initial thought and desire to get coding led me to start building the front end in PHP making use of Laravel.
In fact I got as far as putting together the register pages and the login pages. Not too difficult in Laravel, it provides tools to do most of the work for you. And then I went away for a couple of days without my laptop and left the idea to gestate a while. I then thought it would be better to write it in RUST. I have a plan to learn a new language each year and this year was RUST, so it would make sense to build it in the language I am trying to learn. Yes it will take a hell of a lot longer and will be more frustrating I am sure. But there are 2 major benefits, 1 The best way for me to really learn a language is to build something with it. 2 The finished result should be so much faster than the PHP version.
So I am going to start the code again in Rust.
While away I also thought of a name for the project which is just an Acronym of what I am trying to achieve by doing this. Generic Matrix.org Permission System or GMPS. I want to build something on top of the matrix.org network that will allow an organisation to pick up the project and implement a matrix.org network but with finer grained controlled of who can access what.