prefeiturasp / SME-plataforma-curriculo

GNU Affero General Public License v3.0
10 stars 11 forks source link

Estratégia de Transformação Digital e Governo Aberto na SME

Como um governo pode atuar para garantir o bem comum de todos? Na SME, acreditamos que um dos meios para isso seja garantir transparência e prestação de contas e constante relação entre governo e sociedade para o desenvolvimento e implementação de políticas públicas.

A Portaria SME nº 8.008, de 12 de novembro de 2018 oficializou a estratégia da Secretaria Municipal de Educação de SP para que nossas ações sejam pautadas nos princípios de Governo Aberto e para usarmos os valores e benefícios do mundo digital para melhorarmos nossos processos e serviços para os cidadãos. Com isso, pretendemos:

O Ateliê do Software (http://forum.govit.prefeitura.sp.gov.br/uploads/default/original/1X/c88a4715eb3f9fc3ceb882c1f6afe9e308805a17.pdf) é uma das ferramentas para operacionalização. Baseado em um modelo de contratação inspirado pelos movimentos ágil e de Software Craftsmanship, trabalhamos com equipes multidisciplinares para o desenvolvimento de produtos que beneficiam toda a comunidade escolar (técnicos da SME e DREs, gestores, professores, alunos e famílias) e concretizam os objetivos da Estratégia de Transformação Digital e Governo Aberto “Pátio Digital”.

Currículo da Cidade

Para os professores

Que precisam de facilidade de acesso ao material de apoio pra criação das aulas

O Currículo da Cidade

É uma plataforma web

Que apresenta sequências de atividades que articulam objetivos e competências da Matriz de Saberes, aos Objetivos de Desenvolvimento Sustentável e outros materiais (percursos de formação, Joca, entre outros) são disponibilizados em área restrita para os educadores da rede

Diferentemente de utilizar somente a versão impressa, com pouca interação entre os professores

O Nosso produto garante apoio ao processo de colaboração entre os professores, além de ser uma fonte de sequências de atividades, percursos de estudo e formação, disciplinas eletivas e outros materiais didáticos para os professores. Além disso, os professores poderão atuar de maneira autoral, compartilhando os próprios projetos e sequências de aprendizagem.

Conteúdo:

  1. Sobre o Time

  2. Sobre o Produto

  3. Como surgiu

  4. Links Úteis

  5. Comunicação

  6. Como contribuir

  7. Repositórios

  8. Documentações Auxiliares

  9. Instalação e Configuração


Sobre o Time:

| Papel | Titular | Suplente

|--|--|--|

| Product Owner | Heloisa Moraes e Lisandra Paes| - |

| Agente de Governança | @VitorFerragini | Gabriela Rowlands |

| Gerente de Projeto | Aline Freitas | |

| Scrum Master | Augusto Silva | |

| Designer de Serviços | @cintiafabi |@caiodibdeseixas |

| Analista Programador | Rodolpho Azeredo | |

Sobre o Produto

Objetivos de Negócio

Personas

Uma persona representa um usuário do sistema, descrevendo não só o seu papel, mas também suas necessidades específicas. Isto cria uma representação realística, auxiliando o time a descrever funcionalidades do ponto de vista de quem interagirá com o produto final

Professores

Estudantes

Já no Ensino Médio, há necessidade de compreender as possibilidades dos percursos formativos para que a opção de escolha seja aproveitada. Nesta etapa, também é uma necessidade a maior clareza das possibilidades de construção dos próprios projetos de vida.

Também é importante garantirmos a segurança das informações postadas (lembrando que são crianças e adolescentes).

Comunidade

Coordenador da UE

Secretaria Municipal de Educação

Funcionalidades

O que precisa ter no produto para que tal persona alcance tal objetivo?

Roadmap

O Sequenciador de features ajuda a organizar e a visualizar as features e sua relação com os MVPs. Ele estrutura e planeja os lançamentos do produto, além do primeiro produto mínimo viável. Estimar esforço por amostragem.

Como surgiu

Fase de Descoberta:

https://educacao.sme.prefeitura.sp.gov.br/wp-content/uploads/Portals/1/Files/52812.pdf

Links Úteis:

Homologação:

https://hom-curriculo.sme.prefeitura.sp.gov.br/

Produção:

https://curriculo.sme.prefeitura.sp.gov.br/

Comunicação:

Canal de comunicação

Objetivos

Issues do Github

Como contribuir

Contribuições são super bem vindas! Se você tem vontade de construir o curriculo digital conosco, veja o nosso guia de contribuição onde explicamos detalhadamente como trabalhamos e de que formas você pode nos ajudar a alcançar nossos objetivos. Lembrando que todos devem seguir nosso código de conduta.

Repositórios:

Trabalhos do TCA

Sequência de atividades desenvolvidas nos diferentes componentes

Informar os repositórios de código que envolvem a solução:

[SME_plataforma-curriculo]

(https://github.com/prefeiturasp/SME-plataforma-curriculo)

[SME-plataforma-curriculo-API]

https://github.com/prefeiturasp/SME-plataforma-curriculo-API

Instalação e Configuração:

Instalação Local (desenvolvimento)

1) Clone este repositório, entre na pasta e rode git submodule init e git submodule update para clonar também os outros repositórios envolvidos no projeto.

2) Instale docker e docker compose.

3) Existem 3 arquivos de ambiente que devem ser configurados.

a) .env.postgresql, com arquivo de exemplo em sample.env.postgresql. Nele você vai definir as configurações de banco de dados. Você pode escolher estes dados.

b) .env.api, com arquivo de exemplo em sample.env.api. Você também pode escolher uma SECRECT_KEY qualquer.

c) .env.interface, com arquivo de exemplo em sample.env.interface.

4) Para buscar informações da API desenvolvida localmente em vez da de produção, altere o arquivo interface/src/constants.js para que a variável exportada API_URL = http://0.0.0.0

5) Você ainda vai precisar exportar duas variáveis de ambiente, da pasta raíz deste repositório, de um terminal bash, execute


export APP_ROOT=$(pwd)

export APP_ENV=development " Pode ser production também

6) Construa as imagens com docker-compose build.

7) Suba os containers com docker-compose up.

8) Acesse a aplicação em 0.0.0.0 pelo browser.

9) Execute as migrações com docker-compose exec api bundle exec rake db:migrate.

10) Alimente o banco de dados com docker-compose exec api bundle exec rake db:seed.

Instalação remota (produção)

1) Usando o projeto openconnect com suporte ao "palo alto globalprotect" é possivel conectar a vpn da pmsp com o comando:


$ sudo openconnect --protocol=gp vpn1.sme.prefeitura.sp.gov.br -u usuariovpn --servercert pin-sha256:tshIkwa9zrqyIwxzcH+KbtEE0YnsYijhHM1nVCI0Moo=

2) Conectar com o servidor interno no ip 10.50.0.147 com o usuario ssh forcenido pela prefeitura ssh usuariossh@10.50.0.147.

3) Criar swarm em produção:


$ sudo docker swarm init

> docker swarm join --token SWMTKN-1-5chx61bfz2e5e36alhzzv8sffz00080rrpp7bee8m2r15ytx9g-7vaym1i50bzh75f28rsgg53ab 10.50.0.147:2377

4) Se houver mais de um servidor remoto pode se utilizar o comando fornecido acima para conectar varias maquinas e criar um load-balancer.

5) Criar secrets que serão usados pelos containers, os secrets estão listados no final do arquivo swarm.production.yml, para criar um: print "senhadopostgresql" | docker secret create POSTGRES_PASSWORD -.

6) Fazer login no registry da prefeitura, isso evita problemas ao publicar os containers na etapa de deploy: docker login -u usuarioregistry -p senharegistry registry.sme.prefeitura.sp.gov.br.

Deploy

1) Conectar a VPN usando openconnect:


$ sudo openconnect --protocol=gp vpn1.sme.prefeitura.sp.gov.br -u usuariovpn --servercert pin-sha256:tshIkwa9zrqyIwxzcH+KbtEE0YnsYijhHM1nVCI0Moo=

2) Se houver mudança na API, Interface ou qualquer outro projeto faça a geração de novas imagens e publique no registry da prefeitura:

a) Gerar todas as imagens docker-compose -f swarm.production.yml build ou gerar somente a imagem de um projeto docker-compose -f swarm.production.yml build api.

b) Verifique se esta autenticado com o registry da prefeitura, se não faça o login usando docker login -u usuarioregistry -p senharegistry registry.sme.prefeitura.sp.gov.br.

c) Publicar imagens no registry da prefeitura docker push registry.sme.prefeitura.sp.gov.br/curriculo/interface:latest, faça isso para cada imagem alterada.

3) Criar tunnel SSH e expor docker host:


$ ssh -p 22 -fNL localhost:2374:/var/run/docker.sock usuariossh@10.50.0.147

$ export DOCKER_HOST=tcp://localhost:2374

4) Deploy é feito pelo comando:


$ docker stack deploy -c swarm.production.yml curriculum --with-registry-auth

Testando

Os testes são feitos com rspec que é instalado no container do docker. Para rodar os testes:

docker-compose exec api bundle exec rspec