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

Zone01 - Student Program Journey #59

Open
DIGIX666 opened this issue Feb 28, 2024 · 27 comments
Open

Zone01 - Student Program Journey #59

DIGIX666 opened this issue Feb 28, 2024 · 27 comments
Assignees

Comments

@DIGIX666
Copy link

DIGIX666 commented Feb 28, 2024

Hi everyone :)

We are thrilled to create our first issue to share with you the adventure we're about to embark on in Gno.

To start, we are 4 students - @kazai777 (Zak) , @mous1985 (Muss), @MalekLahbib (Malek) , @DIGIX666 (Theo) - at Zone 01 school in Rouen (France).

Through our school, we were able to train in the Go language, therefore , we are excited to be able to come and contribute to GNO.

In this issue, you'll be able to follow all our adventures over the next 3 months.

We're looking forward to interacting with you.

See you soon 👋🏼

Hackerspace issue for https://github.com/gnolang/student-contributors-program/blob/main/zone01-rouen-fr/README.md

@kristovatlas
Copy link

Looking forward to following the journey!

@kazai777
Copy link

kazai777 commented Mar 1, 2024

Hi everyone 👋

I've started following the "how-to-guides" section on https://docs.gno.land. It's well explained, but I find it lacking in comparison for a developer who has never worked in blockchain.

For example, having developed in Go, I've deduced that the Render() function in Gno is somewhat equivalent to the main() function in Go, in the sense that it's necessary for executing realms. But there's nothing to confirm whether what I think is true or not. It would be nice to have comparisons between certain things specific to blockchain and things known to traditional developers.

@DIGIX666
Copy link
Author

DIGIX666 commented Mar 1, 2024

Today, I was able to start getting familiar with Gno by looking at the docs
https://docs.onbloc.xyz/docs/building-a-realm/overview
https://docs.gno.land/getting-started/local-setup/

I also encountered my first problem during my make install in the gno/ repo.

To check the install, I used the gno command but got command not found.

So, I looked in my /usr/local/go/bin but only found go, while the executables were in ~/go/bin/.

To solve the problem, I added the command export GOBIN=/usr/local/go/bin/ to my .zshrc and after that everything worked very well.

Update : To solve the problem, without having to change the rights of the /usr/local/go/bin folder, and so that the binary in ~/go/bin executes globally on the system, add the following line in the .zshrc to replace GOBIN=/usr/local/go/bin :

export GOPATH="$HOME/go"
PATH="$GOPATH/bin:$PATH"

when trying to install the GNO extension on vsCode, the command was asked to be done
SCR-20240302-qehl

What I find odd about this installation is that @kazai777, who also uses an Apple Silicon Mac, didn't need to do this.

Tomorrow, I'll be diving into the "How-to guides" and "GnoDev".

@mous1985
Copy link

mous1985 commented Mar 1, 2024

What We Do:

Explore :

Tutorial:

Installing gno & basic testing for smart contracts(realms):

  • Grasp the fundamentals of realms and packages in gno .

Feedback:

@MalekLahbib
Copy link

More about us:

After my colleagues explained who we are, what we're doing, we hope that we'll be part of the gno family in the long run, to participate and leave a legacy.

As we begun diving into the docs, we found that the pages order is not logical for new developers who wants to learn about gnolang. As we discussed with @moul, we'll suggest some modification as we dive more.

We yet made a PR #1712 to modify the testing command in testing-gno page. (first fingerprint 😛 )

@DIGIX666
Copy link
Author

DIGIX666 commented Mar 2, 2024

Today

I created a new PR for a change in local Setup

Update : PR validate and merge

@DIGIX666
Copy link
Author

Review of my last week

I have test counter-app and poll. After the call with @gfanton, I'm back to testing gnodev and I see my first errors with that 🥲

Today

I create to issue : gnodev and gno.mod

@MalekLahbib
Copy link

After following @leohhhn 's whitelist tutorial, I created an issue with modification suggestions, issue 1794.

It was very interesting as I encountered some problems and errors that helped me understand more how gno ecosystem works, and in the same time helped @leohhhn to know about some bugs in the code (I hope :) ).

I hope that our experience will help the next trainees to understand easier the gno ecosystem.

@MalekLahbib
Copy link

A quick update: A day of work with @moul in a coworking yesterday 21th march was very productive:

  • I coded a package and a realm for a todolist.I submitted a PR 1811. May be a V2 will be added in the future. (web3 interaction with adena wallet?)

  • I submitted an issue concerning the fact that ufmt.Sprintf doesn't display unicode emojis. We discussed the problem and @moul challenged me to modify the function to make it work: Challenge accepted.

  • I added also an issue concerning default CSS, as we noticed that the github checkbox wasn't displayed as it should (issue 1815.

@kazai777
Copy link

kazai777 commented Mar 24, 2024

To continue my gno apprenticeship, I created a lottery gnolotto. It took me a while to figure out how to send funds to a realm so that I could automatically manage the prizepool for distribution to the winners. I've discovered the different functions of std, and now I'm coding the part to manage the funds in my realm to finish my lottery.

Update: I've finished my lottery, but unfortunately I wasn't able to generate totally random winning numbers using math/rand, so I've created a function that generates pseudo-random numbers based on the height of the block, as suggested by @leohhhn.

@kazai777
Copy link

After finishing my lottery on gno.land, I created a mini tutorial and created a PR to add my lottery to the examples on the master gno repo.

@DIGIX666
Copy link
Author

For better continue with language gno I created a Other_Todo.
This Todo is less performante that malek's todo because I don't use gno.land/p/demo/avl.
I added from new functions as ClearAllTasks GetIncompleteTasks GetCompletedTasks Stats.

Now I think going start create a Forum for Artist or maybe group project for create a Wikipedia

@MalekLahbib
Copy link

A quick update: A day of work with @moul in a coworking yesterday 21th march was very productive:

  • I coded a package and a realm for a todolist.I submitted a PR 1811. May be a V2 will be added in the future. (web3 interaction with adena wallet?)

  • I submitted an issue concerning the fact that ufmt.Sprintf doesn't display unicode emojis. We discussed the problem and @moul challenged me to modify the function to make it work: Challenge accepted.

  • I added also an issue concerning default CSS, as we noticed that the github checkbox wasn't displayed as it should (issue 1815.

@MalekLahbib
Copy link

What's new? a lot 🎆 .

  • PR 1811 (todolist pkg and realm v1) is finally ready to be merged.
  • PR 1889 that solves ufmt multibyte problem is ready to be merged too.
  • issue 1874 made me understand more about how gno works, and highlighted the fact that Portal loop is still not perfect.
  • issue 1897 is about a problem we faced with @mous1985 with the forum tutorial made by @zivkovicmilos, we found the bug and suggested the modification.
  • Finally a big thanks to @moul for giving us this opportunity to learn, to be part of the big gno family, to grow in knowledge and experience by being part of this project. A lot of thanks to @leohhhn, @gfanton, @zivkovicmilos and others for their continuous help.

@kazai777
Copy link

kazai777 commented Apr 9, 2024

What's new?

I've started a new project that you can follow here. The idea is to create a skill checker, where each user can submit skills and projects they've done, and ask to be audited by peers to check their level on a particular skill. Those audited will have a score that evolves according to the number of skills and audits received on each of their skills. Auditors will receive tokens as a reward for their audit and quality.

@mous1985
Copy link

mous1985 commented Apr 11, 2024

What I'm actualy working on :
I've started a project Auction Dapp for more information about the project, here.
to see the evolution of the project, here.

@DIGIX666
Copy link
Author

Project Library

SCR-20240412-revc
package
realm

I go to create library because I like read and I think it's good project for use many functionality in Gno. I don't say it's very relevant but I through it's fun.

Step 1

Add others functions and check how save a book

Step 2

Create user interface

If you want speak with me for upgrade my code or other, with pleasure :)
See you soon for next step 🚀

@MalekLahbib
Copy link

Update:

  • Finished a V0 of the project gnofundme (p , r). I may add a js front to the project as suggested by @leohhhn (need to understand how the gno js/tm2 js pkgs work and interact with adena. Need some time to review react too 😛 ).
  • Happy, proud and astonished to be cited on the Gno.Land Core Team call on 17/04/2024 for PR 1889 and PR 1811. Sorry @michelleellen, I didn't know about, I would've prepared a speech. Thanks to @moul for trusting us and giving us the confidence to contribute to such a project, even if it's very tiny contributions.
  • looking forward for bigger contributions, studying some suggestions by @moul.
  • Made this contribution PR 1947, but realized it's a bigger issue, a gnoproposal/work-in-progress issue 1374.

@MalekLahbib
Copy link

Wazzzuuuup?

Still working on GnoFundMe project, I realized it's bigger and more complicated than I thought.
You can take a look at my ideas about this project and contribute here.

You can take a look at this PR 2085, to add comments or suggestions.

@mous1985
Copy link

@kazai777 @DIGIX666 @mous1985

Timelock

A Timelock is a smart contract that delays the execution of certain operations until a specified time period has passed.
The Timelock Realm will ensures that certain operations can only be executed after a predefined period, enhancing security and governance.

Project Structure

p
├── demo
│ ├── accesscontrol
│ │ └── accesscontrol.gno
│ └── timelock
│ │ └── timelock.gno

Overview

This project includes the following components:

  1. AccessControl Package:

    • Manages roles and permissions, supporting functions to grant, revoke, and check roles.
  2. Timelock package:

    • Implements the timelock mechanism, providing functions to create and release timelocks and ensuring only authorized roles can execute critical functions.

@MalekLahbib
Copy link

Hello,
I'm still working on GnoFundMe project, a lot of work to be done, some questions to be responded, so decisions to be made.

Opened an issue #2197 about a Gno Studio Connect issue.

Made this quick PR #2227 about a typo in the Coins docs.

We are working in group on what's next, after this internship experience.

@DIGIX666
Copy link
Author

Update on our current work 👀

I have a PR under review for the UUID package which I think will block with the creation solver. We’ll see if it’s feasible to do without it.

An issue on ERC165 is open because I am working on its interpretation for Gno to enrich the accessControl and timelock package that the @gnolang/24-zone01-1 and I are working on, so feel free to come and give your opinion on it :)

Thanks @leohhhn for validating my first PR

@kazai777
Copy link

Recently I made the following two PRs:

  • This PR, which aims to have a realm r/profile, which centralizes the creation and management of a profile. I'm waiting for a second review on this PR

  • This PR which is a package p/subscription for managing different types of supscription, on which I'm waiting for a review.

@DIGIX666
Copy link
Author

DIGIX666 commented Jun 4, 2024

Hi, I just updated my UUID . Feel free to take a look and share any improvement suggestions.

@kazai777
Copy link

kazai777 commented Jun 8, 2024

We have created 2 packages in collaboration with @mous1985 and @DIGIX666 . The accesscontrol package provides a library for managing roles and permissions within Gno. The timelock package offers a library for scheduling, canceling, and executing time-locked operations in Gno.

@MalekLahbib
Copy link

Still working on GnoFundMe project, trying to deliver a simple and functional first version.

We're thinking with @mous1985, @kazai777 and @DIGIX666 about creating a draft version of our "GnoPool" project that can clarify the idea and show how this contribution will look/work.

In the same time, I try daily to take a look at every commit merged to try to understand what's new/happening, and figure out how to contribute to the core project.

@kazai777
Copy link

Hi everyone, with @DIGIX666 we've needed randomization in our projects several times, so we're going to start creating a VRF Oracle. We've made this issue to get feedback on the questions we're asking about it.

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

No branches or pull requests

5 participants