Desenvolvimento Web
| Orçamento: Aberto |
Publicado: |
Propostas: 5
Estamos desenvolvendo um sistema de revisão de flashcards baseado no método de Revisão Espaçada (FSRS - Free Spaced Repetition System), que armazena flashcards em diferentes decks e permite a revisão periódica com base no desempenho do usuário.
Problema: Atualmente, estamos enfrentando problemas na integração e funcionamento de dois scripts JavaScript que deveriam gerenciar o carregamento dos flashcards, calcular os intervalos de revisão e atualizar as estatísticas de desempenho do usuário.
Esses problemas incluem:
• Conflito de funções: Temos dois arquivos JavaScript (main.js e script.js) que possuem funcionalidades sobrepostas, como o gerenciamento de estados dos flashcards (novos, em revisão, concluídos) e o cálculo do intervalo de revisão com base no feedback do usuário. Essas funções estão redundantes e não estão funcionando corretamente.
• Flashcards não estão sendo carregados corretamente: Os flashcards são salvos no localStorage, mas quando a página é carregada, ou eles não são exibidos, ou não estão sendo filtrados corretamente por deck. Às vezes, os flashcards aparecem de forma inconsistente.
• Problemas no fluxo de revisão: Após o usuário dar um feedback ("Fácil", "Bom", "Difícil", "De novo"), o flashcard deveria ser agendado para uma nova revisão com base em um intervalo específico. No entanto, o cálculo dos próximos intervalos não está sendo aplicado de maneira precisa, e os flashcards não estão voltando na ordem correta para a revisão futura.
• Atualização incorreta das estatísticas: As estatísticas de revisão (número de cards novos, cards em revisão, total de cards e o desempenho do usuário) não estão sendo atualizadas corretamente após cada interação com os flashcards.
Objetivo: Precisamos de um programador experiente em JavaScript e manipulação de DOM, com experiência em sistemas de revisão espaçada, para corrigir esses problemas. O profissional deverá:
• Unificar os scripts JavaScript e eliminar redundâncias entre main.js e script.js, garantindo que todas as funcionalidades relacionadas ao carregamento dos flashcards, revisão e estatísticas sejam centralizadas e funcionem sem conflitos.
• Corrigir o carregamento dos flashcards a partir do localStorage, garantindo que os flashcards corretos sejam carregados conforme o deck selecionado e que eles possam ser revisados na ordem adequada.
• Implementar corretamente a lógica de revisão com intervalos baseados no feedback do usuário ("De novo", "Difícil", "Bom", "Fácil"), aplicando as regras de espaçamento para cada tipo de feedback e garantindo que o flashcard seja revisado no intervalo de tempo correto.
• Corrigir a atualização das estatísticas de flashcards novos, em revisão e o desempenho do usuário após cada interação com os flashcards.
Resumo do sistema: O sistema é uma aplicação web para gerenciamento de flashcards usando o método de Revisão Espaçada (similar ao sistema Anki). O usuário pode:
• Adicionar flashcards a diferentes decks.
• Revisar os flashcards de acordo com a frequência calculada pelo algoritmo de espaçamento.
• Dar feedback após revisar cada flashcard, determinando se foi "Fácil", "Bom", "Difícil" ou se precisa ser revisado "De novo".
O sistema utiliza o localStorage para salvar o progresso do usuário e manter os flashcards organizados por decks. A interface já está desenvolvida, e o sistema principal de revisão já foi parcialmente implementado. O desafio está na integração e correção dos bugs mencionados, para que o sistema funcione de maneira consistente.
Habilidades desejadas: Javascript.