Lorenalgm / DevChallenge

A website for developers to improve their skills by doing front-end and back-end challenges
https://www.devchallenge.com.br/
1.13k stars 67 forks source link

Adicionando Firebase como base de dados. #95

Open filipeleonelbatista opened 1 year ago

filipeleonelbatista commented 1 year ago

Adicionei o firebase como base de dados. Não modifiquei nada de muito preciso embora acredite em uma refatoração do projeto usando algumas outras tecnologias que possam melhorar e agilizar a entrega de um serviço para a comunidade.

Optei pelo uso do firebase pois ele tem um plano gratuito que tem como limite de leituras diario 50 mil requisições o que pode ser muito neste inicio.

Com esse refactor fiz uma area administrativa com login de email/senha do firebase onde se tem mum semi crud para adicionar e remover os desafios.

Fiz alguns ajustes nos links da página inicial e nos selects da pagina de desafios para trazerem os desafios de acordo com a estrutura do firebase mas sem alterar os componentes no geral.

Como nao tem a integração com o dev nesta versão eu adicionei o link do repositório e o usuário no cadastro do desafio..

Existe uma flag no desafio chamada active que é boolean e que pode nos ajudar a controlar se os desafios enviados foram aprovados ou não.

A estrutura do desafio ficou assim


interface Challenges {
            type: "Back-end" | "Front-end" | "Mobile",
            level: "Iniciante" | "Intermediário" | "Avançado",
            techs: string[],
            githubRepository: string,
            username: string,
            background: string,
            name: string,
            description: string,
            createdAt: number,
            active: boolean,
        };

Junto com isso adicionei uma tabela de newsletter para podermos trabalhar com isso em um futuro proximo automatizando com cron jobs (que ja tenho um serviço similar rodando hoje). Usei uma estrutura bem básica.


interface Newsletter {
            email: string,
            optInDate: number,
            optOutDate: number,
            createdAt: number,
            active: boolean,
        };

Para finalizar a implementação teria que criar uma base no firebase, e colocar as chaves que forem geradas nas variaveis de ambiente do projeto e configurar os buckets storage e firestore database para poder usar.

Alguns pontos a considerar e que adoraria participar:

Fica aí o pr para aprovação. Qualquer dúvida estou aqui animado e ansioso para colaborar mais.

vercel[bot] commented 1 year ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
dev ❌ Failed (Inspect) Sep 18, 2023 11:38am
filipeleonelbatista commented 1 year ago

image image image image image image image