Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stefann's Builder Journey #94

Open
stefann-01 opened this issue Oct 6, 2024 · 2 comments
Open

Stefann's Builder Journey #94

stefann-01 opened this issue Oct 6, 2024 · 2 comments

Comments

@stefann-01
Copy link

stefann-01 commented Oct 6, 2024

My Builder Journey

Hey everyone! I'm Stefan, a Computer Science student from Belgrade, Serbia. I was introduced to Gno.land by @leohhhn during the Web3 Camp at Petnica Science Center, and since then, I’ve been eager to contribute to this ecosystem.

I thought the best way to start would be through the Student Contributor Program, so I assembled a team with three other students from my university. You can check out our application here 🔗

While we wait for a response, I’ve decided to get more familiar with the Gno environment by building an interactive home realm (got my eyes on that best home realm prize 👀). Will be back with more info when I am done.

Feel free to track my progress on this issue — I'll do my best to keep it up to date!

@stefann-01
Copy link
Author

stefann-01 commented Oct 7, 2024

Hey everyone, I just finished building my home realm, and you can check it out here 🎉

I wanted to give it a unique twist, so since I love traveling, I came up with an idea to make it a bit interactive. Whenever someone tips my travel jar (sends GNOT's to the realm), the background photo changes to a different city — like I’m traveling around the world thanks to your donations! 🌍✈️
And of course, I sprinkled in a little extra: a sponsor leaderboard to showcase the top supporters. 💪

On a serious note, I really think this was a great idea for my first realm, as it helped me get familiar with the environment and explore many of the basic libraries. Some didn’t make it to the final product, but the experience stays.

I also tried using a random function to display backgrounds after each donation. I had a rough time using the built-in rand, so I ended up making a linear congruential generator instead. But in the end, I realized that randomness was too random for my case — no one wants to donate and see the same background... So I switched to a sequential background change, which turned out to be a better fit.

Additionally, I've included a feature that allows the realm owner (myself) to withdraw accumulated GNOT donations. 💰

You can find all the details and discussion in PR-2918

I hope you like it, and if you do, make sure to tip that jar! 😉

As for future plans, I think a good next step would be getting more familiar with the environment and libraries by doing some follow-up work on other live coding sessions.
With my team, I also discussed an idea for a simple gambling game, similar to Fomo3D, where the last person to make a move wins the pot. We’ll be using React for the front end to make the user experience more engaging.

Feel free to share any thoughts and suggestions. Till next time!

@stefann-01
Copy link
Author

stefann-01 commented Oct 14, 2024

Hello again!

Last week was quite interesting - I had a chance to do an in-depth analysis and propose improvements to a concept and logic frequently used in home realms. What I’m referring to is the config package, currently used in most home realm examples in the monorepo. The problem that sparked my interest was highlighted by @moul during the review of my home realm PR. Based on this, I came up with a solution that refactors the config in a way that makes it safe and makes the underlying idea clearer. This is important since most new developers will be referencing the home realms in the example directory when building their own, as I did. You can read more about this in my review response here: gnolang/gno#2918 (comment)

Also, I just submitted my proposal to address the issue that @moul raised about the lack of documentation for some standard library functions related to the problem above. If assigned, I hope to contribute to the documentation regarding these functions. Here is the link to the related issue: gnolang/gno#2923 (comment)

While analyzing the above problem, I also became familiar with the Ownable package, for which I made an extension proposal. This proposal would enable Ownable to support a backup superuser address in case access to the main superuser address is lost. You can read more about this at the bottom of this comment: gnolang/gno#2918 (comment)

I will be making separate issues regarding each proposal mentioned, I am just waiting to get at least one approval from a more experienced contributor.

Besides all this, while reading through other open issues, @matijamarjanovic and I came up with an idea. We thought of creating a fine-tuned ChatGPT plugin for Gno development. The plugin would leverage Gno’s official documentation, examples, and solutions from the gnolang GitHub repository. This would make Gno development easier for newcomers, especially while the language is still in early development and the documentation is not yet complete. You can read more about this proposal here: gnolang/gno#2950 (comment)

Feel free to share any thoughts and suggestions. Till next time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant