ton-society / grants-and-bounties

TON Foundation invites talent to imagine and realize projects that have the potential to integrate with the daily lives of users.
https://ton.org/grants
300 stars 134 forks source link

TON Speedrun #252

Closed romanovichim closed 1 year ago

romanovichim commented 1 year ago

Summary

Website with quests - tutorials on TON. Clone the github, go through 5-6 steps and immediately try some practical thing on TON. And only then proceed to complex tech tutorials.

This will be the MVP version: https://speedrunethereum.com/

Context

The problem of a typical tutorial on TON is that only prepositions are clear to a beginner(cell from c4 using adnl to slice e.t.c), and that there are a lot of steps (and on the 28th step...) in the tutorials, each of which has a lot of theory.

So if we imagine the process of a developer rolling into the ecosystem as a funnel, it will turn out that many fly off at the moment of the first touch with the technical side of TON(Although it is worth noting here that the people working on onboarding developers in TON are doing an excellent job and over the past year everything has become much better.).

And I want it to be different, as it is done in games, the first quests are simple and exciting to feel the game, and then thousands of hours in this game are just around the corner.

I want to make a series of 6 quests working on this principle. A person clones a repository, takes 6-7 steps and is already feeling some working, practically applicable product, and then there are links to already deep and complex tutorials.

All tutorials will be on one one-page site with a thin connection, and the last 3 quests will be available only after the first three quests are completed (the website will check whether the person has deployed the first three quests from his wallet).

But of course, in addition to quests, we need articles where to send the user if, after the quest, he wants to delve into the TON. Some of the necessary tutorials and articles are already there, some I want to write as part of this footstep.

The site itself will be just a deployment page on github pages with a simple design, if the concept works, then in the future it will be possible to complicate the design, as it looks like in the original idea: https://speedrunethereum.com/

The footstep doesn't mention marketing, as while I'm doing the footstep, I'm planning to get into custdev and thus find the best marketing practices for a similar project, as well as a backlog for future improvements.

Quests and articles that I want to prepare as part of this footstep. Some already exist (I will describe them here to understand the concept):

P.S Articles will be published to dev.to and https://t.me/ton_learn

Goals

Create tutorials on TON that first draw a person into the ecosystem, and only then load him with complex technical details

Deliverables

Github pages Website with Tonconnect auth and adnl check so that the last three tasks are available only after the first three

Definition of Done

Reward

Github pages Website with Tonconnect auth and adnl check so that the last three tasks are available only after the first three (creation and testing). 300 USD in TON equivalent

Total: $4350

Oriental Release Date

I need two months for this footstep

Gusarich commented 1 year ago

Can you please specify total amount of rewards?

romanovichim commented 1 year ago

Can you please specify total amount of rewards?

In total for this footstep I want 4350 USD in TON equivalent

ProgramCrafter commented 1 year ago

Deploy NFT quest can be based on https://docs.ton.org/develop/get-started-with-ton, I think.

delovoyhomie commented 1 year ago

@romanovichim, apologies for the long wait. It took some time to build and evaluate the future of this product. We have concluded that it is crucial to develop both FunC and Tact, especially in terms of integrating deeper articles with superficial learning at the start.

As you said, you will create a prototype for custdev that will then be refined - that's very commendable!

You can start work now! Don't forget to occasionally update us on your progress here.

romanovichim commented 1 year ago

Update: I wrote drafts of all articles and drafts of all quests and their code. In the near future I will proofread everything and start publishing articles.

romanovichim commented 1 year ago

Articles and quests:

1) Deploy NFT Quest - https://github.com/romanovichim/TONQuest1 Articles: write a simple contract from scratch in ton-community/sandbox (work with c4,throw e.t.c)https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/pipeline/simplesmartcontract.md write tests for a simple contract https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/pipeline/simpletest.md deploy via wallet (simple deploy pipeline) https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/pipeline/simpledeploy.md

2) Chatbot contract Quest - https://github.com/romanovichim/TONQuest2

Articles: Let's analyze the contract and sending messages https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/pipeline/chatbot.md ton-community/sandbox tests for messages https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/pipeline/chatbottest.md

3) Vending Machine Jetton Quest - https://github.com/romanovichim/TONQuest3

4) Lottery Quest - https://github.com/romanovichim/TONQuest4

Articles: Analyzing lottery contract - https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/bonus/random/random.md

5) TonConnect Quest - https://github.com/romanovichim/TONQuest5

Articles: react_ui login button https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/tonconnect/button.md react_ui send transaction https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/tonconnect/sendtx.md

6) Marketplace Analyzer Quest - https://github.com/romanovichim/TONQuest6

Articles: Introductory about ADNL and connecting to it https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/requests/ADNL/adnlintro.md Run GetMethod and how sales contracts work https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/requests/ADNL/adnlgetsale.md Collection of transactions on ADNL https://github.com/romanovichim/TonFunClessons_Eng/blob/main/lessons/requests/ADNL/adnltxes.md

SwiftAdviser commented 1 year ago

@romanovichim hey! You did a nice job! Can I ask you to add syntax highlight to every file you provided to make it easier to read the code?

CleanShot 2023-08-15 at 11 21 42@2x

Like "tsx" or "console"?

console:

npm install blueprint

JSX (react):

import { LiteClient, LiteRoundRobinEngine, LiteSingleEngine, LiteEngine } from "ton-lite-client";
import { Address, Cell, loadTransaction,parseTuple, TupleReader, beginCell  } from "ton-core";
import { Buffer } from 'buffer';

function intToIP(int: number) {
    var part1 = int & 255;
    var part2 = ((int >> 8) & 255);
    var part3 = ((int >> 16) & 255);
    var part4 = ((int >> 24) & 255);

    return part4 + "." + part3 + "." + part2 + "." + part1;
}
romanovichim commented 1 year ago

yes, when I finish with the site, I will go through the lessons and add syntax highlight

romanovichim commented 1 year ago

@delovoyhomie DONE

wallet

EQAvmc9oVnOvLFlUAgeNmZNZoKeDg9vTEiAQxNFw-t5mh3m7

MVP: https://romanovichim.github.io/tonspeedrun/

P.S I am gradually starting to post content from this footsteps and at the same time I will go through all the articles again to clean them up, including what Roman wrote about. I will also try to collect feedback for the next iteration of the product if it hits the audience

SwiftAdviser commented 1 year ago

@delovoyhomie the initial example in the footstep was provided on a custom domain:

This will be the MVP version: https://speedrunethereum.com/

Could we ask to provide the same level of quality for the project?

It has many reasons why it's important:

  1. Branding. It's so easy to remember domain like "tonspeedrun.com" instead of long github domain.
  2. SEO. By hosting the project on the custom domain, any user who is interested in TON can find TON Speedrun in Google, Bing, etc. It won't work for GitHub domain.
  3. Popularity. By making the release on a custom domain, you truly release the project, while MVP version sure can be hosted on the github too.

CleanShot 2023-08-31 at 15 04 15@2x

I would kindly ask @delovoyhomie or @romanovichim to select, buy the domain, and release the project everywhere with a beautiful and easy-to-remember version of TON Speedrun. It's very cheap, but the effect could be great.

delovoyhomie commented 1 year ago

@SwiftAdviser, that's a cool idea, I'll do it!

delovoyhomie commented 1 year ago

https://tonspeedrun.com

romanovichim commented 1 year ago

Hi all!

I wanted to ask if there is any possibility to post a link to https://tonspeedrun.com/ on Twitter and official TON channels?

@delovoyhomie pinged the Community Managers clan, but unfortunately only ambassadors supported it.

P.S I will also be grateful if you mention my https://t.me/ton_learn, which I use to promote TON tutorials.

delovoyhomie commented 1 year ago

Rewards sent! Thank you for the contribution.

delovoyhomie commented 1 year ago

Paid for seven milestones:

Questbook proposal