Search projects, hackathons, sponsors and tech

    ← All projects

    flowDE

    Supercharged flow development, all in browser. No CLI or package installation. Simply login, and start building on Emulator, Testnet or Mainnet.

    Demo

    About

    The problem it solves # Problem Currently, all development on the flow blockchain requires developers to locally install the CLI, run the emulator, manage versions and manually deploy their contracts or run transactions and scripts. Projects which are currently available, although they do speed up development, still require local installation of the flow CLI. # Solution - flowDE flowDE is a fully deployed development environment that allows developers to quickly start building, deploying and testing all within a cloud based environment within the browser. This speeds up the development process and makes it easier for developers to develop on the flow blockchain without any overhead. # How it works ## Frontend We built an Angular frontend deployed to Vercel, which developers will use for their full development usecase, ie. write contracts/transactions/scripts and be able to deploy directly from their browser. ## Backend The backend is a Flask API, written in Python and deployed to a VPS on DigitalOcean which interacts with the flow CLI from within the container. A workspace is created on command by the developer and command are then managed from the UI. An emulator instance is being run as a detached process to allow all workspaces to interact with it from within to prevent overuse of the server resources. # Future development/Improvements ## Codebase For our submission, we prioritized speed of execution to get the MVP out at the cost of clean code, refactoring of the codebase to ensure robustness will be done. ## Security We will need to implement a KMS into the solution as a matter of importance to ensure that key (especially on mainnet) are secure. ## UI/UX Improved UI and UX will be undertaken, to better the look, feel and usability of the application. ## Overall improvements Better handling and additional commands to be introduced, allowing developers to use existing accounts to deploy

    How it's made

    Challenges we ran into I faced two main challenges when building the project, firstly how I would get the Emulator instance to speak to each user's development workspace. This was an issue because when I spun up an instance for multiple users, all the server resources were consumed which slowed down the processing of requests. I solved this by creating a root emulator instance which I then ran as a background task, which then allowed all users to access the Emulator but from within their own workspace. Secondly, on flow, when creating an account - an existing account is required. This posed an issue with the way the server was initially set up which meant we would be required to create a new signer for each user. How this was solved; a master testnet and mainnet wallet was created and funded, those keys were then used to sign all account creations which solved the issue.