Skip to content

jpeccia/lariharumi_croche_backend

Repository files navigation

Lari faz Crochê! Back End

FuncionalidadesTecnologias UtilizadasConfiguração e ExecuçãoContribua

Esta API é um sistema completo de gerenciamento de produtos e categorias com autenticação de usuário(admin), com foco em segurança e controle de acesso. Ela oferece uma variedade de funcionalidades, incluindo o registro, login e a autenticação, bem como o gerenciamento de produtos em um catálogo. A API utiliza autenticação baseada em tokens JWT para garantir a segurança e o acesso restrito às rotas protegidas.

🚀 Funcionalidades

  • Autenticação e Registro 🔒: Segurança com autenticação JWT para proteger o acesso de usuários.
  • Catalogo com Produtos e suas Categorias : Os usuários podem acessar os produtos e suas categorias
  • Sistema de Administrador para Adicionar Produtos E Categoria : Sistema para o usuário admin conseguir ter um controle de produtos e categorias.
  • Documentação com Swagger 📖: A API é totalmente documentada com Swagger.

🛠️ Tecnologias Utilizadas

  • Spring Boot 🌱: Estrutura robusta para o desenvolvimento da API RESTful.
  • JWT com Auth0 🔑: Autenticação segura para gerenciamento de sessões de usuários.
  • Swagger 📜: Documentação automática para as endpoints.
  • Docker 🐳: Containers para isolar o ambiente e facilitar o desenvolvimento e a implantação.
  • Insomnia 🌐: Ferramenta de teste para endpoints durante o desenvolvimento.
  • PostgreSQL 🗄️: Banco de dados relacional utilizado para persistir os dados da aplicação.

Configuração e Execução ⚙️

Instalação e Execução

  1. Pré-requisitos:

    • Java 11+
    • Docker
    • PostgreSQL
    • Maven
  2. Clonando o repositório:

    git clone https://github.com/jpeccia/lariharumi_croche_backend.git
    cd lariharumi_backend

3. Configuração de Variáveis de Ambiente

Este projeto utiliza variáveis de ambiente para gerenciar dados sensíveis, como credenciais de banco de dados, tokens de autenticação e chaves de API. Usar variáveis de ambiente ajuda a manter o código mais seguro e facilita a configuração em diferentes ambientes (desenvolvimento, teste, produção).

1. Criar o arquivo .env

  1. Na raiz do projeto, crie um arquivo chamado .env.
  2. Adicione as variáveis de ambiente necessárias para o projeto, conforme o exemplo abaixo:
# Configurações de Banco de Dados
DB_USERNAME=seuUsuario
DB_PASSWORD=suaSenha
DB_URL=jdbc:postgresql://localhost:5432/laricroche

# JWT Token para autenticação
JWT_SECRET=suaChaveSecreta

# Outras configurações importantes
APP_PORT=8080

Nota: Este arquivo não deve ser commitado no repositório, pois contém informações sensíveis. Garanta que o .env está listado no seu arquivo .gitignore.

2. Carregar as Variáveis de Ambiente

O Spring Boot carregará automaticamente as variáveis do sistema ou do ambiente. Se você estiver usando o arquivo .env com ferramentas como Docker ou outros sistemas de integração, ele será lido automaticamente se configurado no docker-compose ou no ambiente do servidor.

3. Exemplo de Configuração no application.properties

No arquivo application.properties, você pode acessar as variáveis usando a sintaxe ${NOME_VARIAVEL}:

# Configuração do Banco de Dados
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}

# Configuração do JWT
jwt.secret=${JWT_SECRET}

# Porta da aplicação
server.port=${APP_PORT}

4. Usar Variáveis de Ambiente no Docker

Se você estiver usando Docker, defina as variáveis de ambiente no docker-compose.yml:

services:
  app:
    image: postgres
    environment:
      - DB_USERNAME=${DB_USERNAME}
      - DB_PASSWORD=${DB_PASSWORD}
      - JWT_SECRET=${JWT_SECRET}
      - APP_PORT=${APP_PORT}
  1. Rodando a aplicação com Docker:
    • Execute o comando abaixo para iniciar a aplicação em um container Docker:
      docker-compose up --build

Contribuição 🤝

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.


Licença 📄

Este projeto está licenciado sob a MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages