Giter Site home page Giter Site logo

armazemdomago's Introduction

Cansado de bagunça no seu armazém mágico? Deixe a desordem desaparecer com ArmazemDoMago! ✨

Visão GeralFuncionalidadesInstalaçãoRecursosContatoLicença

Visão Geral

O ArmazemDoMago é um projeto encantador que combina o mundo da magia com a tecnologia moderna para criar uma experiência única para magos e entusiastas do oculto. Este projeto tem como objetivo principal fornecer uma plataforma onde os usuários possam gerenciar seus itens mágicos de forma eficaz e organizada, tudo com a ajuda de uma API robusta e amigável.

Funcionalidades

  1. Catalogação Mágica: O coração do ArmazemDoMago é a capacidade de catalogar e listar todos os tipos de itens mágicos, desde amuletos e ingredientes misteriosos até grimórios e artefatos encantados.

  2. Gerenciamento Simplificado: Os usuários podem listar, adicionar, atualizar e remover itens mágicos com facilidade, permitindo-lhes manter um controle preciso de seu inventário.

  3. Ordenação Mágica: Os itens são apresentados de forma organizada, permitindo o usuário classificar a listagem pelos itens mais poderosos primeiro.

  4. Notificações Místicas: O sistema de notificação alerta os usuários quando seus estoques mágicos estão ficando baixos, garantindo que nunca fiquem despreparados.

  5. Segurança Mágica: A autenticação de usuário baseada em JWT garante que apenas os magos autorizados tenham acesso aos segredos de seu armazém.

🛠 Tecnologias

  • .Net Core 6
  • Entity Framework Core
  • SQLite
  • JWT para Autenticação

Instalação

Antes de rodar o projeto, é necessário ter instalado em sua máquina:

  • Git
  • DB Browser (SQLite) - Opcional
  • Um IDE de sua preferência (Windows: Recomendo o Visual Studio 2022; Linux: Recomendo o JetBrains Rider)

📦 Clonando repositório

$ git clone [email protected]:yagopeixinho/ArmazemDoMago.git

Banco de Dados

O ArmazemDoMago API utiliza o SQLite como seu banco de dados principal. Um arquivo chamado database.db já está incluso no projeto, minimamente populado com algumas informações e contendo todas as atualizações necessárias. Isso significa que não é necessário executar nenhum comando de migração ou configuração adicional do banco de dados.

Autenticação

Para garantir a segurança e o acesso às rotas protegidas, foi implementado um sistema de autenticação baseado em JSON Web Tokens (JWT).

Para começar, você deve registrar um usuário para obter acesso às funcionalidades protegidas. Para fazer isso, faça uma requisição para a rota de registro:

/api/Autenticacao/registrar

Informe os dados de registro do usuário no corpo da requisição

{
  "email": "[email protected]",
  "senha": "senha-segura"
}

Geração de Token de Acesso Uma vez registrado, você pode gerar um Token de Acesso para autenticar suas futuras solicitações às rotas seguras. Acesse a rota de login:

/api/Autenticacao/login

Novamente, forneça as informações de login no corpo da requisição, utilizando o mesmo endereço de e-mail e senha definidos durante o registro:

{
  "email": "[email protected]",
  "senha": "senha-segura"
}
Continuar autenticação com o Swagger

Swagger

Após uma autenticação bem-sucedida, você receberá um token no formato JWT que deve ser incluído no cabeçalho de suas solicitações às rotas protegidas. Para fazer isso no Swagger, clique em "Authorize" e insira o token no seguinte formato:

Bearer {seu-token-aqui}

Um exemplo real seria:

Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTUxMiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMTIzQGdtYWlsLmNvbSIsImV4cCI6MTY5Mzk1Mzc3M30.mVKVDUpYUt8IltWPEVFs9ikkcqQw5eUYkoq2EnWGMOWjbw0OfJEqRVN1o3hzk_jKOgfi25htQjGcVGdYLPkKSw

Agora você pode acessar todas as rotas seguras da API com segurança!

Continuar autenticação com o Postman

Postman

Após uma autenticação bem-sucedida, você receberá um token no formato JWT que deve ser incluído no cabeçalho de suas solicitações às rotas protegidas. Para fazer isso no Postman, clique em "Authorization" no método selecionado e informe o Type: Bearer Token.

Na variável Token, basta informar o Token que foi gerado e agora você pode acessar todas as rotas seguras da API com segurança!

Recursos

GET /api/Armazem

Obtém a lista de todos os itens mágicos no armazém, ordenados do item mais poderoso para o mais fraco.

GET /api/Armazem/{id}

Obtém informações detalhadas sobre um item mágico específico no armazém.

POST /api/Armazem

Adiciona um novo item mágico ao armazém.

Exemplo de requisição
{
  "nome": "Caneca mágica!",
  "descricao": "Sabe o que isso significa?! Café mágico para todos os magos programadores!",
  "quantidade": 4,
  "poderMagico": 4
}

PUT /api/Armazem/{id}

Atualiza informações sobre um item mágico existente no armazém.

Exemplo de requisição
{
  "nome": "Anéis mágicos",
  "descricao": "Quem sabe eu finalmente encontro o amor da minha vida...",
  "quantidade": 100,
  "poderMagico": 6
}

DELETE /api/Armazem/{id}

Remove um item mágico do armazém.

Contato

  • 📬 Me envie um e-mail: [email protected]
  • Se você tem alguma dúvida ou quer entrar em contato comigo por qualquer outro motivo, você pode encontrar minhas redes sociais e mais informação sobre mim clicando aqui

Licença

Esse projeto não possui nenhuma licença.

armazemdomago's People

Contributors

yagopeixinho avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.