Este é o Backend do projeto desenvolvido em Node.js.
A plataforma educacional é composta por:
- Frontend em Next.js
- Backend em Node.js (Este repositório aqui!)
-
Frontend (Next.js)
- Interface do usuário para criação de conta e interação com os cursos
- Lista dos últimos episódios assistidos e lista com os episódios que mais gostou
- Desenvolvido com Next.js para garantir performance e boa experiência do usuário
-
Backend (Node.js)
- Gerencia contas dos usuários e dos cursos
- Controla a evolução do usuário, salvando os últimos episódios assistidos
- Controla a lista dos episódios que o usuário mais gostou
- Painel administrativo para gerenciamento dos cursos
- Frontend realiza requisições para a API via REST
- API processa as requisições e retorna os dados
Para executar o projeto completo, os serviços devem ser iniciados na seguinte ordem:
- API (Node.js) - Deve ser executado primeiro pois configura o banco de dados
- Frontend (Next.js) - Interface de usuário que se comunica com a API
Cada componente do sistema possui instruções específicas de instalação e configuração em seus repectivos repositórios:
- API em Node.js: Este repositório aqui. Setup do projeto abaixo!
- Frontend em Next.js: Consulte o README na pasta do projeto (clique aqui).
docker-compose.yml
e inserir o seguinte código:
services:
service-pg:
image: bitnami/postgresql
ports:
- '5432:5432'
environment:
- POSTGRES_USER=docker
- POSTGRES_PASSWORD=docker
- POSTGRES_DB=onebitflix
- Clone o repositório - backend:
git clone https://github.com/patrick-cuppi/educational-platform-backend
cd educational-platform-backend
npm install
- Clone o repositório - frontend:
git clone https://github.com/patrick-cuppi/educational-platform-frontend
cd educational-platform-frontend
npm install
- Execute o comando para rodar a aplicação backend:
npm run dev
- Verifique se o banco está rodando:
# para listar os serviços PostgreSQL e verificar se estão em execução:
net start postgresql
# e para obter informações detalhadas:
sc query postgresql
- Caso esteja utilizando docker:
# para rodar a aplicação a partir do arquivo docker-compose.yml
docker-compose up -d
# para verificar os containers:
docker ps
⚠️ Qualquer dúvida que você possua em relação a containers e Docker, recomendo ler a documentação deles.
- Execute o comando para rodar a aplicação frontend:
npm run dev
O backend estará disponível em http://localhost:3030
.
O frontend estará disponível em http://localhost:3000
e integrado ao backend.
Para facilitar os testes, deixei um arquivo na raiz do projeto com toda a collection de rotas e parâmetros para usar no Postman. Este é o arquivo: OneBitFlix.postman_collection.json. Nessa collection existem duas variáveis globais: {{baseURL}} que é a raiz do projeto (http://localhost:3030) e {{adminToken}} que é o JWT do admin. Você pode configurar uma outra variável de Token para o usuário.
- Login via API com senha criptografada e autenticação utlizando JWT
- Proteção de rotas via middleware
- Node.js v.22
- TypeScript (linguagem utilizada para desenvolvimento)
- AdminJS (painel administrativo dos usuários e dos cursos)
- bcrypt (gerar o hash das senhas)
- CORS (proteção das rotas acessadas pelo frontend)
- dotenv (configuração das variáveis de ambiente)
- jsonwebtoken (para a autenticação do usuário)
- express (para gerenciamento das rotas)
- Sequelize (ORM para gerar as migrations e interagir com o Banco de Dados)
- PostgreSQL (Banco de Dados utilizado)