Uma plataforma para aprendizado de idiomas, na qual você pode traduzir artigos e vídeos da internet.
Website • Sobre • Inspiração • To do List • Tecnologias usadas • Desafios
É uma plataforma de aprendizado de idiomas projetada para os usuários postarem vídeos e páginas na internet (com os devidos créditos), e traduzirem para um determinado idioma enquanto deixam notas explicando suas traduções para ajudarem outros estudantes.
Com sistema de pontos, níveis e quantidade de "obrigados", o usuário se sente mais motivado a engajar.
Lá pelos meus 12 anos, eu usava muito um site chamado Duolingo - o jeito grátis, divertido e eficaz de aprender um idioma - e foi daí que eu aprendi o meu Inglês.
Eles tinham uma ferramenta - que era a Imersão - um lugar para traduzir páginas da internet para o idioma que estava aprendendo.
Era uma ferramenta muito boa pois provia um ambiente cooperativo e imersivo, além de atrair usuáios que só queriam ler sobre assuntos adversos.
Porém, com o passar do tempo, ela foi descontinuada, e isso gerou um impacto para todos nós que usávamos a plataforma/ferramenta.
Não houve muitas tentativas de refazer a ferramenta e as que fizeram, não foramm tão fiéis e/ou boas.
Agora sinto que posso recriar o site.
Pode ser que fique popular, não sei, mas farei por amor. ❤️
- Modo escuro
- Modo claro
- Cadastro de usuário
- Login de usuário
- Página de perfil do usuário
- Feed com filtros
- Upload de documentos (páginas da Web)
- Upload de vídeos
- Extração de texto da página Web
- Separação do texto extraído por frases
- Modelagem do Banco de Dados
- Publicar novas traduções
As seguintes ferramentas foram usadas na construção do projeto:
- Express
- Node.js
- Node SQLite3
- Cheerio
- Axios
- dotENV
- Express Rate Limit
- Express Session
- Helmet
- Sentence Boundary Detection (SBD)
- Simple Git
Veja o arquivo package.json
- React
- React Router Dom
- Node SASS
- React Suite
- React Facebook Login
- React Google Login
- React Responsive
- Use on Screen
Veja o arquivo package.json
O maior desafio foi o baixo orçamento. Infelizmente, não posso gastar com hospedagem de site nem de banco de dados.
A solução que encontrei quanto à hospedagem de domínio foi o Heroku - só havia um problema - Heroku provia planos grátis bem limitados para bancos de dados.
Mas aí vem o SQLite!! SQLite é um sistema de banco de dados baseado em um sistema de arquivos, ou seja, o seu banco de dados fica embutido em um único arquivo na linguagem C que procura simular um banco de dados real, você pode até usar SQL sem problema nenhum. Por cima de tudo, grátis.
Mas os mais espertos perceberão uma coisa com a associação entre o Heroku e o SQLite, mas eu acredito ter resolvido esse problema.
Sim, o Heroku é efêmero - isto é, as alterações feitas ao seu sistema de arquivos é passageira - então, se eu tenho o arquivo A e um usuário faz uma alteração nele dinamicamente com uma linguagem de servidor, depois de 1 dia, essa alteração não vai mais valer.
Então, como vamos ter um banco de dados baseado em arquivo único sendo que o Heroku zera tudo no fim do dia??
A verdade é que o que vale é o que vai para o Github, o Heroku só considera o que estiver escrito no seu repositório no Github.
Bom, a pergunta agora é se podemos atualizar o arquivo do banco no Github sempre que alguma interação for feita com ele? E a resposta é sim.