Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

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


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

Last synced: 3 months ago
JSON representation

Lists

README

        

# 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:

- aumentar os níveis de transparência ativa e de abertura de dados, garantindo a proteção de dados pessoais;

- instituir metodologias ágeis e colaborativas como parte do processo de desenvolvimento e de evolução de sistemas administrativos e de serviços digitais;

- fortalecer o controle das políticas educacionais e da aplicação de recursos por parte da gestão e da sociedade;

- promover espaços e metodologias de colaboração entre governo, Academia, sociedade civil e setor privado.

O Ateliê do Software ([http://forum.govit.prefeitura.sp.gov.br/uploads/default/original/1X/c88a4715eb3f9fc3ceb882c1f6afe9e308805a17.pdf](http://forum.govit.prefeitura.sp.gov.br/uploads/default/original/1X/c88a4715eb3f9fc3ceb882c1f6afe9e308805a17.pdf "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](#Sobre-o-Time)

2. [Sobre o Produto](#Sobre-o-Produto)

3. [Como surgiu](#Como-surgiu)

4. [Links Úteis](#Links-Úteis)

5. [Comunicação](#Comunicação)

6. [Como contribuir](#como-contribuir)

7. [Repositórios](#Repositórios)

8. [Documentações Auxiliares](#Documentações-Auxiliares)

9. [Instalação e Configuração](#Instalação-e-Configuração)

----------

## [](#sobre-o-time)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)Sobre o Produto

### [](#objetivos-de-negócio)Objetivos de Negócio

- Para o Ensino Fundamental, apresenta sequências de atividades que articulam objetivos de aprendizagem previstos em cada componente curricular às competências da Matriz de Saberes e aos Objetivos de Desenvolvimento Sustentável;

- Para o Ensino Médio, apresenta os percursos de estudo e formação (temas divididos por área do conhecimentos baseados nos itinerários formativos e que se desdobram em disciplinas eletivas) para possibilitar o direito de escolha e o protagonismo dos estudantes e alinhamento aos Objetivos do Desenvolvimento Sustentável e aos eixos da BNCC.

- O Currículo da Cidade se torna um material vivo e dinâmico, para consulta, inspiração e aplicação em sala de aula.

### [](#personas)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**

- Necessidades/dores: buscam por materiais para subsidiar as aulas e referências (como sequências, percursos, projetos do Trabalho Colaborativo Autoral, outras iniciativas realizadas pela comunidade escolar, entre outros)

- O que considera valioso: ter materiais diferentes articulados com o Currículo da Cidade para serem usados em suas aulas e ter acesso a uma plataforma para interagir com colegas da rede. Além disso, ter suas próprias sequências, projetos e outras produções cadastradas e divulgadas em uma plataforma institucional

**Estudantes**

- Necessidades/dores: ver projetos do TCA (Trabalho Colaborativo Autoral) cadastrados e interagir para realizar trocas de aprendizagens com outros estudantes da rede, no Ensino Fundamental e em algumas escolas do Ensino Médio.

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.

- O que considera valioso: ter seus projetos e soluções ouvidos e conhecidos pela rede e ter o link para suas próprias redes sociais para ampliar o protagonismo e visibilidade dos próprios estudantes. A participação ativa amplia o vínculo com a escola, professores e colegas.

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

**Comunidade**

- Necessidades/dores: possuir material disponível para subsidiar pesquisadores, jornalistas e sociedade em geral, possibilitando o acesso aos materiais produzidos de maneira transparente e incentivando parcerias

- O que considera valioso: ter acesso aos materiais de uma rede que é referência e corresponder às políticas de transparência e compartilhamento de informação

**Coordenador da UE**

- Necessidades/dores: precisam ter materiais de referência voltados para a formação dos professores visando a qualificação das práticas pedagógicas e garantir a articulação das atividades realizadas na unidade ao Currículo da Cidade

- O que considera valioso: ter acesso às produções dos professores da escola e da rede, acessar as diferentes diretrizes da rede e ter insumos para articular ações para articular ações pedagógicas dinâmicas e coerentes com os princípios do Currículo da Cidade

**Secretaria Municipal de Educação**

- Necessidades/dores: que a comunidade escolar tenha uma plataforma como referência para as possibilidades dos desdobramentos do Currículo da Cidade e que exista um lugar institucional para interação desses profissionais e estudantes

- O que considera valioso: que a comunidade escolar tenha espaço de colaboração entre si; que as práticas pedagógicas coerentes com o currículo da cidade estejam visíveis para toda rede; que a plataforma apoie a proposta curricular para possibilitar a sua continuidade, permeando as diferentes gestões municipais

### [](#funcionalidades)Funcionalidades

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

- Encontrar referências (sequências de atividades, percursos formativos e outros materiais) para subsidiar seu trabalho em sala de aula;

- Salvar essas referências;

- Consulta aos materiais disponibilizados;

- Compartilhar e publicizar projetos desenvolvidos pela comunidade escolar;

- Responder as consultas à rede criadas pela Secretaria/ NTC.

### [](#roadmap)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.**

- Tá na rede;

- Novo currículo do Ensino Médio.

## [](#como-surgiu)Como surgiu

### [](#fase-de-descoberta)Fase de Descoberta:

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

## [](#links-úteis)Links Úteis:

**Homologação:**

[https://hom-curriculo.sme.prefeitura.sp.gov.br/](https://hom-curriculo.sme.prefeitura.sp.gov.br/)

**Produção:**

[https://curriculo.sme.prefeitura.sp.gov.br/](https://curriculo.sme.prefeitura.sp.gov.br/)

## [](#comunicação)Comunicação:

Canal de comunicação

Objetivos

[Issues do Github](https://github.com/prefeiturasp/SME-plataforma-curriculo/issues)

- Sugestão de novas funcionalidades

- Reportar bugs

- Discussões técnicas

## [](#como-contribuir)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](https://github.com/prefeiturasp/SME/blob/master/docs/CONTRIBUTING.md) 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](https://github.com/prefeiturasp/SME/blob/master/docs/CODEOFCONDUCT.md).

## [](#repositórios)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](https://github.com/prefeiturasp/SME-plataforma-curriculo-API)

## [](#instalação-e-configuração)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](https://docs.docker.com/compose/install/) `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

```bash

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](https://github.com/dlenski/openconnect) com suporte ao "palo alto globalprotect" é possivel conectar a vpn da pmsp com o comando:

```sh

$ 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 [email protected]`.

3) Criar swarm em produção:

```sh

$ 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](https://github.com/dlenski/openconnect):

```sh

$ 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:

```sh

$ ssh -p 22 -fNL localhost:2374:/var/run/docker.sock [email protected]

$ export DOCKER_HOST=tcp://localhost:2374

```

4) Deploy é feito pelo comando:

```sh

$ 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```

---