Sol.College

Full lesson

solana_hackathon

What it does

From the project README:

We begin with a focus on **hair and vaginal health** using: to deliver **scientific, personalized, privacy-preserving wellness plans**.
Original
BaoBoomBoom/solana_hackathon
SuperStack fork
Blockchains/solana_hackathon @ dde468a
Stars
0
Last push (original)
2025-12-10
Languages
TypeScript, Less, EJS, Rust, CSS, JavaScript
Detected stack
web3.js
Categories
Other
Licence
MIT

Architecture

76 source files. By extension: .ts ×42, .tsx ×29, .js ×4, .rs ×1.

Top-level directorySource files
src62
config5
mock4
(root)2
tests2
contracts1

Dapp: devnet deploy pending

⏳ Devnet deploy pending — goes live when the devnet wallet is topped up. This fork's own dapp is not deployed yet, so there is no program address or transaction to show. It is queued in dapp-queue.txt; once devnet SOL is available it is deployed, exercised with real devnet transactions, and this section switches to the live dapp at /dapps/solana-hackathon/. Until then, the lesson and step-by-step guide below are complete, and you can run it locally with the commands below.

Key code, explained

Excerpts chosen automatically where the code uses the most Solana concepts, pinned to the fork's commit.

BaoBoomBoom/solana_hackathon · contracts/rewards.rs L109–132 @ dde468a · MIT · original
} #[derive(Accounts)]pub struct InitializeUser<'info> {    #[account(        init,        payer = user,        space = 8 + std::mem::size_of::<RewardAccount>(),        seeds = [b"user", user.key().as_ref()],        bump    )]    pub reward_account: Account<'info, RewardAccount>,     #[account(mut)]    pub user: Signer<'info>,    pub system_program: Program<'info, System>,} #[derive(Accounts)]pub struct RewardAction<'info> {    #[account(mut, seeds = [b"user", user.key().as_ref()], bump)]    pub reward_account: Account<'info, RewardAccount>,    pub user: Signer<'info>,}
  1. Line 114 init,: Creates and pays for a new account. Space and payer must be specified.
  2. Line 117 seeds = [b"user", user.key().as_ref()],: Declares the PDA seeds. Anchor re-derives the address and rejects the account if it doesn't match.
  3. Line 118 bump: Uses the bump seed, the extra byte that pushes the derived address off the ed25519 curve.
  4. Line 123 pub user: Signer<'info>,: Requires this account to have signed the transaction.

How to run, build and test

These commands come from the repo's own manifests (package.json scripts, Anchor.toml, Cargo, go.mod, Makefile). Check the README for prerequisites and environment variables.

DirectoryCommandRuns
.npm run devnpm run start:dev
.npm run startcross-env UMI_ENV=dev umi dev
.npm run buildumi build
.npm run testumi test
.npm run lintumi g tmp && npm run lint:js && npm run lint:style && npm run lint:prettier && npm run tsc
.npm run deploynpm run build && npm run gh-pages

What you could build from it