Used FarmOS in a recent Hackathon... and we won 1st place

It began with a problem statement that our facilitator provides us. It was an insight that my Government’s Agriculture Department was getting data reports from their farmers, to gain an insight on how much has been produced from each farm (through harvest/slaughter/fished/etc) and to produce an annual report. This was all done with paper forms distributed and farmers have to fill them in and submit them back. (The poor trees! :cry: )

So the solution was very simple. Use the power of the internet to have the forms hosted online and have the farmers do their data entry directly to the department’s database. We were allowed to use any library/software, so a quick google led me here. Pitched it to the team and they agreed to use farmOS for the hackathon. Apologies to the developers who made the Field Kit v1 (cc: @jgaehring ) but the UI/UX of it requiring a bunch of improvements but it was a good opportunity to tackle as well. The hackathon was a 2 week event. The first week being filled with workshops about understanding user personas/design thinking, some coding workshops, sprint planning and presentation/pitching skill. All of these are helpful but the coding workshop was a bit too short for the participants (particularly students) to build a good enough prototype, but that didn’t matter. The 2nd week is when we start coding and building everything. So the 1st week was me prepping and understanding Field Kit and lots of reading. I still wasn’t prepared apparently.

A little bit about our little team of 4 guys: 2 working individuals (myself as a full-time sysadmin and a network engineer), and 2 students in their high school. I took on a student and teach them how to use a framework to develop with. @mstenta and @jgaehring , you may be familiar with Dave with his recent pull requests to the repo. It was an oversight on my end that I didn’t know he would be doing that after his first pull request, but he learnt his lesson to pull request properly and run git commits properly. He still has yet lots to learn in software development but this serves as a good enough starting experience as he takes his computer studies.

Now about my experience with revamping Field Kit from the old regular VueJS to a new framework, Quasar Framework. It was hard but not impossible. Framework is built with VueJS and I thought it was as simple as just moving components/utils/store from one to the other. Apparently, there’s a lot of bindings and references that kind of broke when I moved it. I was using Farmier and have been advised that its still on v1. So this means that I have to refer to Field Kit’s v1 branch for a working app. Docs were here and there (some in the repo, some in the farmos.org and more about farmos.js in its own repo as well). That was confusing but thankfully, I had a bit of guidance from @jgaehring on what I should refer to get a working prototype.

Secondly, when I created a new Quasar project, I set it up to use Typescript because why not learn to explicitly that data gets passed correctly from 1 module/function/getter/mutation/commit/etc to another than typescript eslinting errors everytime I copy a file over. Instant regret that one, but I had to make do and try to disable eslint enough to get a working prototype in the last few days (while at the same time mentoring my teammate of a student on how to code for things while referring to the official docs).

So by the last few hours of the hackathon, I had a working Login and a working Log store to the local storage but haven’t been able to send the log to Farmier. I took an all-nighter and no amount of redbull/coffee is going to help me code further, a couple of hours before the presentation time.

We did the presentation as a team, tried to convince the judges that its a good solution if we had more time. They were impressed and that we have an answer for scalability and feasibility but easily reproducible for other industries (think surveyors, auditors, inspectors, etc).

All in all, it was a good experience and I’d do it again but perhaps not do it in Typescript the next time. For anyone interested, the repo is here: GitHub - Qoyyuum/KebunKitani: A PWA Farm Tracking app that works offline in both browser and native app form. but its a mess of a project at the moment. So I need to work on i18n module first before anyone tries to contribute anything sensible to it (language barrier and all that). That’s my current plan for the moment is to get a working v1 app, much similar to the current v1.farmos.app.

Ask Me Anything!

3 Likes

Wow @Qoyyuum thanks for sharing! What an adventure! And congratulations on winning first place!

I hope Dave enjoyed the experience and learned a lot too. If you or anyone on your team is interested, we host a monthly community call on the second Wednesday of the month. The next one is Jan 12 - feel free to attend! It would be great to meet!

I’m sure @jgaehring explained that we are in the middle of a big transition to farmOS v2 - both in the farmOS server codebase and in Field Kit. It would be great to compare notes and share our vision for Field Kit + Field Modules in the future! There’s so much work to be done - I hope we can work together more!

Welcome to the #farmOS community! :smiley:

3 Likes

I’d be honored to join in. The farmOS and Field Kit is definitely something I would like to contribute to.

2 Likes

It’s awesome to see what you could do with this in such short time, @Qoyyuum, bravo to you and all your team! :clap: :tada: :rocket:

I’m especially impressed with how well you were to navigate the Field Kit repo, despite it being in a bit of disarray as we transition. Field Kit’s “v1” branch was never even really intended to be a full version 1.0.0; we were at 0.8.0 and not even ready for beta, when we decided to move the target and aim straight for v2, to be up to speed with where the farmOS server would be. All that’s to say, nothing was really in place to provide you much help with your project, so yes, I am indeed quite impressed!

I also hope we can learn from the work you’re doing to support farmers there. Not only are Field Kit’s internal API’s incomplete, but the UI/UX is rather far from complete as well. Something we acknowledged early on is that there is no “one size fits all” solution to capturing farm data, when every farm has such unique challenges and different needs. So I’m glad to see there are other developers eager to create new and innovative solutions that we could never hope to achieve on our own.

A significant part of the plan with Field Kit is to try to make this process much easier for other developers, whether they’re experienced engineers or just students. The goal is to provide a robust module system that empowers them to get straight to work creating sophisticated interfaces to serve their stakeholders, without worrying about all the framework and compatibility issues you faced. I only wish we had this ready prior to your hackathon, but I’m confident it will be ready in early 2022.

Thanks so much for sharing your experience, and I hope we can continue the collaboration in the new year!

1 Like