|
1 | | -## Description |
| 1 | +GraphQl service to provide informations regarding nfts and auctions on Elrond Blockchain |
2 | 2 |
|
| 3 | +## Dependencies |
3 | 4 |
|
4 | | -## Installation |
| 5 | +1. Node.js > @16.x.x is required to be installed [docs](https://nodejs.org/en/) |
| 6 | +1. Redis Server is required to be installed [docs](https://redis.io/). |
| 7 | +2. MySQL Server is required to be installed [docs](https://dev.mysql.com/doc/refman/8.0/en/installing.html). |
| 8 | +3. MongoDB Server is required to be installed [docs](https://www.mongodb.com/docs/manual/installation). |
5 | 9 |
|
6 | | -```bash |
7 | | -$ npm install |
8 | | -``` |
| 10 | +You can use `docker-compose up` in a separate terminal to use a local docker container for all these dependencies. |
9 | 11 |
|
10 | | -## Running the app |
| 12 | +After running the sample, you can stop the Docker container with `docker-compose down` |
11 | 13 |
|
12 | | -```bash |
13 | | -# development |
14 | | -$ npm run start |
| 14 | +## Available Scripts |
15 | 15 |
|
16 | | -# watch mode |
17 | | -$ npm run start:dev |
| 16 | +This is an Elrond project built on Nest.js framework. |
18 | 17 |
|
19 | | -# production mode |
20 | | -$ npm run start:prod |
21 | | -``` |
| 18 | +### `npm run start:prod` |
| 19 | + |
| 20 | +Runs the app in the production mode. |
| 21 | +Make requests to [http://localhost:3005/graphql](http://localhost:3005/graphql). |
22 | 22 |
|
23 | | -## Test |
| 23 | +## Running the app |
24 | 24 |
|
25 | 25 | ```bash |
26 | | -# unit tests |
27 | | -$ npm run test |
| 26 | +# development debug mode |
| 27 | +$ npm run start:debug |
28 | 28 |
|
29 | | -# e2e tests |
30 | | -$ npm run test:e2e |
| 29 | +# development mode |
| 30 | +$ npm run start:dev |
31 | 31 |
|
32 | | -# test coverage |
33 | | -$ npm run test:cov |
| 32 | +# production mode |
| 33 | +$ npm run start:prod |
34 | 34 | ``` |
35 | 35 |
|
| 36 | +It depends on the following external systems: |
| 37 | +- gateway: |
| 38 | + - interaction with the indexed marketplace |
| 39 | + - docs: [https://docs.elrond.com/sdk-and-tools/proxy/](https://docs.elrond.com/sdk-and-tools/proxy/) |
| 40 | +- index: |
| 41 | + - to gather information regarding nft history |
| 42 | + - docs: [https://docs.elrond.com/sdk-and-tools/elastic-search/](https://docs.elrond.com/sdk-and-tools/elastic-search/) |
| 43 | +- api: |
| 44 | + - to get information regarding nfts and collections |
| 45 | + - docs: [https://docs.elrond.com/sdk-and-tools/rest-api/api-elrond-com](https://docs.elrond.com/sdk-and-tools/rest-api/api-elrond-com) |
| 46 | + |
| 47 | +It uses on the following internal systems: |
| 48 | +- redis: used to cache various data, for performance purposes |
| 49 | +- rabbitmq: pub/sub for sending mainly NFT process information |
| 50 | + |
| 51 | +It depends on the following optional external systems: |
| 52 | +- events notifier rabbitmq: queue that pushes logs & events which are handled internally e.g. to trigger auctions indexing |
| 53 | +- data: provides eGLD price information for transactions |
| 54 | +- ipfs: ipfs gateway for uploading nft media and metadata |
| 55 | +- AWS S3: used to upload nft media for faster performance |
| 56 | + |
| 57 | +It uses the following optional internal systems: |
| 58 | +- mysql database: used to store mainly auction information |
| 59 | +- mongo database: used to store mainly NFT traits information |
36 | 60 |
|
0 commit comments