Giter Club home page Giter Club logo

python-inovacao-civica's Introduction

python-inovacao-civica

Olá! Este é o repositório do curso Python para inovação cívica. Aqui você encontrará os materiais complementares das aulas e os notebooks dos desafios.

Organização do repositório

O repositório possui esse README.md principal, e um diretório por semana do curso.

Pré-configuração

No Windows, a biblioteca scrapy necessita da instalação das Ferramentas de Build do Visual Studio e ela é utilizada no projeto Querido Diário. Execute o instalador e durante a instalação, selecione a opção “Desenvolvimento para desktop com C++” e finalize o processo. A instalação tem cerca de 6GB... É bem simples mas demora :)

Configuração de ambiente local

Nossa sugestão é que você configure um ambiente para todos os módulos, criando uma virtualenv geral, já que os módulos possuem biblotecas muito semelhantes entre si. Mas nada te impede de criar um ambiente para cada módulo isoladamente.

  • Python >= 3.7 (Caso você não tenha essa versão, você pode usar o pyenv para instalar. Se for o seu caso, você pode conferir esse artigo da Jéssica Temporal).

  • Na raiz do projeto existem dois arquivos: requirements.txt e requirements.in. Estes arquivos contêm as dependências (bibliotecas que precisamos para executar os códigos) para todo o curso e para usá-los siga as instruções a seguir:

Para criar um ambiente virtual, execute:

$ python3 -m venv env

Para ativar o ambiente virtual env que você acabou de criar:

$ source env/bin/activate

Para instalar as bibliotecas:

$ pip install -r requirements.txt

Recomendamos usar este arquivo pa mesmo pois ele contém TODAS as dependências (incluindo dependências de dependências e dependências de dependências de dependências, e por aí vai). Se por curiosidade quiser saber a lista de bibliotecas que realmente utilizamos diretamente, sem contar as dependências aninhadas, veja o arquivo requirements.in.

Se tiver alguma dificuldade com essa instalação, nos envie o erro para que possamos ajudar. Também é possível tentar instalar as dependências a partir do requirements.in da seguinte forma:

$ pip install -r requirements.in

Executando os notebooks

Para executar os códigos no seu computador, recomendamos o Visual Studio Code. Outra opção para trabalhar locamente é Jupyter Notebook

Há também a opção de utilizar notebooks online, como o Google Colab. Você pode fazer o upload do notebook para o seu Drive e abrir via Google Colab. No módulo 0, na aula sobre ferramentas para programar em Python, você pode encontrar o passo a passo de como usar o Google Colab.

A segunda sugestão é executar via o Binder. Neste caso, faça um fork desse repositório, acesse o site do Binder nesse link e informe a URL do repositório.

Semana 0

  • Aula 0: Apresentação do curso

  • Aula 1: Inovação cívica e tecnologia no Brasil

  • Aula 3: O maravilhoso mundo das tecnologias abertas

  • Aula 4: Git e Github: Primeiros passos

  • Aula 5: Introdução ao pensamento computacional

  • Aula 6: Benefícios e aplicações práticas do pensamento computacional

  • Aula 7: Como aprender linguagem de programação

  • Aula 8: Linguagens do curso

  • Aula 9: Configurar um ambiente de desenvolvimento local

  • Aula 10: Ferramentas para programação em python

  • Aula 11: Como funciona a internet

  • Aula 12: Introdução a API

  • Aula 13: Interagindo com APIs

  • desafio.ipynb

    • Desafio: Como aprender linguagens de programação
  • desafio_gabarito.ipynb

    • Resolução do desafio: Como aprender linguagens de programação

Semana 1

  • estrutura_controle.ipynb

    • Aula 1: Variáveis e tipos de dados
    • Aula 2: Operadores
    • Aula 3: Estrutura de controle
    • Aula 4: Estrutura de repetição
  • importando_dados.ipynb

    • Aula 5: Pacotes
    • Aula 6: Método readcsv
    • Aula 7: Carregando tabelas
  • desafio.ipynb

    • Desafio
  • desafio_gabarito.ipynb

    • Resolução do desafio

Semana 2

  • estatistica.ipynb

    • Aula 8: Introdução a estatística
    • Aula 9: Medidas de tendência central e dispersão
    • Aula 10: Outliers e valores faltantes
    • Aula 11: Correlação
    • Aula 12: Operações básicas com dados
    • Aula 13: Filter e sort_values
    • Aula 14: Operações com dados e apply
    • Aula 15: Operações com dados e groupby
    • Aula 16: Conheça o Perfil Político
  • desafio.ipynb

    • Desafio
  • desafio_gabarito.ipynb

    • Resolução do desafio

Semana 3

  • ceap_api.ipynb

    • Aula 1: Entendendo os dados da CEAP
    • Aula 2: Acessando os dados da CEAP via API
    • Aula 3: Lendo os dados da CEAP com Pandas
    • Aula 4: Organizando e visualizando dados
    • Aula 5: Analisando os dados da CEAP
    • Aula 6: Conhecendo ferramentas para usar com a Rosie e o Jarbas
    • Aula 7: Dados da Receita Federal
  • desafio.ipynb

    • Desafio: Extração, leitura e transformação de dados
  • desafio_gabarito.ipynb

    • Resolução do desafio: Extração, leitura e transformação de dados

Semana 4

  • merge.ipynb

    • Aula 8: Receita Federal e CEAP
  • script.py

    • Aula 9: Evoluindo nosso projeto: Criando um script Python
  • sort_values_bruto.ipynb

    • Aula 10: Respondendo perguntas sobre nossos dados
  • sort_values_limpo.ipynb

    • Aula 10: Respondendo perguntas sobre nossos dados
    • Aula 11: Introdução ao Github
    • Aula 12: Salvando nosso projeto no Git
    • Aula 13: Por dentro do Serenata de Amor
  • desafio1.ipynb

    • Desafio: Cruzamento dos dados da CEAP com os dados da Receita Federal

desafio1_gabarito.ipynb

  • Resolução do desafio: Cruzamento dos dados da CEAP com os dados da Receita Federal

  • scraping.ipynb

    • Introdução a webscraping com Pandas
  • desafio2.ipynb

    • Desafio: Webscraping simples
    • Resolução do desafio: Webscraping simples

Semana 5

  • api_qd.py

    • Aula 1: Apresentando o Querido Diário
    • Aula 2: Por dentro do Querido Diário
  • variaveis_funcoes.py

    • Aula 3: Introdução a Orientação a Objetos
  • classes.py

    • Aula 3: Introdução a Orientação a Objetos
  • heranca.py

    • Aula 3: Introdução a Orientação a Objetos
  • sobreposicao.py

    • Aula 3: Introdução a Orientação a Objetos
  • projeto_inovacao

    • Aula 4: Por dentro do raspador do Querido Diário
    • Aula 5: Analisando páginas web - Inspecionando elementos
    • Aula 6: Analisando páginas web - Inspecionando a rede
    • Aula 7: Selecionando elementos com XPath
  • expressoes_regulares.py

    • Aula 8: Expressões regulares
  • ba_caetite.py

    • Aula 9: Traduzindo a análise para um raspador
  • caetite.py

    • Aula 10: Indo além
  • caetite_selenium.py

    • Aula 10: Indo além
  • extract_text_with_apache_tika.ipynb

    • Aula 10: Indo além
  • desafio/desafio1.ipynb

    • Desafio: Wikipédia com XPath
    • Resolução do desafio: Wikipédia com XPath

Semana 6

  • desafio/desafio2.ipynb
    • Desafio: Raspador de diários
    • Resolução do desafio: Raspador de diários

Para realizar algumas atividades deste módulo, o navegador Google Chrome (ou variantes como Chromium) é necessário.

python-inovacao-civica's People

Contributors

anicelysantos avatar belisards avatar cecivieira avatar gabicavalcante avatar lidymonteiro avatar naanadr avatar ogecece avatar rasrbk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.