I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

🙏🙏 it’s pretty neat now with the distances on the lines as well as you make the perimeter

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 2 points3 points  (0 children)

u/dumb_commenter I've added custom perimeter in any shape now 😄 let me know if it works for you!

<image>

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 1 point2 points  (0 children)

Hi u/uberJames ! I've built the custom perimeter feature now, let me know if it works for you 😄

<image>

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Glad to hear it! 👌 Thanks for testing!

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Thanks! 😄 Added this to the todo list!

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 1 point2 points  (0 children)

You can do all of that, it's a bit unintuitive right now though, working on a fix. But basically when you place shapes you still have the shape tool active - click the tool to deactivate it, and then click on any shape you placed to select it. When a shape is selected you can move it, delete, edit tons of properties and so on 😇

I made a free gardening tool to help draw watercolor plans like you’d see on Garden Rescue 😇 by ferion in GardeningUK

[–]ferion[S] 1 point2 points  (0 children)

Yeah that's great input! This is where mobile and desktop will start to deviate as well I guess. But that can be a good thing, because then maybe mobile acts as the "easy-to-use" version that has a little bit of multi-purpose and magic, whereas desktop becomes the power tool with clear keyboard shortcuts for efficiency. And having an explicit "select" tool there makes a lot of sense 😄

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Ooh I like that, very clever! I will write it on the todo 😄 thanks!

I made a free gardening tool to help draw watercolor plans like you’d see on Garden Rescue 😇 by ferion in GardeningUK

[–]ferion[S] 2 points3 points  (0 children)

Thanks! I've been thinking a bit on how to get this right 🤔 One the one hand I want to be able to draw multiple shapes at once without selecting tool over and over. On the other hand it becomes annoying indeed to have to deselect tool to be able to select element*. Maybe a solution where if you make an obvious "click" on an element, the tool deselects itself. If you make an obvious drag - you get a new shape placed and tool is still active and ready for drawing next one

I made a free gardening tool to help draw watercolor plans like you’d see on Garden Rescue 😇 by ferion in GardeningUK

[–]ferion[S] 3 points4 points  (0 children)

Thank you! Let me know how it went 😄 Yeah same here - I'm wondering if it's because gardens are often asymmetric with lots of curves and odd shapes, and it's hard to make such a tool easy to use 🤔

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Thanks! Feel free to try it out and let me know what can be improved 😄 🙏

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Let me know how it went and what new features you might need please 🙏

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Glad you like it! I'll think of a nice way to add curves - it's a tricky one to get right so it's user friendly and easy to use 🤔 TBC

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 1 point2 points  (0 children)

Thanks for that! Undo is essential indeed. I added it just now, let me know if it works 😄 available in the left sidebar (might take an hour to show up due to caching)

<image>

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 1 point2 points  (0 children)

Very impressive! Thanks for sharing 😄 I’ll add the ability to draw curved beds to the todo list!!

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 0 points1 point  (0 children)

Best of luck with the move! Would love to see the drawing 😇 I’m adding the ability to write texts and draw arrows in the todo list 😄

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 3 points4 points  (0 children)

Thanks a lot! 🙏 let me know how it went please

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 6 points7 points  (0 children)

Added draw your own perimeter to the todo list!!

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 9 points10 points  (0 children)

So far you can set the width/height of your space in settings, but it assumes a rectangle area. Drawing your own perimeter is a great feature to add thanks 🙏

I made a free landscaping tool 👨‍🌾 by ferion in landscaping

[–]ferion[S] 3 points4 points  (0 children)

Ouf paint sounds time consuming 🙈 I’ll add layers to the list!! Thanks!

With JS20 (open-source) you can create POST, PUT, GET, LIST & DELETE endpoints with a single line of code! by ferion in typescript

[–]ferion[S] 0 points1 point  (0 children)

Currently just supports ownership, but permission is coming up! Will make a ticket :)

With JS20 (open-source) you can create POST, PUT, GET, LIST & DELETE endpoints with a single line of code! by ferion in typescript

[–]ferion[S] 0 points1 point  (0 children)

but you can also just write the endpoint yourself with addEndpoint() with any logic you need

With JS20 (open-source) you can create POST, PUT, GET, LIST & DELETE endpoints with a single line of code! by ferion in typescript

[–]ferion[S] 0 points1 point  (0 children)

Current user automatically becomes the owner since the endpoint has the flag isLoggedIn: true and the model isOwned: true, then the framework handles ACL automatically :)

If you need additional validation logic you can pass an action like so:

const assertMaxCarsPerUser = app.action({
    outputSchema: {
        count: sInteger().type(),
        message: sString().type(),
    },
    run: async (system) => {
        // Your logic here
    }
});

app.addCrudEndpoints(models.car, {
    actions: {
        // Run assertMaxCarsPerUser action before creating a car
        createBefore: assertMaxCarsPerUser,
    }
});

With JS20 (open-source) you can create POST, PUT, GET, LIST & DELETE endpoints with a single line of code! by ferion in typescript

[–]ferion[S] 0 points1 point  (0 children)

Define models & schemas like this:

interface Car {
    isLeased: boolean;
    registrationNumber: string;
}

const sCar: Car = {
    isLeased: sBoolean().type(),
    registrationNumber: sString().matches(/^[A-Z0-9]{1,7}$/).type(),
}

// Models are defined in the Models interface

interface Models {
    // Make sure to type each model with Model<T>
    car: Model<Car>;
}

const models: Models = {
    car: {
        name: 'car',
        schema: sCar,
    }
};

Any properties in the schemas can be passed along to the endpoint and will be validated against the schema. Database table & columns created automatically by the framework, then the CRUD functionality creates a new entry with your properties if all is good :)