Fork me on GitHub
#fulcro
<
2024-02-22
>
Brett12:02:09

Hey, any pointers to an example fulcro app (that is not a toy) where I could peak around to learn more db / query / ui modeling ?

Brett12:02:52

I feel like for a beginner, the transition from :enemies, :friends example to some more realistic app is tough 🙂

Jakub Holý (HolyJak)09:02:13

BTW I am always looking for feedback from beginners, and for possible gaps in the learning materials we have. Did you go through https://fulcro-community.github.io/guides/tutorial-minimalist-fulcro/ and https://github.com/fulcro-community/fulcro-exercises ? Are you looking for the next learning step to take, and not finding a good one?

Jakub Holý (HolyJak)09:02:39

I’d be happy to answer any questions. I am also https://holyjak.cz/holy-dev.html, and we could agree on a free trial of that :)

Brett16:02:03

Thanks for your answer Jakub, I missed that list from the community site ! Some feedback but please take it as suggestions and nothing else 🙂. I really appreciate the work that you have been doing 🙏 • I got away for really too long without understanding ident for singletons. I thought "this is just for when I have a good match between a thing with ids in a database" but why would I need to care about that for my settings pane. • It took me forever to stop thinking that query are not like SQL. Here some kind of online playground to play with graph and query would be nice. • Your minimalist and advanced tutorials are a good read to get a different perspective than the dev guide. The dev guide is great but I found that some sections I kept reading and reading again without really getting it. • I wish Fulcro material was all on the same site. (dev guide etc.) It would give a stronger sense of community. Now it feels disconnected and small. Clojure is already a niche and it gave me the sense of investing into a niche within a niche. • I built a toy app along the way and each time I wanted to add something new (routing, resolvers), it was a huge battle. I wish there was more "targeted" tutorials, where specific features are added to an existing example step-by-step. • Positively surprised that I got in without knowing anything about react (but I know web development from 10 years ago) and it was just fine, I don't think you need deep knowledge of react to get things going in fulcro. • Getting a full setup running is not easy and for that the dev guide was awesome (I have some clojure experience but never touched clojurescript) • Not Fulcro specific but I spent a long time fighting dates. I ended up going for cljc-time and I had to implement some custom types for transit and that felt unnecessary complicated. Maybe that's covered in RAD ? Would be nice to know when I should graduate to RAD actually.

👍 2
Jakub Holý (HolyJak)17:02:07

Many thanks! • I assume you understand why “static” idents for “singletons” are useful now? How would you explain it to your younger, searching self? • Regarding query - could you elaborate a little on what gave you most troubles here, and perhaps how to help learners to grasp this better? Is there anything I can change https://fulcro-community.github.io/guides/tutorial-minimalist-fulcro/index.html#_components_query to help? • I agree the split across 2 sites is unfortunate 😢 I will think about it. • “…tutorials, where specific features are added to an existing example step-by-step.” - that sounds as a neat idea! We just need someone to write those 😅 • Good to hear that you can get so far with only a light knowledge of React! • Getting a full setup running… - don’t https://github.com/fulcrologic/fulcro-template and https://github.com/holyjak/minimalist-fulcro-template / https://github.com/holyjak/minimalist-fulcro-template-backendless help here? • Dates - transit-js https://github.com/cognitect/transit-js?tab=readme-ov-file#default-type-mapping, no? What did you struggle with, getting frontend and backend to agree?

Jakub Holý (HolyJak)17:02:13

You may be interested in com.fulcrologic.fulcro.algorithms.transit and com.fulcrologic.rad.type-support.date-time (this one provides “date/time functions for CLJC”). There is also fulcro/3.7.0-RC5/fulcro-3.7.0-RC5.jar!/com/fulcrologic/fulcro/server/api_middleware.clj which does something with transit, but no date-specific stuff. I guess old good #inst "..." using java.util.Date on backend ends up as JS Date on FE.

Brett09:02:49

• Your section on queries is actually comprehensive (even the warning about comparing to SQL). But it is dense, and it went over my head the first time I read it. Maybe extend on the visualization that you made with a "concrete" example : the DB on one side, the extracted graph on the other, with colors and some data (customers, persons etc.) • New tutorials : I realize that it is unfair to come here and ask for even more free work from the community. I would like to do a post about implementing my toy app. But it would need to be reviewed. If it's interesting maybe there is a spot to host it somewhere on the community site. • Getting setup : Yes those were helpful, thanks ! • Dates : I had backend code based on LocalDateTime and I thought #inst would not help me so I did this transit thing. At the end it was interesting to see how to add new types to transit. I will check the RAD date-time stuff, thanks.

🙇 1
Jakub Holý (HolyJak)22:02:02

Thanks, that’s an excellent feedback!

Jakub Holý (HolyJak)22:02:29

> But it would need to be reviewed. Count on me here! > If it’s interesting maybe there is a spot to host it somewhere on the community site. 💯 !

genekim18:03:08

@U951KSB7A — I 100% resonate with your comment, and want to help by creating a tutorial. Even this weekend, I had the experience of creating an element in a report, but couldn’t get it to render — embarassingly, it took 2 hours for me to figure out. But I’m finally getting to the “intermediate level skill” stage where I think I now can do most things I need to, and still fervently believe that Fulcro/Fulcro RAD is an incredible timesaver. I’m keeping a list of things I want to put in the tutorial here: https://clojurians.slack.com/archives/C68M60S4F/p1689761911560369

❤️ 1
genekim18:03:29

I’m also starting to create a namespace of helper functions, with comments like this: • I’m a button handler, and I want to get the props of the component I’m in • I’m a mutation (client-side), and I need access to other state elements • I’m a mutation (client-side), and I want to do something the server gave me • I’m a mutation (client-side), and I want to execute something on the server No promises, but I think I’m super close to knowing what should be in the tutorial. I’ll put my thoughts in a Google Doc in the next couple of days!

😍 2
Jakub Holý (HolyJak)19:03:01

Awesome! Regarding the 2h, any addition to the Fulcro Troubleshooting Tree that would have helped?