Projeto desenvolvido durante o Orion Bootcamp da New Rizon para gerenciar usuários, PDIs e turmas, com diferentes níveis de permissão para admins, professores e alunos.
Este projeto é uma aplicação Node.js utilizando TypeScript, com suporte opcional para Docker. Ele permite o gerenciamento de usuários, PDIs e turmas, com diferentes níveis de permissão para admins, professores e alunos.
Primeiro, clone o repositório para o seu ambiente local:
git clone https://github.com/agleicesousa/civitas-api.git
cd civitas-api
Para instalar as dependências do projeto, execute:
npm install
Crie um arquivo .env
na raiz do projeto, baseado no arquivo .env.example
e preencha com suas próprias configurações:
# Configurações do banco de dados MySQL
DB_HOST=localhost # Endereço do servidor de banco de dados (pode ser 'localhost' ou o nome do container se estiver usando Docker)
DB_USER=root # Nome de usuário para acessar o banco de dados
DB_PORT=3306 # Porta do banco de dados (porta padrão do MySQL)
DB_PASSWORD=MinhaSenhaForte # Senha para o usuário de banco de dados
DB_ROOT_PASSWORD=SenhaRoot # Senha do usuário root do banco de dados
DB_DATABASE=meu_database # Nome do banco de dados a ser utilizado pela aplicação
# Configurações de autenticação JWT
JWT_SECRET=MinhaChaveSecreta # Chave secreta para assinatura dos tokens JWT
SECRET_KEY=OutraSenhaSuperSecreta # Chave adicional para segurança da aplicação (pode ser utilizada para criptografias internas)
ALGORITHM=aes-256-ctr # Algoritmo de criptografia utilizado para gerar tokens JWT (padrão: aes-256-ctr)
# Configurações do administrador inicial (admin master)
ADMIN_PASSWORD=SenhaAdmin123 # Senha do administrador principal (admin master) após o primeiro login
ADMIN_EMAIL=[email protected] # E-mail do administrador principal
Se você preferir usar Docker, execute:
docker-compose up
Caso não use Docker, execute a aplicação com:
npm run start:dev
Após executar a aplicação, um Admin Master será criado automaticamente com permissões especiais para:
- Criar e gerenciar outros admins
- Criar e gerenciar professores, alunos e turmas
- Criar e gerenciar PDIs
- Professores:
- Podem cadastrar, visualizar e editar PDIs.
- Podem visualizar os alunos e turmas aos quais estão associados.
- Alunos:
- Podem apenas visualizar seus próprios PDIs.
- Admins:
- Podem gerenciar usuários e turmas que eles próprios criaram.
Este projeto usa Swagger para documentar as funcionalidades da API. Após executar a aplicação, acesse a documentação através da URL:
http://localhost:porta/swagger
O código do projeto é documentado usando TSDoc, o que fornece uma documentação clara e estruturada para facilitar a compreensão e manutenção do código.
Contribuições são bem-vindas! Para mudanças significativas, abra uma issue primeiro para discutir as alterações que você gostaria de implementar. Caso tenha sugestões ou melhorias, sinta-se à vontade para enviar pull requests.
Este projeto foi desenvolvido durante o Orion Bootcamp da New Rizon. Agradecimentos especiais aos participantes:
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.