Link para acesso ao sistema: http://ec2-177-71-228-249.sa-east-1.compute.amazonaws.com:3001
A aplicação foi realizada em JavaScript, utilizado a biblioteca ReactJS. O sistema é baseado na Api de filmes https://swapi.dev/api/films e possui as funcionalidades de listagem de filmes, visualização específica de filme, visualização de personagens, visualização especifica de personagens, visualização de produtores, visualização de imagem e trailer do filme e possui link para pesquisa de produtor no Google.
- ReactJS
- Material-UI
- Axios
- Javascript
- HTML
- CSS
- Entre na página inicial do sistema.
- No caminho /films, escolha dentre os filmes a opção de trailer ou de informações.
- Caso deseje visualizar o trailer do filme, será aberto um modal com o trailer.
- Caso escolha a opção de Informações, você será direcionado para a página do filme.
- Na página do filme, é possivel visualizar os produtores e personagens.
- Clique no avatar de um produtor para ser direcionado a página do Google com a pesquisa por nome do produtor.
- Clique no avatar de um personagem para ser direcionado a página com as informações específicas.
- O grupo de avatars mostra inicialmente o valor maximo de 6 personagens, mas você pode clicar no número de avatars faltante para expandir todos.
- Na página específica do personagem você pode visualizar as suas informações e filmes relacionados. Clique em um filme para ser direcionado a página de informações.
- Clone este repositório
- Faça a instalação dos pacotes do projeto com o comando
npm install
- Execute o comando
npm start
GET:
Endpoint: https://swapi.dev/api/films
Retorno - corpo:
{
"count": 6,
"next": null,
"previous": null,
"results": [
{
"title": "A New Hope",
"episode_id": 4,
"opening_crawl": "It is a period of civil war.\r\nRebel spaceships, striking\r\nfrom a hidden base, have won\r\ntheir first victory against\r\nthe evil Galactic Empire.\r\n\r\nDuring the battle, Rebel\r\nspies managed to steal secret\r\nplans to the Empire's\r\nultimate weapon, the DEATH\r\nSTAR, an armored space\r\nstation with enough power\r\nto destroy an entire planet.\r\n\r\nPursued by the Empire's\r\nsinister agents, Princess\r\nLeia races home aboard her\r\nstarship, custodian of the\r\nstolen plans that can save her\r\npeople and restore\r\nfreedom to the galaxy....",
"director": "George Lucas",
"producer": "Gary Kurtz, Rick McCallum",
"release_date": "1977-05-25",
"characters": [
"http://swapi.dev/api/people/1/",
"http://swapi.dev/api/people/2/",
"http://swapi.dev/api/people/3/",
...
],
"planets": [
"http://swapi.dev/api/planets/1/",
"http://swapi.dev/api/planets/2/",
"http://swapi.dev/api/planets/3/"
],
"starships": [
"http://swapi.dev/api/starships/2/",
"http://swapi.dev/api/starships/3/",
"http://swapi.dev/api/starships/5/",
...
],
"vehicles": [
"http://swapi.dev/api/vehicles/4/",
"http://swapi.dev/api/vehicles/6/",
"http://swapi.dev/api/vehicles/7/",
...
],
"species": [
"http://swapi.dev/api/species/1/",
"http://swapi.dev/api/species/2/",
"http://swapi.dev/api/species/3/",
...
],
"created": "2014-12-10T14:23:31.880000Z",
"edited": "2014-12-20T19:49:45.256000Z",
"url": "http://swapi.dev/api/films/1/"
},
...
GET:
Endpoint: https://swapi.dev/api/films/{id}
Retorno - corpo:
{
"title": "A New Hope",
"episode_id": 4,
"opening_crawl": "It is a period of civil war.\r\nRebel spaceships, striking\r\nfrom a hidden base, have won\r\ntheir first victory against\r\nthe evil Galactic Empire.\r\n\r\nDuring the battle, Rebel\r\nspies managed to steal secret\r\nplans to the Empire's\r\nultimate weapon, the DEATH\r\nSTAR, an armored space\r\nstation with enough power\r\nto destroy an entire planet.\r\n\r\nPursued by the Empire's\r\nsinister agents, Princess\r\nLeia races home aboard her\r\nstarship, custodian of the\r\nstolen plans that can save her\r\npeople and restore\r\nfreedom to the galaxy....",
"director": "George Lucas",
"producer": "Gary Kurtz, Rick McCallum",
"release_date": "1977-05-25",
"characters": [
"http://swapi.dev/api/people/1/",
"http://swapi.dev/api/people/2/",
"http://swapi.dev/api/people/3/",
...
],
"planets": [
"http://swapi.dev/api/planets/1/",
"http://swapi.dev/api/planets/2/",
"http://swapi.dev/api/planets/3/"
],
"starships": [
"http://swapi.dev/api/starships/2/",
"http://swapi.dev/api/starships/3/",
"http://swapi.dev/api/starships/5/",
...
],
"vehicles": [
"http://swapi.dev/api/vehicles/4/",
"http://swapi.dev/api/vehicles/6/",
"http://swapi.dev/api/vehicles/7/",
...
],
"species": [
"http://swapi.dev/api/species/1/",
"http://swapi.dev/api/species/2/",
"http://swapi.dev/api/species/3/",
...
],
"created": "2014-12-10T14:23:31.880000Z",
"edited": "2014-12-20T19:49:45.256000Z",
"url": "http://swapi.dev/api/films/1/"
}
GET:
Endpoint: https://swapi.dev/api/people
Retorno - corpo:
{
"count": 82,
"next": "http://swapi.dev/api/people/?page=2",
"previous": null,
"results": [
{
"name": "Luke Skywalker",
"height": "172",
"mass": "77",
"hair_color": "blond",
"skin_color": "fair",
"eye_color": "blue",
"birth_year": "19BBY",
"gender": "male",
"homeworld": "http://swapi.dev/api/planets/1/",
"films": [
"http://swapi.dev/api/films/1/",
"http://swapi.dev/api/films/2/",
"http://swapi.dev/api/films/3/",
...
],
"species": [],
"vehicles": [
"http://swapi.dev/api/vehicles/14/",
"http://swapi.dev/api/vehicles/30/"
],
"starships": [
"http://swapi.dev/api/starships/12/",
"http://swapi.dev/api/starships/22/"
],
"created": "2014-12-09T13:50:51.644000Z",
"edited": "2014-12-20T21:17:56.891000Z",
"url": "http://swapi.dev/api/people/1/"
},
...
GET:
Endpoint: https://swapi.dev/api/people/{id}
Retorno - corpo:
{
"name": "Luke Skywalker",
"height": "172",
"mass": "77",
"hair_color": "blond",
"skin_color": "fair",
"eye_color": "blue",
"birth_year": "19BBY",
"gender": "male",
"homeworld": "http://swapi.dev/api/planets/1/",
"films": [
"http://swapi.dev/api/films/1/",
"http://swapi.dev/api/films/2/",
"http://swapi.dev/api/films/3/",
...
],
"species": [],
"vehicles": [
"http://swapi.dev/api/vehicles/14/",
"http://swapi.dev/api/vehicles/30/"
],
"starships": [
"http://swapi.dev/api/starships/12/",
"http://swapi.dev/api/starships/22/"
],
"created": "2014-12-09T13:50:51.644000Z",
"edited": "2014-12-20T21:17:56.891000Z",
"url": "http://swapi.dev/api/people/1/"
}
O sistema de filmes foi criado como teste de desenvolvimento, porém para realizações futuras seria interessante:
- Inclusão de página de favoritos (o link já foi feito)
- Inclusão de notificação com filmes em lançamento,
- Acessos a outros dados da api, como veículos e planetas
- Adicionar pontuação em estrelas por votação de usuários
- Adicionar comentários de usuários