Giter Club home page Giter Club logo

timtec's Introduction

Stories in Ready Coverage

TIM Tec

A plataforma de cursos online TIM Tec é um software livre que utiliza o conceito de MOOC (Massive Open Online Courses), cursos abertos e livres que podem ser feitos simultaneamente por muitas pessoas.

O sistema pode hospedar múltiplos cursos que utilizam videoaulas, além de materiais de apoio e outros links. A ferramenta permite a criação de testes e o uso de emuladores desenvolvidos para que alunos exercitem os conhecimentos abordados. Alunos podem fazer e responder perguntas, ver respostas e favoritar as perguntas dos colegas em um fórum, além de fazer anotações em seu caderno virtual. Gestores podem gerar relatórios de acompanhamento dos cursos, turmas e alunos, acompanhar o progresso de cada participante e habilitar professores tutores quando necessário.

A tecnologia e os conteúdos da plataforma TIM Tec estão sendo compartilhados com instituições públicas de ensino da Rede e-Tec Brasil, com o apoio da Secretaria de Educação Profissional e Tecnológica do Ministério da Educação (Setec/MEC). Entre as instalações já implementadas estão:

Algumas outras iniciativas fora do universo dos IFs:

Instalação e configurações

Para acessar a documentação completa, veja a pasta docs na raiz da aplicação.

Requisitos de instalação

  • Operating system: Debian (8, 9) or Ubuntu (16.04);
  • Proxy server: uwsgi (>= 2.0.7);
  • Web Server: nginx (>= 1.6.2);
  • javascript server-side interpreter: node.js (>= 0.10.40);
  • Data base server: postgresql (>= 9.2);
  • Python language package: python (= 2.7 ou < 3);
  • Virtual Enviroment Python: virtualenv (>=1.11.6);

Pacotes e módulos importantes

Requisitos de Desenvolvimento

  • all the above requirements
  • build essentials and many dev packages if on apt/rpm based systems
    • libpq-dev, libjpeg-dev, libpng12-dev, build-essential, python-dev, gettext
  • nodejs (0.10+) (you will need a ppa for ubuntu < 14.04)

Production Environment Requirements

UP to 6000 users

  • Processor: Dual Core
  • RAM: 2 to 4 GB
  • Disk Space: 10 GB
  • Network Total Transfer/mo: ~12GB
  • Incoming: 1GB
  • Outgoing: 11 GB

UP to 10k/12k users

  • Processor: Quad Core
  • RAM: 4 to 6 GB
  • Disk Space: 25 GB
  • Network Total Transfer/mo: ~25GB
  • Incoming: 2GB
  • Outgoing: 23 GB

Running Tests

We made a bunch of tests for the system. They are separated into python tests (that includes selenium full stack tests) and Karma/AngularJS tests. To run all of them together just type

make all_tests

remember that you need to have your virtualenv activated and has installed everything from the dev-requirements.txt file.

python

Activate virtual env, then:

make python_tests

timtec's People

Contributors

anarute avatar andersonorui avatar barraponto avatar bgola avatar brunosmartin avatar danipj avatar dfkimera avatar fabiomontefuscolo avatar fredericksilva avatar gustavovs avatar laurybueno avatar lfagundes avatar moacirmoda avatar nicolavieira avatar pablofl avatar rmonico avatar rodrigoprimo avatar santagada avatar virgilio avatar vitor-kato avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

timtec's Issues

Bug: página "minhas anotações"

Quando logado, a página "minhas anotações" não apresenta ao usuário as anotações dos cursos que estão em progresso em nenhum dos dois temas (tema if e theme timtec).

Ver página do bug:

Task da issue: verificar e fazer um bug fix. A página deve mostrar links como:

  • "Curso de html" > Anotações
  • "Curso de css" > Anotações

Ao clicar no link o aluno deve ser levado às anotações do curso, isto é, deve ser levado para uma página como essa: http://demo.timtec.com.br/course/desenhodejogos/mynotes/

A página de anotações deve ser uma "central" com links para anotações de todos os cursos.

Bug: em atividades, no modo "true or false" usuário deve ser avisado quando não marcou alguma alternativa

Hoje a atividade "true or false" só avisa ao usuário se houve erro ou acerto do exercício como um todo, mas quando o usuário não respondeu todas as perguntas ela sempre diz que esta errado. Neste caso, o sistema deveria checar antes (validação) se todas as opções foram marcadas. Quando o usuário tentar submeter a resposta, se tiver alguma opção em branco, o feedback deveria dizer "preencha todas as alternativas de verdadeiro ou falso antes de proceguir".

Ex.:
Logado como admin (essa é a montagem da atividade):
http://demo.timtec.com.br/admin/courses/1/lessons/1/

selecao_018

Logado como aluno (quando o aluno realiza a atividade). Repare abaixo que o aluno marcou apenas um opção e por isso o feedback foi "sua resposta está incorreta". A mensagem deveria dizer "preencha todas as alternativas antes de prosseguir". Depois de preencher todas, daí sim o sistema deveria checar quais estão corretas e quais estão erradas e mostrar ao usuário a mensagem "sua resposta está incorreta".
selecao_020

Correção a ser implementada em todos os temas: default, timtec e if

Adicionar "notifications"

No menu, quando usuário estiver logado, mostrar um item de "notificações" que mostra mensagens enviadas pelos professores. As mensagens enviadas pela plataforma devem ficar armazenadas na base e serem visualizadas conforme issue #17

No caso deste menu, deve aparecer um item "notificações" no qual o usuário possa ver as mensagens enviadas para a turma dele. O menu deve redirecionar para uma página com notifications.

ex.:
selecao_017

BUG: Gestão de cursos não funciona

url: http://localhost:8000/admin/courses/
ref: #53

Testar e corrigir também:

  • Criar cursos
  • Acesso aos relatórios de gestão (Tela de relatórios de gestão)
  • ? Número de usuário que terminaram pelo menos um curso.
  • ? Porcentagem de alunos alunos atualizaram o perfil com mais informações depois do primeiro cadastro
  • Publicar (e mudar o status) dos cursos
  • Definir data de início de um curso
  • Editar todos os campos da introdução dos cursos e das aulas
  • Criar Unidades, vídeos e atividades
  • Acesso aos relatórios de gestão (Tela de relatórios de gestão) do curso para todas as turmas

Tela de turmas - inserir data de inscrição no curso

Quando um aluno se matricula no curso, o professor não consegue saber quando esse aluno se inscreveu observando as turmas deste curso.

  • Acrescentar a coluna "data de matricula" no formato "dd/mm/yyyy - hh:mm" nesta tela (tela de turma de um curso). É interessante que a coluna possa ser dinâmica, isto é, ao clicar no título da coluna ela deve organizar por ordem crescente ou decrescente.

http://timtec.conexaobrasil.org/class/2/

Atividades com feedback personalizado

Inserir possibilidade dos professores inserirem feedback nas respostas
das atividades. Atualmente isso não é editável e há uma resposta padrão para
erro e uma para acerto.

  • na criação da atividade, adicionar opção para o professor inserir feedback positivo e/ou negativo;
  • no momento em que o aluno responde a opção e clica em enviar, se estiver correto, acrescenta o feedback positivo na mensagem que é exibida atualmente. Se estiver incorreto, acrescenta o feedback negativo.

Ex. de como funciona hoje:
selecao_021
selecao_020

Ex. de interação personalizada na plataforma Alura.
screencapture-cursos-alura-br-course-introducao-ao-python-section-6-task-3-analyse-1472237988764

Melhorar página de perfil

Atualmente a página de "perfil" (http://demo.timtec.com.br/profile) não mostra algumas informações. Acrescentar:

  1. Visualização de campo de estado, cidade, ocupação, redes sociais e site (basicamente mostrar os campos que estão no cadastro)
  2. Acrescentar visualização "cursos em andamento" na mesma página (a página meus cursos pode ser mantida, mas é necessário que cursos em andamento apareça na página do perfil também)
  3. Acrescentar, ao lado de cada curso em andamento" botão para " ver anotações do curso"

Certificado por turma

Um determinado professor/coordenador ou administrador deve poder setar um certificado por turma. Ele deve poder abrir uma turma e dizer que a turma é de certificação. Ao concluir o curso (alcançando o percentual mínimo de realização), o aluno pode solicitar o certificado e o professor pode liberar.

Essa engine deve funcionar para todos os temas.

certificados_timtec

Bug: Adicionar instrutor já existente em outro curso!

Quando vou procurar um instrutor já existente acontece alguns erros:

1. Quando vou vincular um professor que já fez um curso na plataforma em outro curso (novo): primeiro tentei procurá-lo pelo nome, mas não funciona. (Isso é ruim porque nem sempre eu sei como foi o usuário do professor)

procura por nome

2. Depois tentei procurar pelo usuário, dessa forma dá certo, porém não aparece nenhuma informação como nome, foto e biografia.

procura por usuario

por usuario apos salvar

3. Mas temos uma exceção, com o Edu Agni (usuário eduagni) funciona:

edu excecao

Simplificar o método de emissão de certificados para determinada turma

  • Remover temporariamente (desabilitar) funcionalidade de avaliação
  • Criar formulário que seleciona alunos que terão direito ao certificado.
  • Fluxo desejado:
    • Professor cria turma de certificação*
    • Professor acrescenta alunos em turma de certificação*
    • Professor envia mensagem aos alunos marcando avaliação, alunos realizam avaliação e professor corrige (em fluxo independente ao sistema)*
    • Professor, baseando-se na lista completa de alunos cadastrados naquela turma, seleciona alunos que terão direito ao certificado, clicando no checkbox "liberar certificado".

Obs:

  • Relacionado ao #24
  • Depende do #26
    • Sistema já contempla essa funcionalidade
  • unificar as telas "certificação" e "turmas". (quando o usuário clica no botão "permitir certificação, aparecerão as opções de certificação")

Observações:

Um determinado professor/coordenador ou administrador deve poder setar um certificado por turma. Ele deve poder abrir uma turma e dizer que a turma é de certificação. Ao concluir o curso (alcançando o percentual mínimo de realização), o aluno pode solicitar o certificado e o professor pode liberar.

Essa engine deve funcionar para todos os temas.

certificados_timtec

Inserir botão para sair do curso

Por hora não há opção do aluno "sair" de um curso. Para o professor, talvez seja interessante saber desse registro de desistência. Ao cancelar a inscrição, poderia aparecer um questionário, perguntando os motivos. Isso pode ser usado para melhorar o curso.

Esse poderia ser um dado adicional sobre o curso: pessoas que manifestaram desejo explícito de não continuar o curso.

Agora, o aluno pode manifestar interesse e depois voltar a refazer o curso. Isso também pode acontecer.

Email de boas vindas - entrada no curso

Cada curso deve ter um local onde o professor-criador do curso (administrador) escreve um email de boas-vindas automático para os alunos. Este email deve ser enviado automaticamente quando um aluno se inscreve no curso.

  • Criar form de escrita do email na edição do curso com label "Email de boas-vindas". A tip deverá ser "Este email é enviado aos alunos que se inscrevem no curso automaticamente no ato da inscrição";
  • Criar engine de envio de email;

bug: edição de status(público/rascunho) de um curso visível para usuários sem permissão de edição

Na visualização de um curso, logado como estudante (usuário comum), usando um dispositivo móvel (layout mobile, sm), é possível ver botão de status do curso "Público" ou "Rascunho". Essa informação só deveria aparecer para usuários com papel de coordenador ou admin, o estudante não deve ver isso.

Para testar, ver essa url logado em uma mobile device: http://demo.timtec.com.br/course/html5/intro/

803707759_82335_15288156631337188628

Página de Criação de cursos - Popup ou warning de saída

[importante] Na página de criação de curso o usuário pode sair ou fechá-la a qualquer momento e, se ele não tiver salvado, todas as alterações serão perdidas, pois não existe nenhuma mensagem perguntando se o usuário tem certeza que quer sair e dizendo que ele vai perder tudo, inclusive o curso, não só suas informações. Colocar um pop-up avisando o usuário será de extrema utilidade.

Página de criação do curso com tema default

selecao_015

Fórum: melhorias de usabilidade

Atualmente o sistema de fórum funciona da seguinte forma: cada curso possui um fórum e os fóruns podem ser organizados por turma. Cada "forum" pode ter diversos tópicos e todo usuário pode abrir um tópico.

  • Paginação: página deve conter apenas os 10 últimos registros. O resto deve ser organizado com paginação. Atualmente não há paginação, o que dificulta muito e acaba pesando a página. Ex. atual sem paginação: http://mooc.timtec.com.br/course/html5/lesson/internet-e-web/#/1
    paginacao
  • Busca textual: o usuário deve ter a possibilidade de digitar um termo e pesquisar nos títulos e/ou conteúdo dos tópicos
    forum-search
  • Edição: administradores devem ter possibilidade de editar respostas e/ou ocultar/deletar respostas/tópicos de terceiros
    selecao_029
  • Multiplas respostas: atualmente um usuário só pode responder a um determinado tópico uma única vez. Isso é um erro. Mesmo respondendo a um tópico
    selecao_030
  • Seguir publicação: todo tópico deve ter a opção de "seguir publicação". Quando essa opção for setada, o usuário deve receber um email para cada nova postagem feita naquele tópico
    selecao_027
  • Atualmente os tópico pode receber um rating com seta para cima e para baixo. Substituir isso por like / dislike. Ex.:
    33ac6ab875c33697b27e048f5e6d5bca
  • Na atual listagem de tópicos, só é possível filtrar por "mais recentes", "mais votadas" e "mais respondidas". Seria importante que informações como visualização do tópico e número de respostas estivesse presente na listagem.

unnamed

[importante] Melhorar o cadastro de usuário

  1. No form de cadastro inicial, verificar se o campo "nome de usuário" corresponde a "login". Se sim e não for obrigatório, retirar;
  2. Ainda no form de cadastro inicial, acrescentar os campos "primeiro nome", "sobrenome", "estado" e "cidade" e deixar como campos obrigatórios;
  3. No form de cadastro interno (edição de perfil http://demo.timtec.com.br/profile/edit), acrescentar campos para data de nascimento, redes sociais (facebook, twitter, whatsapp[campo de telefone com ddd], telegram)
  4. No cadastro, inserir uma mensagem (tip) ao usuário "Após o cadastro, você deve se logar usando email e senha";
  5. Implementar os itens anteriores nos 2 temas: tema ifcolors (http://demo.timtec.com.br/accounts/signup/) + tema timtec (http://mooc.timtec.com.br/#)

Tela de cadastro atual tema IF:
selecao_008

Tela de cadastro atual tema timtec:
selecao_009

  1. Detalhe importante: nos temas atuais o login do usuário é por login e senha. Depois das mudanças acima, Isto deve ser trocado para email e senha.

ex.: Login atual:
selecao_019

Como deve ser:
selecao_019b

Criar e implementar uma página "forbidden" customizada

Quando um usuário comum/anonimo tenta acessar uma página privada ele recebe um erro 403 (forbidden) ou quando não está logado recebe um erro 500. O usuário deveria receber uma página tratada, dizendo (em português):

Um erro aconteceu ou você não tem permissão para acessar essa página. Volte para a home ou contacte o administrador: [email protected]

O layout da página pode ser default do tema. Não deve ser essa página do django:

selecao_014

Testar todos os fluxos de trabalho do sistema, em decorrência do merge v3.3 > v4.0

Testar todos os fluxos de trabalho do sistema e documentar possíveis erros e bugs. Basear-se na lista abaixo:

  • Administrador

    • (#54) Gestão de usuários (Tela de gestão de usuários)
    • (#54) Mudar papéis dos usuários
    • (#54) Bloquear e desbloquear usuário
  • Administração Geral

    • (#55) Administração da Página Inicial
    • (#55) Escolher os cursos que terão destaque na home, bem como seu ordem
    • (NÃO ACHEI) Editar conteúdo do Termo de Uso
    • (OK) Editar conteúdo da página "Sobre"
  • Gestão dos cursos

    • (#56) Listar cursos (admin)
    • (#56) Criar cursos
    • (#56) Acesso aos relatórios de gestão (Tela de relatórios de gestão)
    • (#56) Número de usuário que terminaram pelo menos um curso.
    • (#56) Porcentagem de alunos alunos atualizaram o perfil com mais informações depois do primeiro cadastro
  • Gestão dos cursos

    • (#56) Publicar (e mudar o status) dos cursos
    • (#56) Definir data de início de um curso
    • (#56) Editar todos os campos da introdução dos cursos e das aulas
    • (#56) Criar Unidades, vídeos e atividades
    • (#56) Acesso aos relatórios de gestão (Tela de relatórios de gestão) do curso para todas as turmas
  • Gestão de professores do curso

    • (#56) Adicionar ou remover professor do curso.
    • (#56) Definir papel do professor no curso
  • Estatísticas

    • (NÃO ACHEI) Número total de usuário que concluíram cada curso
    • (NÃO ACHEI) Porcentagem dos alunos que concluíram cada curso
    • (NÃO ACHEI) Número de alunos por curso
    • (NÃO ACHEI) Estatísticas por turma
    • (NÃO ACHEI) Mesmas estatísticas do professor tutor, porém com a possibilidade de ver dados de todas as turmas.
  • Mensagens

    • (#57) Enviar mensagens para todos os alunos do curso, ou para qualquer turma do curso
  • Gestão de turmas (Tela de gestão de turmas)

    • (OK) Excluir Turmas
    • (#58) Alterar professor(es) tutor(es) das turmas
    • (#58) Inserir e apagar estudantes das turmas
  • Professor Tutor

    • (#58) Gestão das turmas em que é tutor (Tela de gestão de turmas)
    • (#58) Criar turmas em que ele é tutor
    • (#58) Gerir alunos da turma
    • (#50) Moderar forum (pode ocultar questões) de suas turmas
  • Relatórios

    • (#59) Análise de progresso no curso por Aluno
    • (#59) Número total de alunos no curso
    • (#59) Listagem dos Alunos do curso, com porcentagem de conclusão do curso.
    • (#59) Porcentagem de conclusão em cada Aula.
    • (#59) Análise de progresso do curso por Aula
    • (#59) Lista de aulas do curso, com a porcentagem de alunos que concluiu cada uma.
    • (#59) Enviar Mensagens para os alunos das suas turmas
  • Estudante

    • (#50) Fazer curso
    • (#50) Postar questões no Forum
    • (#50) Responder questões no Forum
    • (#50) Acessar o Material Didático
    • (#50) Receber mensagens dos professores (hoje apenas por email)

BUG: Processo de cursar um curso do início ao fim não funciona

ref: #53

Testar e corrigir também:

  • Fazer curso
  • Salvar uma nota de uma aula
  • Postar questões no Forum
  • Responder questões no Forum (está quebrado e se manterá quebrado pois iremos investir tempo nos fóruns novos)
  • Acessar o Material Didático
  • Receber mensagens dos professores (hoje apenas por email)
  • Assistir uma aula
  • Responder as atividades

Melhorias na engine de mensagens do curso

No painel de um curso há a opção de enviar mensagens para os alunos de uma determinada turma ou de todas. Ex. de página de mensagens de um determinado curso:

Implementar melhorias em todos os temas (default, timtec e if):

  • Implementar editor wyswyg na edição de mensagens do professor/coordenador/admin para os alunos. As opções disponíveis podem ser simples, tais como:
  • negrito
  • itálico
  • lista
  • link

Usar tyni mce: ui-tinymce (https://github.com/angular-ui/ui-tinymce)

  • Armazenar as mensagens enviadas pelos professores/coordenadores/admins de maneira que seja possível ver o histórico de mensagens enviadas pela plataforma. O histórico deve ser evidentemente somente leitura e deve mostrar:
  • para quais turmas a mensagem foi enviada
  • quando a mensagem foi enviada
  • qual conteúdo da mensagem
  • quem enviou a mensagem

selecao_011

selecao_012

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.