Esse projeto foi desenvolvido como parte da disciplina de Fundamentos de Desenvolvimento de Software.
O CheckPoint tem como objetivo fornecer uma plataforma para que os usuários possam compartilhar, salvar, descobrir e escrever avaliações de jogos.
Seu guia completo para avaliar e descobrir jogos!
- Avalie e comente jogos
- Organize sua biblioteca
- Descubra novos jogos
- Conecte-se com a comunidade
- Eu, como usuário típico gostaria de editar meu perfil.
- Eu como usuário típico gostariar de avaliar (0-5 estrelas) os jogos disponíveis.
- Eu como usuário típico gostaria de favoritar jogos para que apareçam em meu perfil.
- Eu como usuário típico gostariar de fazer uma review (comentada).
- Eu como usuário típico gostariar de apagar uma review já criada.
- Eu como usuário típico gostariar de editar uma review já criada.
- Eu como usuário típico gostaria de poder visualizar a review de outro usuário.
- Eu como usuário típico gostaria de poder curtir a review de outro usuário.
- Eu como usuário típico gostaria de poder comentar a review de outro usuário.
- Eu como usuário típico gostaria de adicionar jogos a minha “lista de desejos” ou “wishlist”, para demonstrar meu interesse por aquele jogo.
- Eu como usuário típico gostaria de visualizar a wishlist de outros usuários.
- Eu como usuário típico gostaria de pesquisar por usuários.
- Eu como usuário típico gostaria visualizar o perfil de outros usuários.
- Eu como usuário típico gostaria de seguir outros usuários.
- Eu como usuário típico gostaria de ver uma aba com reviews recentes de pessoas seguidas.
- Eu como usuário típico gostaria de pesquisar por jogos específicos.
- Eu como usuário típico gostaria de curtir um jogo.
GGuardians é um grupo de jogadores, e alunos da faculdade CesarSchool, apaixonados por criar ferramentas que aprimoram a experiência de jogar.
Criar um sistema de review de jogos que seja útil, engajador e inovador.
O projeto foi feito utilizando o pair-programming, com duplas randomizadas e alternadas a cada semana
Este projeto foi desenvolvido utilizando as seguintes tecnologias:
Django
Para rodar em ambiente local, siga os passos:
-
Crie seu ambiente virtual python executando:
Para o Windows:
python -m venv venv
Para o Linux:
python3 -m venv venv
-
Ative seu ambiente virtual:
Para o Windows:
-
Antes, no powershell:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
.\venv\Scripts\activate
Para o Linux:
source venv/bin/activate
-
-
Instale as dependências:
pip install -r .\requirements.txt
-
Rode o servidor localmente:
Para o Windows:
python manage.py runserver
Para o Linux:
python3 manage.py runserver
Entrega 2:
Acesso ao Site: https://checkpoint-fds.azurewebsites.net
Ao entrar no site, o usuário será solicitado a fazer login em sua conta (ou registrar-se caso ainda não possua uma). Após concluir este processo, o usuário terá acesso aos serviços da Checkpoint.
Link do ScreenCast do Uso do Sistema
Relato Programação em Par:
-
Clara e Heloísa: Realizamos pair programming para implementar um novo recurso de avaliação de parâmetro 5 estrelas.
Resultado: A implementação, infelizmente, foi falha. Apesar das tentativas de ambas as participantes de implementar a história, acabamos criando mais bugs e issues dentro do código e preferimos não realizar o commit para não atrapalhar o andamento do projeto como um todo, entretanto, a nossa relação como uma equipe foi fortalecida, é como aquele velho ditado "Os erros são os degraus pelos quais subimos à sabedoria.".
Conclusão: Pair programming fortaleceu nossa colaboração e confiança como equipe.
-
Larissa e João Pedro Maranhão: Realizamos o pair programming na tentativa de realizar a história da criação de uma wishlist.
Resultado: Implementação falha. Depois de muita pesquisa e tentativas, deixamos a respectiva história de lado e, para ainda assim colaborarmos com a equipe, populamos nosso acervo de jogos para o nosso site, fizemos a logo da nossa plataforma e trabalhamos em conjunto com Clara para fazer o diagrama de atividades.
Conclusão: O Pair Programming aumentou nossa determinação para continuar estudando e tentando, afim de colaborar com o grupo.
-
João Pedro Fontes e Antonio Paulo Barros: Realizamos pair programming para implementar a pesquisa por jogos na base de dados, curtir um jogo e fazer a criação de uma nova review para o jogo selecionado.
Resultado: Após algumas pesquisas e tentativas iniciais de como poderiamos fazer essas novas features, fazendo os modelos do banco de dados e fazendo alterações no html, conseguimos implementar com sucesso essas histórias, retirando alguns bugs antes do commit como:
- Retorno JSON errado após a criação da review;
Além disso, resolvemos algumas issues no github após a criação da historia de curtir um jogo e pesquisa por um jogo, sendo elas:
- Bug ao curtir um jogo: Era mostrado que o jogo não existia se fosse sua primeira ação de curtir um jogo.
- Bug ao pesquisar um jogo: Era mostrado os jogos que batiam exatamente com o que foi pesquisado, pesquisando, inclusive, se o caracter era maiúsculo ou minúsculo.
- Bug no redirecionamento de rotas: Bug que nao redirecionava para a página de login se o usuário não estivesse logado e tentasse acessar a rota privada.
Conclusão: O pair programming serviu para aprendermos mais sobre a implementação das novas features do projeto Checkpoint, além do trabalho em equipe.
Print do quadro da sprint 1 no Jira:
Diagrama de Atividades
Entrega 3:
Screencasts
Link do Screencast do LoFi
Link do Screencast do build e deploy com os testes
Link do Screencast do Sistema
Link do Screencast dos testes
Relatos de Pair Programming
Antonio e Heloísa: Durante nossas sessões recentes de pair programming, focamos em três tarefas principais: implementar a história de deletar uma review, realizar melhorias no front-end e implementar testes utilizando Cypress.
Resultado: O desenvolvimento da funcionalidade de deletar reviews foi particularmente ágil, graças ao domínio de Django por ambos. Já as melhorias no front-end foram alcançadas com sucesso, após uma investigação detalhada e algumas iterações de design e usabilidade. Quanto aos testes em Cypress, após de pesquisa para melhor compreensão da ferramenta, conseguimos implementar os testes automatizados.
Conclusão: O pair programming serviu para aprendermos mais sobre Front-End em geral e sobre a ferramenta Cypress, além do trabalho em equipe.
Larissa e Clara: Durante nossas sessões recentes de pair programming, focamos também em três tarefas principais: pensar na nova atualização do diagrama, pesquisa de bugs e reimaginação do front-end da aplicação.
Resultado: Com sucesso, concluímos tudo o que tínhamos pensado. Organização do diagrama, que, antes estava incorreto, procura por bugs a fim de relatá-los no nosso bug tracker e colaboramos com mais ideias e testes de front-end.
João Pedro Fontes e João Pedro Maranhão: Durante nossas sessões de pair programming, trabalhamos juntos no desenvolvimento de duas funcionalidades principais para nossa plataforma: a edição de reviews e a implementação de um sistema de avaliação com estrelas para jogos. Nosso foco foi integrar essas funcionalidades de maneira eficaz, tanto no backend quanto no front-end, e garantir seu funcionamento.
Resultado: Conseguimos implementar com sucesso a funcionalidade de edição de reviews, permitindo aos usuários modificar suas avaliações de forma segura e intuitiva. O sistema de avaliação com estrelas também foi bem-sucedido, oferecendo uma interface agradável e fácil de usar. Os testes automatizados confirmaram a robustez das novas funcionalidades.
Conclusão: As sessões de pair programming foram extremamente benéficas, não só para o desenvolvimento técnico das funcionalidades, mas também para o aprendizado mútuo e aprimoramento das nossas habilidades. A experiência reforçou a importância da colaboração e da comunicação eficaz no sucesso do projeto.
Entrega 4:
Screencasts
Link do Screencast do LoFi
Link do Screencast do build e deploy com os testes
Link do Screencast do Sistema
Link do Screencast da Pipeline do Branch de Desenvolvimento com testes
Link do Screencast dos testes
Relatos de Pair Programming
Durante nossas sessões recentes de pair programming, focamos em implementar duas histórias importantes: editar perfil e adicionar à wish list, além de desenvolver testes utilizando Cypress.
A implementação das funcionalidades de editar perfil e adicionar à wish list ocorreu de maneira fluida, beneficiando-se da nossa colaboração próxima e da compreensão compartilhada do projeto. Nos testes com Cypress, dedicamos tempo para compreender a ferramenta, resultando em testes automatizados eficazes.
O pair programming nos proporcionou uma oportunidade valiosa para aprimorar nossas habilidades técnicas, especialmente em relação ao desenvolvimento web e ao uso de ferramentas de teste como o Cypress. Além disso, fortaleceu nossa capacidade de trabalhar em equipe e colaborar de maneira eficaz.
Durante nossas sessões recentes de pair programming, concentramo-nos em aprimorar o front-end e realizar melhorias no restante do projeto, incluindo os slides e outras áreas.
O processo de atualização do front-end e das demais partes do projeto foi conduzido de forma colaborativa e eficiente. Através de iterações cuidadosas, conseguimos melhorar a aparência e a usabilidade do projeto de forma significativa.
O pair programming destacou a importância da comunicação e da colaboração em equipe para alcançar resultados de alta qualidade. Aprendemos muito sobre design de interface e desenvolvimento front-end, o que nos permitirá enfrentar desafios futuros com mais confiança.
Durante nossas sessões recentes de pair programming, nos concentramos na implementação da funcionalidade de curtir reviews e na criação de testes automatizados utilizando Cypress.
A implementação da funcionalidade de curtir reviews foi ágil, graças à nossa compreensão sólida da arquitetura do projeto. Além disso, dedicamos tempo para explorar os testes automatizados com Cypress, garantindo a qualidade e confiabilidade do código.
O pair programming demonstrou ser uma abordagem eficaz para acelerar o desenvolvimento e garantir a qualidade do código. Aprendemos não apenas sobre as funcionalidades específicas do projeto, mas também sobre as melhores práticas de teste, o que beneficiará nosso trabalho futuro.