- Autenticação e autorização de usuários
- Operações CRUD para filmes
- Pesquisa avançada de filmes com múltiplos filtros
- Paginação
- Node.js
- PostgreSQL
- Docker
- Clone o repositório:
git clone https://github.com/andrevvalle/globo.git
- Entre no diretório do projeto:
cd globo && cd backend
- Instale as dependências:
npm install
- Crie um arquivo
.env
na raiz do projeto e preencha-o com suas credenciais de banco de dados e chaves JWT, conforme fornecido no corpo do e-mail:DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public" JWT_PRIVATE_KEY="sua_chave_privada_jwt" JWT_PUBLIC_KEY="sua_chave_publica_jwt"
- Inicie o serviço PostgreSQL. Se estiver usando Docker, pode executar:
Altere
docker-compose up -d
password
para sua senha desejada. - Execute as migrações do banco de dados:
npx prisma migrate dev
- Execute o script de seed:
npm run seed
- Inicie o servidor:
npm run start
Envie uma solicitação POST para /accounts
com o seguinte corpo JSON:
{
"name": "John Doe",
"email": "example@example.com",
"password": "123456"
}
Envie uma solicitação POST para /sessions
com o seguinte corpo JSON:
{
"email": "example@example.com",
"password": "123456"
}
Envie uma solicitação POST para /create-movie
com o seguinte corpo JSON:
{
"title": "Example Movie",
"year": 2022,
"director": "John Doe",
"genre": "Action",
"actors": ["Actor 1", "Actor 2"]
}
O frontend deste projeto é construído utilizando Next.js, uma popular framework React, e é estilizado com Tailwind CSS. Ele também utiliza Axios para requisições HTTP e Heroicons para ícones.
- Node.js
- npm (gerenciador de pacotes do Node.js)
- Entre no diretório do frontend:
cd /globo/frontend
- Instale as dependências do projeto:
npm install
Para iniciar o servidor de desenvolvimento:
npm run dev
Isso iniciará o servidor Next.js em modo de desenvolvimento, normalmente acessível em http://localhost:3000
.
- Next.js: Framework React para aplicações web com renderização do lado do servidor e geração de sites estáticos.
- React e React DOM: Bibliotecas JavaScript para criar interfaces de usuário.
- Tailwind CSS: Framework CSS para design rápido e responsivo com classes utilitárias.
- Heroicons: Conjunto de ícones SVG elegantes e simples.
- TypeScript: Linguagem de programação para adicionar tipagem estática ao JavaScript.