This app works as a handmade marketplace for NFTs sells by Dolphin in collaboration with FTX. Currently, there are three collections been selling on the marketplace:
- Hall Of Fame Media Village.
- Heroletes.
- Creature Chronicles. HoF and Heroletes works currently on dolphinnfts.com, but Creature Chronicles is accessed through creaturechronicles.com, although both are on this application.
Design can be found in: FIGMA Page.
You are going to need a .env
file like this one:
REACT_APP_API_URL=http://localhost:8000/api/v1
REACT_APP_FTX_API_URL=http://localhost:8010/proxy
REACT_APP_ZENDESK_API_URL=https://dolphinentertainment.zendesk.com/api/v2
REACT_APP_ZENDESK_URL=https://dolphinentertainment.zendesk.com/hc/en-us
REACT_APP_CREATURES_URL=https://creaturechronicles.io
REACT_APP_GOOGLE_KEY=6LdxzoocAAAAAKtmeJukgrkc20fRBkRqIVOlIqqX
REACT_APP_CC_PUBLIC_KEY=LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEJDUEcgdjEuNTQKCm1RRU5CRjE1Rm5NQkNBQzhhTStXWEpjcUhSeW5KUWlSTm03eExoN1Q3cmxpZkYvVnpncW01eDdGWnYvNGhXNWoKQTRibktaOFpZT0swNzVlbFljRGpUL2M1bDdMT25YRllBell3eENkc21nbm1HLzMzcXJPV08rUmxBbVREODZSWQowYWFZVWNIRkxUc0ttK29GNkpJMVB4NGd5c0xndlNlSUFCSEJvTlErU2N4dXgzM2VTZUlBMGg3L3dURFgzOU15CnM2YURmbWgvVWpnb0hhRDM5SjhDWUJpNVMyRGVzbjVLK2tjM0NkOUU1SVhGcjVhNG9mWmpWcGJJL092MGxOclkKZXQydDAzVHdEdGJ2VUtYUkxxejg5d1BvdEtGdldlTHZrOXlUZ3Jmd3BsSSs5ZEJCeUFqNHVVQUswNlBUUFJtTgpVWWUxNGQ4eFVOeWJpN1k5bGpSbU80blBIOWh3bTJ4SVZuU0JBQkVCQUFHMEJrTnBjbU5zWllrQkhBUVFBUWtBCkJnVUNYWGtXY3dBS0NSREpQWEtSZEw4TmRDc29CLzlid3pabnEwT0pNKzEvbnREYmhDcnZOaGJoQUhvd3RNclgKMmhqRmVhTy82ZHp2RXJpL25wVml5SzVsVjdMa0lkQi8ybS9sTEx0Nm9KZWdpeXoreXZlZ0pwTGQ0UmRvUC9CSgp0bHBBNjVwbFQyQys4UENoNkJRSCtIMVVZOE92TTFXT0p2VzBjU09xNzdzS3p1RFo4dGQ0OUVnTkpGdzlmb0dnClhYa1I0VHppSzdGTTZXQnlnYmdCNjVrQzZCVHJGNjRtY21xWHFrTHMyUVY5SEtTWmpHOTNxMGJHaUo0RStLbjYKam91dFhlVGc1YWZVL3VwN0g1TWxXM25mU3MyWHRLbFZ5MDdOQ1JYeCtwZUFzUEhpdmFGc3VDK3JUbTIwYVhWTwp5WUhJcmdsKzFNSktaWVNzRVRYMm8xaGkrWXVVeWRJMThuZmMzMGVSYVhyRVF5VzFWZ0w3Cj1CbXVaCi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0=
REACT_APP_CC_KEY_ID=key1
REACT_APP_API_URL
: URL for dolphin backend (dolphin-backend project).
REACT_APP_FTX_API_URL
: URL for FTX backend. Starting on local environment should pointing at the proxy (started with yarn proxy).
REACT_APP_ZENDESK_API_URL
: Zendesk API for starting zendesk widget.
REACT_APP_ZENDESK_URL
: Zendesk URL for dolphin FAQ.
REACT_APP_CREATURES_URL
: Creature Chronicles domain. Creatures Chronicles has it's own domain as can be accessed when developing on local modifying useRedirection hook (See Projects>Creatures Chronicles).
REACT_APP_GOOGLE_KEY
: Google Key obtain as a constant from FTX endpoint. As it is always the same key it's added as a varible. This is used for getting recaptcha verification.
REACT_APP_CC_PUBLIC_KEY
: Public key used for encrypting data for requests to FTX. Mostly used on Credit Card and Deposit endpoints.
REACT_APP_CC_KEY_ID
: Key ID for Dolphin. Used on Deposit endpoints.
To start developing and running creature chronicles locally you should modify the useRedirect hook and set true as the initial state for isCreatureUser
and comment the useEffect setState. It should look like this:
const [isCreaturesUser, setIsCreaturesUser] = useState(true);
useEffect(() => {
const path = window.location.origin;
// setIsCreaturesUser(path === process.env.REACT_APP_CREATURES_URL);
}, []);
This project uses cypress
for E2E testing.
You can run the tests with yarn cypress
.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
Note: this is a one-way operation. Once you eject
, you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject
at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject
will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
You don’t have to ever use eject
. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
Starts cypress testing tool for development and testing purposes.
Will proxy all the api calls to ftx.us/api. This is used to prevent CORS errors developing locally. It's recommended to have it running when developing.
assets
: Mostly images and vectors.components
: UI components commonly used through all the application.constants
: Constants used through all the app. In this folder, we discriminate between common constants and specific constants for each business unit. Over here, we also have routes and endpoints constants.context
: General context accessible in all the app.helpers
: Pure helpers functions. Something goes in, it's proccesed, something goes out.hooks
: Custom hooks used through all the application.interfaces
: All the interfaces used in the application. Some interfaces might be found on services, store or modals. Should be everything here.interfaces
: All the interfaces used in the application. Some interfaces might be found on services, store or modals. Should be everything here.locales
: i18n texts.pages
: All the components used on the routes are here. In this folder are ensemble and presented. Every route has a counterpart as a component expelled from this folder.router
: Main mecanism for controlling routes and lazy loading routes.services
: Holds connectivity files with the APIs. This app has Redux Toolkit integrated and uses createApi and fetchBaseQuery for API call.services
: Holds connectivity files with the APIs. This app has Redux Toolkit integrated and uses createApi and fetchBaseQuery for API call.store
: Configuration files regarding store set with redux.styles
: Base style files imported through all the app.themes
: Themes for Material UI interfaces. Currently there are two themes: general one, used on dolphinnfts.com and CreaturesTheme used on creaturechronicles.com.