ImpCourse é uma plataforma de cursos online voltada para fins acadêmicos, desenvolvida para a faculdade Impacta. O projeto visa fornecer um sistema de gerenciamento de cursos com funcionalidades como cadastro de usuários, login, gerenciamento de cursos, aulas e conteúdos.
- Node.js: Ambiente de execução JavaScript no lado do servidor.
- Express: Framework web rápido e minimalista para Node.js.
- TypeScript: Superset do JavaScript que adiciona tipagem estática.
- Prisma: ORM para interagir com o banco de dados MySQL.
- MySQL: Banco de dados relacional utilizado no projeto.
- JWT: Autenticação segura com tokens.
- Axios: Cliente HTTP para requisições externas.
- Docker: Containerização para fácil deploy e desenvolvimento.
Antes de começar, certifique-se de ter instalado:
- Node.js (versão LTS recomendada)
- Docker e Docker Compose (para rodar o banco de dados)
- MySQL (caso prefira rodar o banco localmente)
- Yarn ou npm para gerenciar pacotes
prisma - Configuração do prisma
src - Raiz do projeto
├── application - Camada de aplicação
│ ├── errors - Erros personalizados
│ ├── use-cases - Implementação dos Casos de Uso
│ └── protocols - Interfaces para as necessidades dos casos de uso
├── common - Código comum
│ └── helpers - Funções auxiliares
├── domain - Camada de dominio
│ ├── models - Todos models
| ├── dto - Objetos para transferencia de dados
│ └── use-cases - Interfaces para Casos de Uso
├── infrastructure - Camada de Infraestrutura
│ ├── lib - Configuração de bibliotecas
│ ├── providers - Implementação de providers
│ └── repositories - Implementação de repositórios
├── main - Camada principal
│ ├── factory - Configuração de Controllers
│ ├── lib - Configuração de bibliotecas
│ ├── adapters - Implementação de auxiliares Express
│ ├── app - Configuração da aplicação
│ └── routes - Declaração de endpoints
└── presentation - Camada de Apresentação
├── controllers - Implementação de Controllers
├── middlewares - Implementação de middlewares
└── protocols - Auxiliares metodo HTTP e interfaces
test - Testes
- Cadastro de Usuários: Permite que os usuários se registrem na plataforma.
- Login de Usuários: Autenticação via JWT para acesso seguro.
- Cadastro de Cursos: Usuários podem criar e gerenciar cursos.
- Edição de Cursos: Alteração de informações de cursos existentes.
- Cadastro de Aulas: Criação de aulas dentro de cursos.
- Listagem de Cursos: Exibição de cursos disponíveis para os usuários.
- Acesso e Compra de Cursos: Funcionalidade de compra e acesso ao conteúdo de cursos.
-
Clone o repositório:
git clone https://github.com/GustavoS7/backend-impcourse.git
-
Navegue até o diretório do projeto:
cd backend-impcourse
-
Instale as dependências:
npm install
-
Crie um arquivo
.env
na raiz do projeto e adicione as variáveis de ambiente necessárias, como a configuração do banco de dados. -
Execute o arquivo docker-compose.yml para criação do banco de dados
docker compose up
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Acesse a aplicação no navegador em:
http://localhost:8080