O SGR é uma solução web moderna para otimizar o agendamento de espaços e equipamentos em instituições de ensino, como laboratórios e salas de aula. O sistema substitui processos manuais e informais por uma plataforma centralizada, transparente e eficiente, resolvendo problemas como conflitos de horário e falta de visibilidade sobre a disponibilidade dos recursos.
O projeto foi desenvolvido com as seguintes tecnologias:
Antes de começar, é necessário ter o seguinte instalado em seu ambiente:
- Node.js: (Versão LTS mais recente recomendada) - https://nodejs.org/
- npm: (Incluído com Node.js) - Verifique a versão com
npm -v - Git: (Para clonar o repositório) - https://git-scm.com/
-
Clone o repositório:
git clone https://github.com/mulirow/sgrl.git cd sgrl -
Instale as dependências:
npm install
-
Configure as Variáveis de Ambiente:
-
Na raiz do projeto, crie um arquivo
.env.local. -
Preencha as variáveis de ambiente necessárias no arquivo
.env.local:# Banco de Dados (MongoDB via Prisma) DATABASE_URL="sua_string_de_conexao_mongodb" # Autenticação (NextAuth.js com Google Provider) # Para gerar um AUTH_SECRET, execute no terminal: openssl rand -base64 32 GOOGLE_CLIENT_ID="seu_google_client_id" GOOGLE_CLIENT_SECRET="seu_google_client_secret" # Em produção, altere NEXTAUTH_URL para a URL da aplicação NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET="seu_nextauth_secret"
-
-
Aplique o schema ao banco de dados:
Este comando sincroniza o schema do Prisma com seu banco de dados MongoDB.
npx prisma db push
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Acesse a aplicação:
Abra seu navegador e acesse
http://localhost:3000.
O projeto segue uma Arquitetura de 3 Camadas em uma aplicação monolítica com Next.js, otimizada para deployment em plataformas Serverless como a Vercel.
- Camada de Apresentação: Construída com componentes React (Server Components por padrão, Client Components para interatividade), estilizados com Tailwind CSS e shadcn/ui.
- Camada de Lógica de Negócio: Implementada com Server Actions para mutações de dados (criar, atualizar, deletar) e API Routes para buscas complexas ou chamadas que necessitam de um endpoint HTTP explícito.
- Camada de Dados: Gerenciada pelo Prisma ORM, que abstrai a comunicação com o banco de dados MongoDB.
Essa abordagem maximiza a performance ao renderizar o máximo possível no servidor, mantendo a reatividade onde é necessária e simplificando o fluxo de dados entre cliente e servidor.
Se encontrar qualquer problema ou tiver alguma dúvida, por favor, sinta-se à vontade para:
- Abrir uma Issue no repositório do GitHub.
- Entrar em contato por e-mail:
mbn2@cin.ufpe.br
O projeto está sendo ativamente desenvolvido. Novas funcionalidades e melhorias são adicionadas continuamente.
Para contribuir com o projeto, siga os seguintes passos:
- Faça um Fork do repositório.
- Crie uma nova branch:
git checkout -b dev/sua-nova-funcionalidade - Faça commit das suas mudanças:
git commit -m 'feat: adiciona uma nova funcionalidade incrível' - Faça push para a branch:
git push origin dev/sua-nova-funcionalidade - Abra um Pull Request: Envie um pull request detalhando as mudanças propostas.
Diretrizes:
- Siga as convenções de código e estilo do projeto.
- Escreva mensagens de commit claras e semânticas (ex: Conventional Commits).
- Documente o código quando necessário.
- Certifique-se de que suas mudanças não quebrem funcionalidades existentes.