DCellar is a development management console built on the BNB Greenfield decentralized storage network.
- Connect using Trust Wallet, Metamask, and WalletConnect
- Off-chain authentication for enhanced security
- Create, delete, and change payment accounts for buckets
- List buckets associated with the account and view details
- Purchase quota for bucket
- List, sort, filter, and search objects within bucket or folder
- Create and delete folder
- Support for selecting multiple files and folders, including drag-and-drop functionality
- Batch upload, delete, and download objects
- Download and preview object
- View folder and object detail
- Manage waiting and uploading list
- Dynamically display uploading files in the object list during the upload process
- Calculate operation fees for each action and validate user account balance before execution
- Set tags for bucket, folder, object, and group
- Create, manage, and delete group
- Share bucket, folder, and object
- Manage shared list
- Transfer tokens between BNB Greenfield and BNB Chain
- Send tokens to other accounts on BNB Greenfield Chain
- Dashboard overview of usage statistics
- View account current month and historical costs
- Create payment Account
- List and filter billing information
- Support for BNB Greenfield enhanced API
- Pricing calculator for cost estimation
This repository is a monorepo that holds the source code to multiple projects for Dcellar. It is built using Rush.
See rush.json for the complete list of packages.
Each package has its own node_modules directory that contains symbolic links to common dependencies managed by Rush.
folders | Description |
---|---|
/apps/dcellar-web-ui | Storage Console for Developers on BNB Greenfield Network |
To get a local copy up and running, please follow these simple steps.
Here is what you need to be able to run Cal.com.
- Node.js (Version: >=18.x)
- @microsoft/rush (Version: >=5.112.x):
npm install -g @microsoft/rush
- Clone the repository:
git clone git@github.com:node-real/dcellar.git
- Go to the project folder
cd dcellar
- Install dependency and build symbolic links for apps:
rush install & rush build
Let's take dcellar-web-ui
as example.
-
Go to the app's directory, and make it will be your working directory.
cd apps/dcellar-web-ui
-
Build the internal libs that it dependents
rush build -T .
-
Set up your
.env
filecp .env.example .env.local
-
You can run
rushx
command to run scripts inpackage.json
.rushx dev # It will run 'dev' script in package.json
rushx
is just like npm run
Now you can modify things and see the changes.
DO NOT use npm install
/yarn install
to update package dependency.
USE following commands
rush add -p react # It will add react as dependency for your working app
rush add -p @types/react --dev # It will add @types/react as devDependencies
currently, rush add
command does not support add multiple packages in one line,
so you can manually add dependency
in package.json
, then call
rush update # It will install the dependecy newly added in package.json
or you can call rush add
multiple times
rush add -p react -s # skip rush update, it will only modify package.json
rush add -p react-dom -s
rush update # after you add packages
It is highly recommended to use vscode workspace, so you can concentrate on the project you are working on as well as you can have an overview of other projects in the monorepo
There is a monorepo.code-workspace in the root dir, open it with vscode will automatic set up the workspace.
The vscode plugin Monorepo Workspace is a great tool. You can choose packages you are interested in to show in the workspace to avoid noise.
If you use editor other than vscode, just make your app's directory as your workspace and use rush
commands to handle dependency. You can develop as usual.
- Greenfield Whitepaper
- Guide to BNB Greenfield
- Guide to DCellar
- Guide to Rush
- Guide to Apollo
- BNB Greenfield Release Notes
- BNB Greenfield RPC Endpoints
- @bnb-chain/greenfield-js-sdk
- @node-real/uikit
- @node-real/wallketkit
To avoid phantom dependencies, every package that used by import xx from 'package-name'
should be the dependency of the app.
We can import from next
even though we do not have a direct next
dependency before.
After we switched to monorepo, we have to add next
as dependency in package.json
, or it will be an error
$ rush add -p next
Please follow our DCellar Contribution Guide.
See LICENSE for more information.