After some consideration, I will apply for the bounty. When is the deadline for the submission? I don’t have time to do it in the next couple of days.
the deadline is this Friday 7/14. please submit wireframes and a project plan!
Sorry, i’m not going to apply, putting everything side-by-side made me realize it’s to much work for me at this time, best of luck to all participants!
I do want to share the repo for the project that i previously shared in the hopes it could help somebody;
The stack used is;
- React (typescript)
- Material-UI
- Tauri (Rust)
I made the decision to layer the GUI on top if the CLI instead of integrating it within the app, this means that the UI can trigger CLI calls through Rust instead of integrating DFX directly within the app thus making it more complex to update the App when a new DFX version is released.
I’m using the identities that are found on the filesystem, i was working on integrating Internet identity but at that time i couldn’t figure out how make the redirect to the app work.
If you want any more information, feel free to reach out.
Best of luck!
To anyone who may be working on this, I’ve had success with using zx for bash scripting with dfx, which combined with one of the node based desktop app builders could certainly be a way to make life easier.
Not sure if using JS instead to do some bash scripting is better for dfx in particular.
Thank you all for your patience. We’d like to nominate @justmert to work on this bounty ![]()
Hi @domwoe,
Thank you very much for being nominated us for this bounty, we will start working very soon with great excitement.
Where can we contact for some technical questions and other issues?
I sent you a private message.
Zx is a bash scripting library. For instance,
// Just returns the deployment CLI string.
function getICRC1TokenCanisterDfxDeploymentCmd({
mintersPrincipal,
dfxJsonIcrc1CanisterName,
tokenName,
tokenSymbol,
fee = 10
})
{
return oneLine`dfx deploy ${dfxJsonIcrc1CanisterName} --argument '(variant { Init =
record {
token_symbol = "${tokenSymbol}";
token_name = "${tokenName}";
minting_account = record { owner = principal"${mintersPrincipal}"; };
transfer_fee = ${fee};
metadata = vec { ${getBase64DataEncodedSVG()} };
initial_balances = vec {};
archive_options = record {
num_blocks_to_archive = 2000;
trigger_threshold = 1000;
controller_id = principal"${mintersPrincipal}";
};
}
})'`;
};
// Runs the actual cmd line
// Zx escapes automatically, so to run interpolated generated strings for dfx, easier to bypass the default escaper, though a specific dfx char escaper could be developed just for dfx.
async function zxRaw(cmd) {
const escaping = $.quote;
$.quote = (...all) => all;
const res = await $`${cmd}`;
$.quote = escaping;
return res;
};
// For comparison here's the regular way it is used, which can be done when there's not lots of string interpolation:
async function getCurrentDfxIdPrincipal() {
return `${await $`dfx identity get-principal`}`.trim();
}
const currentPrincipal = await getCurrentDfxIdPrincipal();
try {
await zxRaw(getICRC1TokenCanisterDfxDeploymentCmd({
mintersPrincipal: currentPrincipal,
dfxJsonIcrc1CanisterName: "icrc1_token_canister",
tokenName: "ICRC1 Mock Token",
tokenSymbol: "ICRC1MT_"
}));
} catch (p) {
throw new Error(`While deploying icrc1 token canister caught error ${p.toString()}`);
};
Is a javascript method that will deploy an icrc1 token canister via the dfx cmd line; it makes handling dynamic configuration simpler. Plus with declarations already generated in JS/TS, could make it much simpler to do the GUI’s underlying functionality.
Here’s the zx repo link:
Finally, if anyone does find it useful, here’s the easiest way to restart dfx in the background:
async function restartDfxBackgroundClean () {
await $`dfx stop`;
spawnSync('dfx', ['start', '--clean', '--background'], {
detached: true,
stdio: 'ignore',
});
};
(Though you could pipe the stio if you wanted to listen to Debug.print()s)
What repo is being used whereby we can follow progress?
Is this still happening? @justmert . Repo to follow progress would be good.
Hey @cyberowl, this is Tolga.
Since Mert has been in the military service for a while, I took over his account as his partner, but I was able to check here late, I apologize for not seeing it sooner. Things took a little longer because of this, but I will be announcing here soon for a test version with a few users (estimated 2 weeks).
There is no public repo at the moment, but when the testing process begins, I will take care to commit it in a way that you can actively follow the developments.
Thank you for your time and support, I look forward to your help for the first tests of app.
Hi @dfx-json, Project and Identity logic completed, now users can add projects and open with their preferred editor and set their identity configs in all details, tomorrow I will share some screenshots here, handling with last fixes right now.
P.S: We can make a showcase about application in upcoming developer group meeting, would love to know the time, this would be completed until this meeting with all cli functionality.
Great to hear. Looking forward to the screenshots! The next Developer Tooling Working Group meeting will be November 2 at 10AM Pacific
Hey @dfx-json, here is some screenshots. You can expect similar user interface for other pages and components, also has white/dark mode options. Hope you liked that, we take care to create a simple interface.
I will show you a more detailed version live at the meeting and try it if would be possible.
Create Project
Create Identity
Identity (Fast settings like, change, edit)
Looking good so far!!
Hi everyone! new ICP dev here!!
Just getting up to date on some rather important (stand out) topics in the forum… is this dashboard app still in the works? any repo we can take a look at? (I’m a Rust dev, and I’m very interested in both Tauri and Leptos too.)
Hi guys, I would love to take this one.
I created some work a few weeks ago when it was still in open state, thinking may I could be selected to work on it.
This is a screen recording of the Tauri app I made at the time.
I’m sharing this just to show that my interest is real.
Here is the video:
https://github.com/boyin0x/dfx-ui
I am thrilled to announce the release of v0 of DFX GUI. This is just the beginning, and as such, please be aware that some features and aspects of the app may change frequently as I continue to develop for more stable version.
Your feedback is incredibly important to me. I encourage you to try out the application and share your thoughts and experiences. If you encounter any bugs, please feel free to use bug reports issue template . Also, I am very open to any feature requests you may have. Your insights and suggestions are crucial in shaping the future direction of the app.
: Currently, the app is equipped with features mentioned below;
Project Management: This feature allows users to efficiently manage their projects. It includes capabilities to create new projects, import existing ones from other sources, and delete projects that are no longer needed.
Identity Management: This component focuses on managing user identities. Users can create new identities, import existing ones, delete unnecessary identities, and seamlessly switch between different identities.
Canister Interactions: This feature is centered around interactions with canisters. Users can create and delete canisters, manage their settings, and interact with them using a variety of commands, arguments, and flags through a user-friendly interface.
Network Management: Network management is facilitated through the ability to edit the global networks.json file. This feature enables users to customize and configure network settings to meet the specific needs of their projects.
Environment Variables: This aspect of the system allows users to edit existing environment variables.
P.S: Review the first release notes for more information about the features and capabilities of the DFINITY DFX GUI application.
: Thank you for joining me on this journey. I am eagerly looking forward to your feedback and am excited to see how the app can be a valuable tool in your work.
Also big thanks to @dfx-json and @domwoe for their support and help to build this project.
Download Here: Release v0.1.2 · tolgayayci/dfx-dashboard · GitHub


