---
# System prepended metadata

title: 01-Ideas

---

# 01-Ideas
- [Youtube - Layout](https://youtu.be/tnILeOa_dto)
- [Youtube - Think & Sketch](https://youtu.be/AAIJumqYtns)
- [Youtube - Paint](https://youtu.be/iWwVZAEXyZM)
- [Github - PDF](https://github.com/FrankBevr/100-Ideas/blob/main/practice/01/01-Ideas.pdf)
- [Github - Code](https://github.com/FrankBevr/100-Ideas/blob/main/practice/01/state_creator_04/lib.rs)

<hr style="page-break-after: always;"/>

## Overview
### :wave: Intro 
- [x] I'm Frank.

### :brain: Think
- [x] Words 
- [x] Sentences 
- [x] Ideas
- [x] Rate Ideas
- [x] Select Idea

### :pencil: Sketch
- [x] Structure Idea (Design)
   - [x] Ideas (Problem/Solution)
   - [x] Requirements (Functional / NonFunctional)
   - [x] Stories
   - [x] Diagrams
       - [x] UseCase (What)
       - [x] Class (Data)
       - [x] Sequence (Behaviour)

### :art: Paint
- [x] First Draft
    - [x] `cargo contract new my_new_idea`
    - [x] `cargo contract build`
    - [x] `substrate-contracts-node --dev`
    - [x] `cargo contract deploy`
    - [x] `cargo contract call`

### :wave: Outro

- [x] **What we did:** Think, Sketch, Paint  
- [x] **How we achieved it:** Markdown, UML, ink!  
- [x] **Why:** ?Great Ideas come from many?  

<hr style="page-break-after: always;"/>

## :brain: Think
| Words              |                |                |           |                |
|:------------------ |:-------------- |:-------------- |:--------- |:-------------- |
| Giraffe            | Monkey         | City           | Tower     | Iot            |
| Augumented Reality | Vision Pro     | House          | Chair     | Female         |
| Male               | Lawyer         | Doctor         | Laptop    | Scientist      |
| Physicist          | Chemist        | Biologist      | Germanist | Ethistics      |
| Priest             | Coffee         | Latte Machiato | Shoes     | Poland         |
| Germany            | Europe         | China          | Chenzhen  | India          |
| State              | Candada        | Paint          | Color     | HSL            |
| Clothers           | Music          | Drop           | Frequency | Universe       |
| Family             | Children       | Toys           | ToyStory  | Animation      | 
| Weather            | Sad            | Shiny          | Sun       | Mercury        |
| Elements           | Plumbbumb      | Metal          | Oil       | Plastic        |
| Bell               | Manufacturuing | Vertictes      | Time      | Smile          |
| Band               | aShields       | Car            | Machines  | Packaging      |
| aFirehelper        | fusion         | Switzerland    | electron  | Collider       |
| Games              | Psychology     | Magazain       | Ocean     | Animals        |
| Whale              | Manga          | theories       | Books     | Amazon         |
| Netlify            | AWS            | Vercel         | Vim       | Blender        |
| Models             | Animation      | Uv Mapping     | Wheel     | Motion Capture |
| Terminal           | Plane          | Airport        | Raynair   | Memes          |
| Whatsapp           | Instagram      | Bumble         | Tinder    | Facebook       |


| Sentences                 | Rating | Description                                                                                          |
|:------------------------- |:------ |:---------------------------------------------------------------------------------------------------- |
| Animal tracking           | 5/10   | As a User I want to track my animals in my resovoir                                                  |
| City Funding              | 3/10   | As a City citizen I want to be able to fund projects in my city                                      |
| Data Distrubiton          | 4/10   | As a User I want to distrubte Data without loosing ownership                                         |
| Health Safe               | 6/10   | As a Doctor I want to have access to my Patients Healt Data                                          |
| Encyclopedia unstoppable   | 4/10   | As a Human I want to be access to none censored data                                                 |
| State Creator             | 8/10   | As a User I want to create my own empire.                                                            |
| My Color                  | 4/10   | As a User I want to have access to the latest color trends                                          |
| Fashion Collector         | 2/10   | As a User I want to collect the latest Fashions Trends                                               |
| Music Distrubter          | 3/10   | As a Artist I want to distrubte my Music in a fair manner                                            |
| Elements Collector        | 8/10   | As a Scientist I want to learn about elements and have a prove that I know things                   |
| Weather Forecast          | 3/10   | As a Weather Scientist I want to share my forecast with the world without loosing my credentials     |
| Plastic Certificate       | 4/10   | As a Manufacture I want to certificate my new plastics                                               |
| Organic Snippet Collector | 8/10   | As a Biologist I want to share DNA Snippets annomyously without taking full ownership about the Data |
| Supply Chain Tracker      | 2/10   | As a Manufacatore I want to have a proof that my supply chain is child labor free                    |
| Animation Library          | 4/10   | As a Animator I want to share my unique animation key frames with the world                          |

:::success
Selected Idea:  
:bulb: State Creator - Create your Empire
:::

<hr style="page-break-after: always;"/>

## :pencil: Sketch

### Idea

State Creator - Create your Empire

#### Problem
Its hard to create your own State

#### Solution
`statecreator.xyz`

### Requirements

#### Functional Requirements

- The App must do add citizens
- The App must allow elections
- The App must allow to buy land
- The App must allow festivals

#### NonFunctional Requirements

- The App must be able easy to use
- The App must be open source

### User Stories

#### Epic User
- As a User I want to become a citzien
- As a User I want to participate in elections

#### Epic State
- As a State I want to be able to buy land
- As a State I want to create festivals

### Diagrams

```plantuml
!theme plain
left to right direction
title Sketch - Use Case Diagram 
skinparam actorBorderThickness 1

actor Citizen
actor State

State -- (buy land)
State -- (do festival)

Citizen -- (become)
Citizen -- (participate)
```

</br>

```plantuml
!theme plain
left to right direction
title Sketch - Class Diagram
class Citizen{
    + name: String
    + id: Number
    + since: Date
}
class State {
    + Citizens: Citizen[]
    + Fesival: String
    
    + become_citizen()
    + do_festival()
    + buy_land()
}
State *-- Citizen
```

</br>

```plantuml
!theme plain
title Sketch - Sequence Diagram
actor Citizen
entity WebApp
database SmartContract
entity LandSeller

group Registration
WebApp --> SmartContract: listens
Citizen --> WebApp: wanna become citizen
WebApp --> SmartContract: add_member()
SmartContract --> SmartContract: checks()
WebApp --> Citizen: hurei you are member
end 

group FesivalCreation
SmartContract --> SmartContract: create_festival()
WebApp --> Citizen: festival starts
end

group LandBuy
Citizen --> WebApp: Lets buy this land
WebApp --> SmartContract: add_vote()
WebApp --> Citizen: Your vote was added
SmartContract --> LandSeller: give_me_land()
LandSeller --> SmartContract: sure, here, thanks
end
```

<hr style="page-break-after: always;"/>

## :art: Paint

```rust
#![cfg_attr(not(feature = "std"), no_std, no_main)]

#[ink::contract]
mod state_creator_04 {
    use ink::prelude::string::String;

    #[ink(storage)]
    pub struct StateCreator04 {
        value: bool,
        citizien: AccountId,
        festival: String,
    }

    impl StateCreator04 {
        #[ink(constructor)]
        pub fn new() -> Self {
            Self { 
                value: true,
                citizien: AccountId::from([0x0; 32]),
                festival: String::from(""),
            }
        }

        #[ink(message)]
        pub fn become_citizen(&mut self){
            self.citizien = self.env().caller();
        }

        #[ink(message)]
        pub fn get_citizen(&self) -> AccountId{
            self.citizien
        }

        #[ink(message)]
        pub fn do_festival(&mut self){
            self.festival = "20240324,Herbert,50".into();
        }

        #[ink(message)]
        pub fn get_festival(&mut self) -> String {
            self.festival.clone()
        }

        #[ink(message)]
        pub fn buy_land(& self){}

        #[ink(message)]
        pub fn flip(&mut self) {
            self.value = !self.value;
        }

        #[ink(message)]
        pub fn get(&self) -> bool {
            self.value
        }
    }
}

```