This project is a web portal to help users create and manage accounts on D.Buzz, a decentralized social media platform built on top of the Hive blockchain.
This repository contains all the frontend and backend code used to run Join.D.Buzz, a simple DApp for onboarding new users to Hive from DBuzz.
- Create new Hive account
- Securely back up private keys
- Associate referral code
- Firebase backend integrations
Frontend
- React
- React Router
- TailwindCSS
Backend
- Firebase (Auth, Firestore, Functions, Analytics)
- Hive Blockchain JS
- Clone the repository
> git clone https://github.com/d-buzz/d.buzz-signup-app.git
- Install dependencies for the client app
> cd join.d.buzz
> yarn install
- If you don't have Firebase CLI installed, please install it
> npm install -g firebase-tools
Login to your Firebase using your Google account
> firebase login
-
Go to Firebase console -> Create new project
-
Go to Firebase project -> Add a new Web app and then follow the instructions
-
Put in your config from your new Web app into
/config/firebase.json
file, just copy and paste the values. -
Put in your preferred whitelisted domains into
/config/whitelist.json
. -
Put in your project ID into
.firebaserc
, you can find your project ID from the project settings. -
Then goto Firestore Database and initialize a new database, choose any region you prefer.
-
Then goto -> Authentication -> Sign-in method -> Add new provider -> then enable Phone.
-
Finally, put in required variables into a new file
.env
, copy the values from.env.example
- Put in your preferred HIVE configurations into a new file
/functions/config.json
, copy the values from/functions/config.example.json
- Build the app for production
> yarn build
- Deploy the client and backend to Firebase
> firebase deploy
> yarn start
- @hiveio/hive-js: Hive.js the JavaScript API for Hive blockchain
- @testing-library/jest-dom: Custom jest matchers to test the state of the DOM
- @testing-library/react: Simple and complete React DOM testing utilities that encourage good testing practices.
- @testing-library/user-event: Simulate user events for react-testing-library
- clsx: A tiny (229B) utility for constructing className strings conditionally.
- firebase: Firebase JavaScript library for web and Node.js
- formik: Forms in React, without tears
- lodash: Lodash modular utilities.
- react: React is a JavaScript library for building user interfaces.
- react-dom: React package for working with the DOM.
- react-router-dom: DOM bindings for React Router
- react-scripts: Configuration and scripts for Create React App.
- reactfire: Firebase library for React
- yup: Dead simple Object schema validation
- party-js: A JavaScript library to brighten up your user's site experience with visual effects
- axios: Promise based HTTP client for the browser and node.js
- react-device-detect: Detect device, and render view according to the detected device type
- file-saver: An HTML5 saveAs() FileSaver implementation
- @hivechain/dhive: Hive blockchain RPC client library
- axios: Promise based HTTP client for the browser and node.js
- firebase-admin: Firebase admin SDK for Node.js
- firebase-functions: Firebase SDK for Cloud Functions
- lodash: Lodash modular utilities.
Backend code for Functions is forked from hiveonboard open source project managed by @christianfuerst
You can check opened issues and contribute to this project by creating a pull request
If you have questions or comments, please create an issue or message us on chat.d.buzz