Skip to content

Back-end do projeto Civitas para o Orion Bootcamp 2024

License

Notifications You must be signed in to change notification settings

agleicesousa/civitas-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5291dde · Feb 5, 2025
Dec 17, 2024
Jan 6, 2025
Dec 21, 2024
Nov 15, 2024
Jan 3, 2025
Oct 17, 2024
Oct 7, 2024
Dec 21, 2024
Feb 5, 2025
Dec 6, 2024
Nov 15, 2024
Nov 15, 2024
Dec 17, 2024
Dec 17, 2024
Oct 18, 2024

Repository files navigation

CIVITAS API | Projeto Back-end do Orion Bootcamp 2024

Node.js TypeScript Docker

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.

Sumário

Descrição

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.

Instalação

Pré-requisitos

  • Node.js Node.js: Versão 20 ou superior.
  • npm npm.
  • MySQL MySQL.
  • Docker (opcional).

Clonar o Repositório

Primeiro, clone o repositório para o seu ambiente local:

git clone https://github.com/agleicesousa/civitas-api.git
cd civitas-api

Instalar Dependências

Para instalar as dependências do projeto, execute:

npm install

Configuração do Ambiente

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=admin@dominio.com    # E-mail do administrador principal

Rodar a Aplicação

Com Docker

Se você preferir usar Docker, execute:

docker-compose up

Sem Docker

Caso não use Docker, execute a aplicação com:

npm run start:dev

Uso

Admin Master

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

Permissões

  • 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.

Documentação

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

TSDoc

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ção

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.

Créditos

Este projeto foi desenvolvido durante o Orion Bootcamp da New Rizon. Agradecimentos especiais aos participantes:

Mentor:

Product Owner:

Back-End:

Front-End:

Licença

Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

About

Back-end do projeto Civitas para o Orion Bootcamp 2024

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages