? Bom aplicativo de notícias é um projeto de código aberto é criado excepcionalmente para fins educacionais. Ele contém back-end (você pode ver a resposta se você abrir este link https://api.good-news.ggc.team/v1/news/ ) escrito em Golang, iOS e Android Mobile Apps (que publicarei na Web Store e no Google Play) feita com Flutter e Frontend feito com Hummingbird (Flutter para Web). Os links para repositórios para o Código de Aplicativos Móveis e Frontend serão adicionados posteriormente, assim que eu terminar de trabalhar neles. Meu código não será perfeito devido ao fato de eu não ser super profissional em nenhum desses tópicos, mas farei o meu melhor, prometo ✌️ Eu sou um defensor de uma idéia de compartilhar conhecimento com o mundo, porque é sempre bom compartilhar o que você aprendeu com aqueles que podem ter dificuldades com os mesmos problemas que você enfrentou e, ao fazer, aprenderei algo novo também. Estratégia ganha-ganha.
Estou em processo de escrita de capítulos divididos em artigos no meio. Abaixo, você encontrará links para eles. Eles serão atualizados quando eu terminar de trabalhar neles.
Artigo introdutório - Aqui você encontrará todas as informações introdutórias e links para outros capítulos também.
Todos os capítulos de um "livro":
E aqui estão os artigos do capítulo atual (repositório):
Para iniciar este projeto localmente, você precisa ter Golang e Docker instalados em sua máquina.
Aviso: o código deste repositório não é uma versão final do que eu tenho dito em meus artigos. Por exemplo, se você quiser saber como publicar este projeto no Digital Ocean Droplet atrás do Proxy Reverso do Traefik com HTTPs disponíveis em seu próprio domínio, você precisará seguir todos os artigos acima.
Primeiro de tudo, você precisa cd para onde seu $GOPATH está apontando na sua máquina e depois cd para $GOPATH/src/github.com/<your_github_or_any_username> . Depois disso, você clonará este repositório, cd e executá -lo com o Docker Compose. Por favor, verifique se o seu Docker é lançado com sucesso enquanto segue as etapas abaixo. Portanto, as etapas são:
> cd ~/go/src/github.com/kanzitelli/ - pode ser diferente do seu, dependendo do seu $GOPATH e nome de usuário . Para verificar onde $GOPATH está apontando, digite o Terminal go env no terminal e você o encontrará no início da lista impressa.> git clone https://github.com/kanzitelli/good-news-backend.git> cd good-news-backend/> docker-compose build && docker-compose up -dlocalhost:6969/v1/news/sources . Você não deve ver nada, certo. Porque precisamos configurar o MongoDB também?> docker exec -it mongo mongo -u "GGCTeamBatr" -p "MySuperSecretPassword" --authenticationDatabase admin -para abrir Shell of Mongo DB em execução em nosso contêiner Docker> use good_news_db - então mudamos (Crie) para o DB necessário> db.createUser({user: 'suuuper_user', pwd: 'soop3r_U$eR_PSWD', roles:[{role:'dbOwner', db:'good_news_db'}]}) - criando um super usuário> db.test_collection.insert({ test: "test" }) - Inserção de dados de teste para coleta de testes> show collections - Exibindo todas as coleções do nosso banco de dados criado anteriormente para garantir que nossa coleção de testes tenha sido criada com sucesso> exit - dizendo adeus a Mongo Shell> docker ps - para mostrar todos os recipientes do Docker em execução. Encontre CONTAINER ID (primeira coluna) do recipiente chamado api .> docker stop <api_contrainer_id> - Para interromper o contêiner da API. Vamos novamente novamente na próxima etapa.> docker-compose build && docker-compose up -d -para reconstruir nosso contêiner do Docker com novas configurações aplicadas ao MongoDB..env na raiz do projeto (no caso de você quiser alterá -las)localhost:6969/v1/news/sources . Agora você deve ver fontes de notícias pré-preenchidas antes do lançamento do servidor. Após 3 minutos, você poderá ver as primeiras notícias reunidas em sites de notícias ao abrir localhost:6969/v1/news . Por que 3 minutos? Siga meus artigos no meio para entender queSe você tiver algum comentário ou sugestão, não hesite em me enviar um e -mail para [email protected]? Se você gostaria de saber quando eu postar novos artigos, siga -me no Twitter?