Welcome to ProbinAlo Hackathon 2023 project repository. Good luck everyone!
Demo image of a graph visualizer
-
User account creation.
- Username
- Password
- Number of projects/models user has created
- Passwords
- Two-Factor Authentication (not mandatory)
-
Must save user progress. Should contain undo, redo and etc. options.
-
Must have buttons that let user create nodes and edges with data.
-
Shows visual representation of nodes and edges with data. Easily visible data is priority in the representation.
-
Try creating most things as an API, so that it is reusable.
Let
Let
Example:
This graph can be represented like this:
nodes = [Node {a}, Node {b}, Node {c}, Node {d}, Node {e}]
edges = [[1, 2, 3, 4], [0, 4], [0, 3, 4], [0, 2], [0, 1, 2]]
Note that bidirectional edges can also be represented in this format.
| Name | Description | Position | Type |
|---|---|---|---|
| n_size | Total size in bytes of $nodes$ array | 0x0 | u64 |
| n_array | List of null terminated strings. | 0x8 | bytes |
| e_size | Total size in bytes of |
u64 | |
| e_array | Array of edge list. | bytes |
| Name | Description | Position | Type |
|---|---|---|---|
| e_list_size | Size of the edges list | To be determined at runtime | u64 |
| e_list | List containing indexes to nodes in |
To be determined at runtime | u64[] |
Each item in e_array are put one after another. So that means, it'll look like this:
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xF -
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xA | -> First e_list
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xB -
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8 -
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xA -| -> Second e_list
The bytes represent the following e_array:
[[10, 11], [10]]
Here, the position of the first e_list is e_list is


