Üçbüyücü turnuvasına özel, Harry Potter temalı,3D MetaVerse NFT Marketplace.
Solidity ile geliştirilmiş olan smart contractlar aracağılı ile üretmiş olduğunuz herhangi bir şey'i mintler. Üretilen NFT'i yi tekrar client'a sunar. Ethereum server ile iletişimi API içinde ki Rustla yazılmış NIF'ler aracılığı ile gerçekleştirir.
- [Elixir] - Ana Çatı API
- [Rust] - Eth server ile iletişimi sağlayan Native Functions
- [Solidity] - Yüklenen şeyin bir NFT'ye dönüşmesini sağlayan Smart Contracts.
- [MongoDb] - Mintlenen her token'ın metadatası mongo'da tutulur.
- [Ganache] - Eth server
- [Truffle] - Smart Contract Migrations
- [IPFS] - Mintlenen data ipfs de tutulur.
Client Main Repo
Server'ın verdiği REST API aracılıgıyla mint edilmis NFT ile ilgili metadata bilgilerini alır ve bir VR ortamında görüntülenmesini sağlar.
- [Aframe] - ThreeJS bazlı VR kütüphanesi.
Localinizde hali hazırda mongodb yüklüyse port çakışmasını önlemek için kapatmalısınız.
sudo systemctl stop mongod
brew services stop mongodb-community
Paket bağımlılıkları, birden fazla image ile docker'ın ayağı kalkması internet hızınıza da bağlı olarak 15 dk'yı bulabilmektedir. Docker image ayağa kalktıktan sonra npm paketleri ve elixir paketlerinin compile olmasını beklemelisiniz!
cd PotterSea/docker
sudo docker-compose up -d
cd client
sudo docker-compose up -d
Cors yememek için kullandığınız browser'a göre cors'u kapatmayı unutmayın!
- [Client] - localhost:1001
- [Server] - localhost:4000
- [Ganache Server] - localhost:8545
- [IPFS API] - localhost:5001
- [IPFS Client] - localhost:8080
sudo docker exec -it docker_backend_1 /bin/bash
root> mix test test/test/potter_sea_web/controllers/token_controller_test.exs
sudo docker exec -it docker_backend_1 /bin/bash
root> truffle test