jwnigel / permaculture

Permaculture design app built on scraped plant databases. Drag-n-drop GUI with detailed design plan generator.
19 stars 3 forks source link

export design summary infos in table #4

Open berteh opened 1 year ago

berteh commented 1 year ago

After the initial design is done, I would love to be able to export a list/table of the selected plants with their respective:

berteh commented 1 year ago

Let me know if you wanna discuss getting some more structured help on this project... as I've been looking for some nice permaculture design tool for a long time and haven't found something flexible enough for me so far.

I am available via email and/or visioconf as well... even though Belgium and Ohio don't exactly share the same timezone, I'm pretty sure we could find some suitable slot if you want :)

jwnigel commented 1 year ago

These are some really great ideas, some of which I'd wanted to include and others that I hadn't imagined! (like a profile view sketch of the plants).

I had imagined importing a google earth image or drone photo and asking the user for an x- and y- measurement for reference in order to size everything appropriately. But we should include this overhead image as an option, not a requirement, and allow people to design on a blank canvas as you say. I would also like to include topography, but that is going to add complexity, 3d and otherwise.

I scraped an apple database with the very purpose of arranging the apple species that I am grafting by harvest date, and we could expand that to include as many plants as possible as you mention.

But I think the first thing you mentioned--exporting a table with detailed info about plants involved in the design--would be the most import to implement (and probably much easier than some others).

I have begun making some very basic steps using kivy, just because I don't know any other programming languages! If you have alternative ideas I'd be glad to hear them.

Absolutely let's talk sometime you are free. You can write to me at nigeljwright22@gmail.com or we can connect on zoom. To be honest I am completely free for the next two months. I finished a data science bootcamp in Mexico City and have been applying to jobs, but kind of gave up because it seems like a terrible time to find tech jobs. I am in Mexico for now and would like to work hard on this while here. Take care!

berteh commented 1 year ago

Cool. Thanks for you positive answers.

Never used kivy yet, but seems fine to build both mobile android and desktop client that I'd be interested in, so: great! ... just gotta check how it copes with multiple screen sizes and orientation that get cumbersome and time intensive in many older frameworks.

Including topography here is not a priority for me either... as I have a bigger interest for smaller designs (~30x30m or less), but would be interesting for bigger scales, along with ability to include ponds/swales/water. Could be left for much later though.

Multi-language GUI would be important to me, so just activating the existing translation/i18n mechanisms would be very kind of you. I'd happily provide FR+DE translations... or set up community-based translation tool.

I'm much less available than you'll likely be in the coming weeks, being working full time and some... so don't wait for me for anything, but i'll try to help as much as I can.

Best of luck, positive energy, and regards.

jwnigel commented 1 year ago

Thanks for the positive energy and encouragement, that actually means more to me than you might know!! :) I am still an umemployed noob programmer (previously teacher) and see an opportunity to create something that doesn't exist in an area I'm very passionate about. It's great to come across someone who knows programming and permaculture!

I don't expect you to do anything in particular, but your help is very welcome. Just being able to ask you questions about things I can't solve, probably many of them dumb questions, will be great.

Of course I would be happy to have your help translating this into french and german. I could even do the spanish. Topography is certainly at the very end of the to-do list.

Before I dive too far into kivy, I wonder if there's another framework that you might suggest? I have a bit of experience with PyQt5 but never beyond making very basic (ugly) desktop apps, but maybe that would be a better option for the desktop side. As far as I know, you can't open multiple windows with kivy, only tabs, but that might not be as big an issue as other things. KivyMD looks promising for creating the mobile (android) app and has pre-coded templates that will help. But this week and next I am learning the basics from scratch.

One cool feature to include in the mobile app would be to able to use gis or gps to record where you plant a tree/shrub. Even on a small scale, wild things grow so quickly that you can quickly lose plants. I have planted over 3000 trees on my project and probably lost the majority! But that feature can wait :)

jwnigel commented 1 year ago

This is what I'm prioritizing right now: The list is more for my benefit (I don't want you to think these are things I want you to do, they are things I'm working on). I would appreciate your opinion on the best way to connect the plant database to the app. Should we use a sql database like postgres or sqlite? Or are there better options?

berteh commented 1 year ago

Quick follow-up on the points you mentioned here:

For the database features I see 2 parts in my thoughts:

About the data storage technology : how big do you expect it will become? How many plants and designs would be stored in the user's app?

If the sum is less than 2000 then the technology doesn't matter much I think.

Do you need instant online sync amongst all users? I think an update every once in a while is enough and thus wouldn't go for online CRUD like restdb, but I'd rather stick to offline & local file with some import/update mechanism.

In case of local files : SQLite is easy enough but really low level, opt. use sqlalchemy for ORM or MVC or later backend change... but I wouldn't invest too much time there in now. Parquet file is a good alternative to CSV, that natively loads to pandas data frame.

As for technology stack I would recommend to stick to something you already know (python seems to be the case) if you wanna go fast... or to consider the Flutter stack if you want to design a web app at the same time as mobile and desktop. Learning curve may be bigger. Never used it myself yet so I can't say.

jwnigel commented 1 year ago

Btw I have been thinking about the points you made about the database. I like both, though I think the second would be easier to work on first. I totally agree that the user should be able to overwrite the data. I will ask you more later.

jwnigel commented 1 year ago

Let's try to set up a hierarchical structure for the entire project based on our ideas in this thread. Maybe in the project readme?

berteh commented 1 year ago

done, in "project section" and readme PR. If it suits you.

berteh commented 1 year ago

this issue (about the export/report) is not done. I just did create bits of documentation in the project and readme... please re-open ;/

berteh commented 1 year ago

I really like the visuals and content of the "guildes" from permaculturedesign.fr, scroll down the page to see the content: https://www.formations-permaculture.fr/les-guildes-autour-des-arbres-fruitiers-permaculture-design-formation-video/

or check out a sample: https://da32ev14kd4yl.cloudfront.net/versioned/permaculturedesign/FT005/FT005_00%20La%20Guilde%20du%20Pcher%20v2.pdf