Skip to content

Commit

Permalink
user stories added
Browse files Browse the repository at this point in the history
  • Loading branch information
matiman committed Aug 19, 2024
1 parent 8837bce commit 1430471
Show file tree
Hide file tree
Showing 18 changed files with 3,401 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ test-ledger
.yarn
.anchor
*.pdf

Binary file added capstone_DevLoot/DevLoot - Userstory.docx
Binary file not shown.
Binary file added capstone_DevLoot/Flowchart-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added capstone_DevLoot/Lean Canvas-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
99 changes: 99 additions & 0 deletions capstone_DevLoot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
DevLoot - User Stories

Google Docks Link: https://docs.google.com/document/d/1wVGIC_OXgrSrWkDeLMdQfoU17As3TCAep8PGiTd-xqY/edit?usp=sharing

DevLoot is an interactive platform that enables Web2 engineers to learn Solana development in a fun and effective way.
Code it, visualize it, and never forget it.

User Stories


Student
As a student, on DevLoot.com, I should be able to click “connect wallet”, so that I can see an option to connect my
Phantom wallet.
As a student, I should be able to select the wallet options provided, and click “connect wallet”, so that I can see a
“sign” message in order to sign a transaction to connect my wallet with DevLoot.
As a student, I should be able to click “sign”, so that my wallet is connected to DevLoot.
As a student with a connected wallet, I should be able to see Solana course content with text and visual media, so that
I can start learning.
As a student, if my wallet is not connected, I should be redirected to the DevLoot home page, and see the “connect
wallet” button.
As a student, I should be able to see questions after reading the contents of the course.
For multiple choice questions, I should be able to select one answer from the choices, and click the submit button.
If my answer is correct, I should see the “correct answer” text in green below the question and also see my score go up
by some points depending on the difficulty of the question to the top right corner.
If my answer is incorrect, I should see “try again” text in red below the question and should be given a maximum of up
to 3 trials. My score wouldn’t change.
If I exhausted 3 trials, and my answer is still incorrect, I should see the correct answer in blue text, and I will lose
1pt. The page should automatically display the next content or question.
As a student, if I finish all the contents and questions for a section, I should see a pop up window with a text
“Congratulations, you completed the course.”
If my score is above 80%, I should also receive 2 memecoins (BONK and WIF), and a DevLoot Diamond NFT into my connected
wallet.
If my score is below 80%, I should receive 2 memecoins (BONK and WIF), and DevLoot Gold NFT into my connected wallet.
As a student who completed the first course with Gold NFT, I should see a link “Repeat Course” that will take me to the
beginning of the course so that I can revise the course.
As a student who completed the first course with Diamond NFT, I should see a link “Next - Advanced Course” that will
take me to the Advanced Course page.
As a Diamond student, I should see text and image content with a command line window that will allow me to run Solana
related commands.
In the command line, I should be able to type solana related commands and be able to click the “Run” button, which will
allow me to run the commands on a browser without installing any libraries or tools.
As a Diamond student, now I should be able to see contents as a normal student and also a command line and continue my
learning journey.
Student Profile
As a student with a connected wallet , If I click “Profile” button:
If I am a student with no NFTs issued from DevLoot, I should see a blank profile picture, with my current points, and
also the percentage of the course that I completed.
If I am a student with NFTs issued from DevLoot and it’s not staked, I should see my NFT as a profile picture and the
hexadecimal part of the NFT address that points to it.
If I am a student with 2 memecoins received, and I haven’t provided liquidity, I should see the Memecoin picture with
its hexadecimal address.
If I am a student with NFTs issued and it’s staked, I should see the NFT and also the staking rewards amount I am
receiving in USDC that gets updated every 24 hrs.
If I am a student with Memecoins issued and I provided liquidity to the AMM pool, I should see the Memecoins picture
with its hexadecimal picture, and also the fees I am earning from the AMM pool IN USDC which gets updated every 24 hrs.
If I am a student with NFTs, I should be able to see the “Stake” button. When I click the “Stake” button, I should see a
pop up window with my NFT to stake, the lock period (7 days), and “stake” button.
Once I click Stake, my NFT should be staked, and I won't be able to unstake it for 7 days.
If I am a student with 2 Memecoins, I should be able to see the “Provide Liquidity” button. When I click the “Provide
Liquidity” button, I should see a pop up window with my 2 Memecoins, the lock period (7 days), and the “provide
liquidity” button.
Once I click “provide liquidity”, my 2 Memecoins should be provided, and I won't be able to withdraw it for 7 days.
As a student who staked an NFT, I should see a “Unstake” button on the home page after 7 days of staking.
When I click “Unstake”, I should be able to see a pop up window with the maximum amount I can unstake and an “Unstake”
button.
When I click confirm, I should be able to get back my NFT and the total amount of USDC that the staking platform
generated into my wallet.
As a student who provided liquidity to the AMM pool, I should see a “Withdraw Liquidity” button on the home page after 7
days of providing liquidity.
When I click “Withdraw Liquidity”, I should be able to see a pop up window with the maximum amount I can of fees I can
withdraw and a “withdraw” button.
When I click withdraw, I should be able to get back my 2 Memecoins and the total amount of fees generated in USDC that
the staking platform generated into my wallet.

DevLoot System
As a DevLoot System, the program should mint 1 NFT(Diamond or Gold) and 2 Memecoins(BONK and WIF) to those who completed
the Beginner course and score 80% or above.
As a DevLoot System, each time a student is progressing, it should increment their score, and store it as a score in the
user_course account.
As a DevLoot System, every 24hrs, it should calculate Staking points and Amm fees generated for each user who staked
their NFT and/or provided liquidity to the AMM pools, and store it in the user_nft and user_amm account respectively.
DevLoot DAO Withdrawal Handler.
As a DAO, it should be able to receive withdrawal requests from a student with a NOVI LP token holder with a given
amount, so that it can calculate how much a student should get back on the token mint(USDC/SOL) they used to deposit.
As a DAO, it should calculate the amount the student needs to get back a given token, withdraw the amount from the
vault, sell it on Jupiter (with correct slippage), calculate the fee to charge the student, and send the SOL/USDC
tokens(minus fee) back to the student account, and burn the NOVI LP token.
As a DAO, after withdrawal success, it should call the rebalance algorithm, to rebalance current token allocation
accordingly.
DevLoot DAO Rebalancer
As a DAO, it should accept deposit and withdrawal requests, and its algorithm should balance/swap meme tokens for
maximum profit to its vault and students.
User Course settings
TBD
Admin Settings
Content and Questions .. TBD
Fees ..TBD


7 changes: 7 additions & 0 deletions capstone_DevLoot/dev_loot/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.anchor
.DS_Store
target
node_modules
dist
build
test-ledger
18 changes: 18 additions & 0 deletions capstone_DevLoot/dev_loot/Anchor.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[toolchain]

[features]
resolution = true
skip-lint = false

[programs.localnet]
dev_loot = "8ftYsC7GGH6sh1MQw81TQBc6W4TR3gsLp7it4vFNDxUu"

[registry]
url = "https://api.apr.dev"

[provider]
cluster = "Localnet"
wallet = "~/.config/solana/id.json"

[scripts]
test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
Loading

0 comments on commit 1430471

Please sign in to comment.