Skip to content

Latest commit

 

History

History
171 lines (124 loc) · 5.95 KB

README.md

File metadata and controls

171 lines (124 loc) · 5.95 KB

DCellar

DCellar is a development management console built on the BNB Greenfield decentralized storage network.

Features

  • 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

About this Repository

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.

Projects

folders Description
/apps/dcellar-web-ui Storage Console for Developers on BNB Greenfield Network

Getting started

To get a local copy up and running, please follow these simple steps.

Prerequisites

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

Development

Setup

  1. Clone the repository:
    git clone [email protected]:node-real/dcellar.git
  2. Go to the project folder
    cd dcellar
  3. Install dependency and build symbolic links for apps:
    rush install & rush build

Guides for developing a existed app

Let's take dcellar-web-ui as example.

  1. Go to the app's directory, and make it will be your working directory.

    cd apps/dcellar-web-ui
  2. Build the internal libs that it dependents

    rush build -T .
  3. Set up your .env file

    cp .env.example .env.local
  4. You can run rushx command to run scripts in package.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.

Add dependency

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

Use vscode workspace

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.

Use other editor

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.

Documentation Links

FAQ

Cannot find module 'xxx' or its corresponding type declarations.

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

Contributing

Please follow our DCellar Contribution Guide.

License

See LICENSE for more information.