Skip to content

Solução robusta de autenticação e autorização, incluindo o gerenciamento de Usuários, Perfis e Permissões.

License

Notifications You must be signed in to change notification settings

einsoft/s3curity

Repository files navigation

Contributors Forks Stargazers Issues License


Logo

S3curity

Solução robusta de autenticação e autorização, incluindo o gerenciamento de Usuários, Perfis e Permissões.
Documentação »

Demonstração · Informar um bug · Requisitar feature

Conteúdo desse arquivo
  1. Sobre o Projeto
  2. Iniciando
  3. Contribuindo
  4. Licença
  5. Contato

Sobre o Projeto

S3curity Screen Shot

S3curity é uma solução robusta de autenticação e autorização projetada para garantir segurança, flexibilidade e eficiência no gerenciamento de usuários, perfis e permissões.

Principais Funcionalidades

  • ✅ Autenticação segura com JWT
  • ✅ Gerenciamento de usuários e perfis
  • ✅ Controle de permissões granular
  • ✅ API RESTful documentada
  • ✅ Interface web moderna e responsiva
  • ✅ Integração com múltiplos provedores de autenticação
  • ✅ Suporte a multi-tenant

Arquitetura

O sistema foi desenvolvido seguindo os princípios de Clean Architecture e Domain-Driven Design (DDD), com:

  • Frontend: Next.js com TypeScript
  • Backend: NestJS com Prisma ORM
  • Banco de Dados: SQLite (com suporte para outros SGBDs)
  • Autenticação: JWT com refresh tokens
  • Testes: Jest e Cypress

Arquitetura

(voltar ao topo ^)

Feito com

  • TypeScript
  • Next
  • React
  • Prisma
  • SQLite
  • NestJS

(voltar ao topo ^)

🚀 Iniciando

Para executar localmente, siga os passos abaixo:

Pré-requisitos

  • Node.js v14.x ou superior (instalar)
  • Yarn v1.22.x ou superior
  • Docker (opcional para desenvolvimento com containers)
  • Git (instalar)

Instalação

  1. Clonar o repositório

    git clone https://github.com/einsoft/s3curity.git
    cd s3curity
  2. Instalar dependências

    yarn install
  3. Configurar ambiente

    cp apps/backend/.env.exemplo apps/backend/.env
    # Editar o arquivo .env com suas credenciais
  4. Configurar banco de dados

    cd apps/backend
    npx prisma migrate dev
    npx prisma generate

    Detalhes sobre a configuração do Prisma:

    • npx prisma migrate dev: Cria e aplica as migrações do banco de dados
    • npx prisma generate: Gera o cliente Prisma com base no schema

    Configuração do Banco de Dados:

    Por padrão, o projeto usa SQLite para desenvolvimento. Para usar outro banco de dados:

    1. Edite o arquivo apps/backend/prisma/schema.prisma
    2. Altere o provider no datasource:
      datasource db {
        provider = "postgresql" // ou "mysql", "sqlserver"
        url      = env("DATABASE_URL")
      }
    3. Atualize a variável DATABASE_URL no .env

    Solução de Problemas Comuns:

    • Erro "Database does not exist":

      # Para PostgreSQL
      createdb s3curity_dev
      # Para MySQL
      mysql -u root -e "CREATE DATABASE s3curity_dev;"
    • Erro de permissões: Verifique se o usuário do banco tem permissões adequadas

    • Erro de conexão: Verifique se o banco está rodando e acessível Teste a conexão manualmente:

      psql postgres://user:pass@host:port/dbname
    • Resetar banco de dados:

      npx prisma migrate reset

    Dicas de Desenvolvimento:

    • Para visualizar o banco de dados:

      npx prisma studio
    • Para criar nova migração:

      npx prisma migrate dev --name nome_da_migracao
    • Para aplicar migrações em produção:

      npx prisma migrate deploy
  5. Iniciar aplicação

    yarn dev

🛠️ Desenvolvimento

Comando Descrição
yarn dev Inicia frontend e backend
yarn workspace frontend dev Inicia apenas o frontend
yarn workspace backend start:dev Inicia apenas o backend
yarn test Executa todos os testes
yarn lint Verifica estilo de código
yarn build Gera build de produção
yarn clean Limpa cache e builds antigos

🗂️ Estrutura do Projeto

s3curity/
├── apps/
│   ├── frontend/          # Aplicação Next.js
│   └── backend/           # API NestJS
├── packages/
│   ├── core/              # Lógica de negócio compartilhada
│   ├── ui/                # Componentes UI compartilhados
│   ├── eslint-config/     # Configurações ESLint
│   └── typescript-config/ # Configurações TypeScript

📚 Documentação

Documentação da API

A documentação da API está disponível em:

  • Swagger UI: http://localhost:4000/api
  • OpenAPI JSON: http://localhost:4000/api-json

🚨 Resolução de Problemas

Erro de conexão com banco de dados

  • Verifique se o banco de dados SQLite foi gerado corretamente na pasta: src/apps/backend/prisma/dev.db
  • Confirme as credenciais no arquivo .env

Erro de build

  • Limpe a cache: yarn clean
  • Reinstale as dependências: yarn install

Erro de tipagem

  • Regenere os tipos do Prisma: npx prisma generate
  • Verifique se todas as dependências estão instaladas

Outros problemas

Consulte nosso guia de troubleshooting para mais informações.

(voltar ao topo ^)

🤝 Contribuindo

Contribuições são bem-vindas! Siga estes passos:

  1. Faça um fork do projeto
  2. Crie sua branch (git checkout -b feature/NovaFeature)
  3. Faça commit das mudanças (git commit -m 'Adiciona NovaFeature')
  4. Envie para a branch (git push origin feature/NovaFeature)
  5. Abra um Pull Request

Antes de contribuir, leia nosso guia de contribuição.

Boas práticas

  • Siga o guia de estilo de código
  • Escreva testes para novas funcionalidades
  • Mantenha commits atômicos e bem descritos
  • Documente novas funcionalidades

(voltar ao topo ^)

Top contributors:

contrib.rocks image

📄 Licença

Este projeto está licenciado sob a licença Unlicense - veja o arquivo LICENSE.txt para mais detalhes.

🚧 Roadmap

  • Suporte a autenticação OAuth
  • Integração com provedores de identidade (Google, GitHub, etc.)
  • Dashboard administrativo
  • Documentação completa da API

Veja nosso roadmap completo para mais detalhes.

(voltar ao topo ^)

Contato

Projeto: https://github.com/einsoft/s3curity

(voltar ao topo ^)

About

Solução robusta de autenticação e autorização, incluindo o gerenciamento de Usuários, Perfis e Permissões.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •