Uma biblioteca digital utilizando Ethereum e blockchain para compartilhar livros de forma segura.
Tokenbook é um acervo digital de livros que usa um ambiente Ethereum proporcionado pelo hardhat em conjunto com contratos inteligentes em Solidity.
O back-end e configurações da blockchain e contratos estão disponíveis no seguinte repositório: TokenBook back
Para iniciar o front-end, é preciso realizar algumas etapas base e algumas de configurações de conexão entre estruturas.
-
Clone o repositório
git clone https://github.com/avictormorais/token-book
-
Acesse a raiz do projeto
cd token-book -
Instale as Dependências
npm install # ou yarn install -
Crie o Arquivo
.envO projeto inclui um arquivo.env.examplecom variáveis de ambiente de exemplo. Para configurar suas próprias variáveis:- Copie o arquivo
.env.examplepara.env:cp .env.example .env
- O valor
PINATA_JWTdeve ser o mesmo que foi disponibilizado pelo pinata e usado no back-end.
- Copie o arquivo
-
Configure os Endereços da Blockchain O projeto utiliza um arquivo
address.jsonlocalizado na pastaassetspara armazenar endereços da blockchain. Estes endereços são utilizados para simular diferentes usuários no sistema. Para configurá-los:- Abra o arquivo
assets/address.json. - Insira os endereços fornecidos pelo nó hardhat conforme o formato JSON. Exemplo:
{ "0x1234567890abcdef1234567890abcdef12345678", "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65" }
- Abra o arquivo
-
Endereço da API Por padrão, o arquivo
services/api.jsestá configurado para consumir a seguinte url como back-end:'http://localhost:3000'. Caso tenha alterado a porta no back-end, é preciso alterá-la também aqui. -
Inicie o Servidor de Desenvolvimento Para rodar o projeto localmente:
npm run dev # ou yarn devO servidor será iniciado e estará disponível no endereço padrão
http://localhost:5173/.
No front-end há uma barra lateral onde é possível selecionar idioma, tema de cores e um botão que leva para a seleção de endereços. Ao selecionar um endereço, todas as ações realizadas no front serão autenticadas pelo back-end, permitindo ou revogando o acesso a determinados livros conforme suas especificações.
Por exemplo, se o usuário X fez upload de um livro como privado, apenas o usuário X verá o livro na homepage, nos resultados de busca e na página de detalhes. Porém, se ele fazer o upload como público, todos os usuários terão acesso ao livro e poderão fazer o download do conteúdo.
Este sistema de controle de acesso garante que os livros possam ser compartilhados de forma segura e personalizada, conforme as preferências de cada usuário.
