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.
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.
- 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).
- 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.
- 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.
- Envio de convites para membros (simulação).
- Aceitação e rejeição de convites.
- Listagem de convites pendentes.
- Revogação de convites.
- 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.
- Next.js 15.
- React com suporte a novos recursos, como Actions e React Server Components (RSC).
- Tailwind CSS para estilização.
- Monorepo gerenciado com pnpm.
- Docker e docker-compose para ambiente de desenvolvimento.
-
Clone o repositório:
git clone https://github.com/seu-usuario/nextjs15-saas-study.git cd nextjs15-saas-study
-
Instale as dependências:
pnpm install
-
Configure as variáveis de ambiente:
- Crie um arquivo
.env
na raiz do projeto com base no arquivo.env.example
.
- Crie um arquivo
-
Execute as migrações do banco de dados:
pnpm --filter api run db:migrate
-
Inicie o ambiente de desenvolvimento:
pnpm dev
-
Acesse o frontend em http://localhost:3000 e a documentação da API em http://localhost:4000/docs.
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.
- 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.
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!