Skip to content

Este é um exemplo de uso das tecnologias nextjs e nodejs com autenticação e autorização de acesso utilizando o padrão RBAC. Sendo uma peça de estudo, algumas funcionalidades não estão ativas, o foco deste repositório é entender as novas funcionalidades que o nextjs 15 trouxe ao mercado.

Notifications You must be signed in to change notification settings

rgranvilla/next-saas-rbac

Repository files navigation

Next.js SaaS + RBAC

Este repositório tem como foco principal o estudo das novas funcionalidades introduzidas pelo Next.js 15, bem como a implementação de um sistema SaaS (Software as a Service) multi-tenant com controle de acesso baseado em funções (RBAC - Role-Based Access Control). Trata-se de um projeto voltado para aprendizado e exploração de boas práticas no desenvolvimento de aplicações web modernas.

Aviso Importante

Esta aplicação foi desenvolvida exclusivamente para fins de estudo e experimentação. Algumas funcionalidades, como o envio de e-mails e integrações com serviços externos, não estão ativas. Por isso, este repositório não deve ser considerado um produto pronto para o mercado.

Funcionalidades Implementadas

Autenticação

  • Criação de conta com e-mail, nome e senha.
  • Autenticação utilizando senha.
  • Suporte a login social (GitHub).
  • Recuperação de senha via token (a implementação do envio de e-mail está desativada).

Organizações

  • Criação de organizações.
  • Listagem de organizações vinculadas a um usuário.
  • Edição de informações de uma organização.
  • Transferência de propriedade de organização.
  • Encerramento de organizações.

Projetos

  • Criação e vinculação de projetos às organizações.
  • Listagem de projetos vinculados a uma organização.
  • Edição e exclusão de projetos.
  • Detalhamento de projetos específicos.

Convites

  • Envio de convites para membros (simulação).
  • Aceitação e rejeição de convites.
  • Listagem de convites pendentes.
  • Revogação de convites.

Tecnologias Utilizadas

Backend

  • Node.js com Fastify.
  • Prisma ORM para gerenciamento de banco de dados.
  • Banco de dados: PostgreSQL.
  • JWT para autenticação e sessões seguras.
  • Zod para validação de esquemas de dados.

Frontend

  • Next.js 15.
  • React com suporte a novos recursos, como Actions e React Server Components (RSC).
  • Tailwind CSS para estilização.

Infraestrutura

  • Monorepo gerenciado com pnpm.
  • Docker e docker-compose para ambiente de desenvolvimento.

Configuração e Execução

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/nextjs15-saas-study.git
    cd nextjs15-saas-study
  2. Instale as dependências:

    pnpm install
  3. Configure as variáveis de ambiente:

    • Crie um arquivo .env na raiz do projeto com base no arquivo .env.example.
  4. Execute as migrações do banco de dados:

    pnpm --filter api run db:migrate
  5. Inicie o ambiente de desenvolvimento:

    pnpm dev
  6. Acesse o frontend em http://localhost:3000 e a documentação da API em http://localhost:4000/docs.

Pontos de Estudo

Este projeto explora conceitos importantes:

  • Multi-tenancy em aplicações SaaS.
  • Controle de acesso granular com RBAC.
  • Novas features do Next.js 15, incluindo melhorias no Server Actions.
  • Estruturação de monorepos para projetos complexos.

Limitações

  • O envio de e-mails está desativado.
  • Este repositório não inclui testes automatizados abrangentes (exercício sugerido).
  • Algumas funções de billing simulam valores e cobranças.

Contribuições

Como o projeto tem fins de estudo, contribuições para melhorias e correções são bem-vindas. Envie um Pull Request ou abra uma Issue para discutirmos!

Desenvolvedor

Ricardo Granvilla

Ricardo Granvilla 🚀

Twitter Badge Linkedin Badge Gmail Badge

About

Este é um exemplo de uso das tecnologias nextjs e nodejs com autenticação e autorização de acesso utilizando o padrão RBAC. Sendo uma peça de estudo, algumas funcionalidades não estão ativas, o foco deste repositório é entender as novas funcionalidades que o nextjs 15 trouxe ao mercado.

Topics

Resources

Stars

Watchers

Forks

Languages