This is backend module of secret_tech ICO dashboard: https://demo.icodashboard.space.
It was implemented to provide following functionality:
- ICO investors sign up.
- Generation of Ethereum address upon user activation.
- KYC verification using Jumio Netverify service (https://www.jumio.com/trusted-identity/netverify) and Sufti Pro service (https://shuftipro.com).
- Token purchase.
- Displaying Investor's transaction history.
- All important actions are protected with 2FA (email or google authenticator) by integration with secret_tech Backend Verify service (https://github.com/JincorTech/backend-verify)
- For more info check API docs: https://secret-tech.github.io/backend-ico-dashboard
- Typescript, Express, InversifyJS (DI), TypeORM (MongoDB interaction).
- Web3JS - interaction with Ethereum client. ICO backend supports any JSON-RPC compliant client.
- Mocha/chai - unit/functional tests.
- Docker.
- Clone this repo.
- Run docker-compose build --no-cache.
- Run docker-compose up -d.
- Run cp .env.test .env.
- To install dependencies run docker-compose exec ico yarn.
- Run tests docker-compose exec ico yarn test.
- Install aglio npm install -g aglio.
- Run mkdir /usr/local/lib/node_modules/aglio/node_modules/aglio-theme-olio/cache.
- Generate aglio --theme-variables cyborg --theme-template triple -i apiary.apib -o ./docs/index.html.
- Clone the repo.
- Write the necessary environment variables in .env. For a basis it is possible to take.env.stageor.env.prod.
- Build services docker-compose build --no-cache
- Run the services docker-compose up -d
Note: The auth and verify services should be accessible from the outside. More in detail with the configuration of these services can be found in their readme.
- Install dependencies and build the project docker-compose exec ico npm i && docker-compose exec ico npm run build
- Generate a token for a tenant:
curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Accept: application/json" \
     --data-binary "{
    \"email\": \"[email protected]\",
    \"password\": \"Password1\"
}" \
'http://auth:3000/tenant'
curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Accept: application/json" \
     --data-binary "{
    \"email\": \"[email protected]\",
    \"password\": \"Password1\"
}" \
'http://auth:3000/tenant/login'
Note: If you start it in ico service, you must install
curl. This can be done with theapk add curlcommand.
- Specify the received token in .envAUTH_JWT.
- Copy the certificates to the dist/certsdirectory.
- Rename or delete the srcdirectory.
Note: If the test environment is deployed and
.env.testis used, files fromsrcwill be used.
- Run ico service:
npm run serve
Note: If the dev environment, will run
npm run startcommand.