Repositório do projeto de curso de BackEnd com Typescript da Infnet.
A funcionalidade da API é gerenciar matrículas de estudante em determinados cursos. Os estudante podem realizar cadastro e inscrever nos cursos que estão em aberto. Os cursos somente podem ser gerenciados por um administrador. Implementado um painel de admin utilizando biblioteca "adminJS" para gerenciamento dos cursos. Implementado um bloco de anotações em cada cursos, com comunicação em tempo real utilizando sockets. Utiliza banco de dados SQL (sqlite) para amarzenameto de dados de usuários e cursos. Utiliza banco de dados NoSQL (mongoDB) para armazenamento dos blocos de anotações.
- Renomear o arquivo "env.example" para "env".
- Alterar as informações de conexão no arquivo .env e salvar.
- Executar o comando para instalação do projeto
npm install
- A criação do database e tabelas são feitas automaticamento no SGDB (sqlite) se não existir previamente.
- Está configura por padrão para acessar o mongoDB no localhost.
- Executar o projeto
npm start
- Obs: O servidor executa por padrão no endereço http://localhost:3333/api/v1.
- Utilizar endereço http://localhost:3333/api/v1/docs/ para acessar documentação SWAGGER com as rotas/endpoints.
- Utilizar endereço http://localhost:3333/admin/ para acessar a interface de administrador AdminJS.
- Utilizar endereço http://localhost:3333/login para acesar a página inicial.
- Para acesso padrão de Administrador utilizar. Pode ser configurado no .env
{
"email": "admin@email.com",
"password": "Admin123"
}
- É utilizado JWT para autenticação. Retorno na rota "/login". Utilizar o Authorize do swagger para inserir o JWT.
- Rotas privadas para gerenciamento de Student e Course só podem ser acessadas com usuário de Admin.
- Students só têm acesso as rotas privadas /students/info, /courses/info, courses/{uuid}/subscribe e courses/{uuid}/unsubscribe
- Rotas subscribe e unsubscribe utilizam o UUID do curso e JWT do estudante para identificação.
- Node.Js 18.16.0