E_aprender
Projeto E Learning Web Development como parte da graduação do 6º semestre do BCA na VNSGU University
CARACTERÍSTICAS :
Site do usuário
- Execução de código em várias linguagens
- Chamada de vídeo entre dois usuários, vários usuários podem participar da chamada
- Discussão para QnA com votos positivos/negativos e marcação de perguntas, resposta a perguntas, etc.
- Cursos de leitura > Programa > Seção de aprendizagem
- Leitura de artigos com curtidas/comentários e compartilhamento no Whatsapp, Facebook etc.
- bate-papo tawk.to para suporte de bate-papo 24 horas por dia, 7 dias por semana, usuário-2-administrador
- Gerador de endereço automático usando API de localização HTML + API de geocodificação reversa do Google para buscar o endereço do usuário usando GPS
- Pesquisa de usuário para receber feedback ou pesquisa de usuários
- Desafio usuário-2-usuário, o usuário desafia um ao outro em 5 rodadas de perguntas aleatórias e o vencedor recebe XPs pela vitória, que são adicionados ao XP do usuário
- On Site + Mail (html mail) Notificação onde o usuário é notificado sobre perguntas e respostas e desafios
- Perfil do usuário para visualizar detalhes como postagens de perguntas e respostas, enquetes, seguidores e informações de contato. etc.
- ajax para seguir/deixar de seguir, atualização de endereço
Site de administração
- Uso extensivo de tabelas de dados + Ajax em cada página para listar X registros por página, classificar, pesquisar, paginar e buscar dados em PDF, CSV, Excel e imprimir, copiar
- gerenciando administradores adicionando/atualizando/bloqueando/desbloqueando
- gerenciando Categoria -> Cursos -> Capítulos por adicionar/atualizar/bloquear/desbloquear
- gerenciamento de seção (tutorial) e artigos por bloqueio/desbloqueio, adição/atualização com editor WYSIWYG + inserção instantânea de imagens adicionando imagens ao imgur.com a partir do próprio editor
- gerenciando enquetes adicionando/atualizando/bloqueando/desbloqueando com adição de N opções e configuração da data de início e término da enquete
- gerenciando perguntas de desafio adicionando/atualizando/bloqueando/desbloqueando com adição de 4 opções
- gerenciamento de usuário por bloqueio/desbloqueio e visualização detalhada do perfil do usuário
- gerenciando QnA bloqueando/desbloqueando perguntas e respostas
- gerenciando tags adicionando/atualizando/bloqueando/desbloqueando
- gerenciando o feedback do usuário com o envio de e-mails (e-mails em HTML) ao usuário em resposta ao feedback
- Sistema On Site + Mail (html mail) para feedback.
Outro
- Uso de cURL para executar solicitação http no back-end, por exemplo, para invocar a solicitação de API de geocódigo reverso do Google sem expor o endereço da API ou a chave de autenticação aos usuários
- URLs amigáveis de SEO para melhor classificação dos resultados de pesquisa
- Prevenção de ataques XSS filtrando a entrada do usuário e prevenção de injeção SQL por validação em todos os pontos de entrada.
Escopo Futuro
- Ocultando a exposição de IDs por slugs (textos amigáveis), o que também melhora o SEO
- adicionando sistema de comentários disquss na seção (tutorial)
- Página da Web + cache de banco de dados para carregamentos de página mais rápidos.
- substitua o editor WYSIWYG pelo editor de markdown.
TechStack
- Servidor -Apache 2.4.29
- Linguagem de back-end - PHP 7.2.1
- Estrutura - Estrutura Codeigniter 3.1.8 MVC
- Banco de dados - MySQL
- Front-end - HTML5, Bootstrap3
- Painel de controle - XAMPP 7.2.1
- Editor - Texto Sublime
Configuração no Windows
- Instale a versão necessária do XAMPP.
- Abra o php.ini do apache e defina o valor de
upload_max_filesize
como 4M , salve o arquivo, inicie/reinicie o servidor apache e mysql. - Abra o phpmyadmin, crie um banco de dados com algum nome como
e_learn
- Assim que o banco de dados for criado, selecione o banco de dados e_learn da lista de banco de dados e vá para a guia importar e importe o arquivo sql localizado em
/resources/db/db.sql
e clique em ir, aguarde algum tempo para a importação terminar. - Abra
/application/config/config.php
e defina $config['base_url']
como a página inicial do projeto, por exemplo, defina como http://localhost/e_learn/ se seu projeto estiver dentro do diretório chamado e_learn
e salve o arquivo . - Abra
/application/config/database.php
e defina os campos hostname
, username
, password
e database
e salve o arquivo . - Visite http://localhost/e_learn e a página de login/cadastro do usuário deverá aparecer, tente fazer login usando as credenciais da tabela
tbluser
no banco de dados. - Da mesma forma, tente visitar http://localhost/e_learn/admin e a página de login do administrador deverá aparecer, tente fazer login usando as credenciais da tabela
tbladmin
no banco de dados.