Tag : PHP

Construindo uma rede social com o Open Source Social Network

A alguns meses atrás me deparei com o Open Source Social Network, aplicação/site/serviço (não sei, as definições mudam toda hora) em PHP que permite a criação de uma rede social, de forma rápida e fácil. A versão gratuíta está no site www.opensource-socialnetwork.org e a versão com recursos mais avançados pode ser comprada no site www.openteknik.com, que possui algumas instâncias disponíveis para demonstração.

As imagens acima são da versão premium, retiradas do openteknik.com

O que mais me chamou a atenção foi o framework e a base de dados. O framework permite que um componente se sobreponha a outro, o que dá muita flexibilidade para criação de novos recursos ou ainda, melhorar um componente já existente. Já o banco de dados é estruturado de uma forma que eu nunca havia visto antes, e tenho certeza que se apresentasse ele em sala de aula, nos idos de dois-mil-e-nokia-1100, ia levar bronca. São menos de 15 tabelas pra postagens, álbuns, fotos, chat, usuário, configurações, propagandas, amizades, gerenciamento de componentes, etc. Pra efeito de comparação, eu vi um sistema para gerenciamento de biblioteca francês (não direi o nome, pra não fazer divulgação) com mais de 500 tabelas. Umas quantas com os campos código e nome. E atire a primeira pedra quem nunca fez isso 🙂

Nesse meio tempo, vi que precisava melhorar meus conhecimentos sobre github e inglês, língua base do sistema. Juntando o útil ao agradável, comecei a escrever alguns componentes e a ajudar outros membros do fórum do site. O que já fiz:

Notification Sample: Componente criado para entender o funcionamento do sistema de notificações. Disponibilizei ele para ajudar outros desenvolvedores;

Home Page Posts: Permite ao usuário ver as publicações da linha do tempo dos amigos ou de todos os usuários. Por padrão do OSSN, é o administrador do site que decide o que será visto.

Send images in OssnMessages: Permite ao componente de mensagem o anexo de imagens. Como existem no OSSN 2 componentes para mensagens, por enquanto me dediquei ao sistema principal, que funciona em desktop e celulares.

Remove conversation: Com esse componente, é possível remover a conversa da lista das conversas recentes. Só o usuário deixa de ver as mensagens. A conversa em si continua existindo.

O licenciamento do OSSN é regido pelos seus próprios termos, de acordo com o License.md do GitHub. Não use comercialmente sem ler o que diz lá. Vai que…

Upgrade no HeatMap

Desde abril de 2018, com a mudança do servidor, o projeto do heatmap ficou capenga. Inicialmente o banco de dados era o PostreSQL, e o servidor novo só possui MySQL. Além disso, o PGSQL lida de forma diferente com dados geográficos, o que me obrigou a repensar quase todo o banco de dados, pois as consultas convertidas ficaram incrivelmente demoradas.

Por fim, percebi que era mais rápido pegar do Strava todas as atividades outra vez do que migrar o banco de dados. Isso gerou uma mudança no funcionamento do sistema. Antes, as atividades vinham doações de usuários e de uns grupos que faço parte. Agora só tem atividade doadas. Então quem quiser colaborar, precisa clicar no botão “Adicionar atividades ao mapa” e seguir as orientações.

Na parte da programação, reescrevi quase tudo. Dessa vez fazendo uso do CodeIgniter como framework. Só depois que o código já estava adiantado é que descobri que a biblioteca para pegar as atividades do Strava em CodeIgniter estava em um estágio muito embrionário. A solução foi melhorar o código existente e devolver a comunidade. Tá aqui nesse link do GitHub.

O resultado final está no mesmo endereço de antes.

www.rafaelamorim.com.br/heatmap

Sobre os dados

Os dados coletados e armazenados são manipulados de forma automática e utilizados para fins estatísticos e de composição do mapa. Tanto o mapa quanto as estatísticas não fazem nenhuma correlação com o atleta que criou a atividade.

Em nenhuma hipótese, os dados aqui armazenados serão compartilhados ou vendidos. Toda a informação gerada aqui é de divulgação pública. O uso das informações é permitido desde que eu seja notificado via e-mail no endereço amorim@rafaelamorim.com.br.

HeatMap de atividade física

Em conversa com um vereador do município de Santana do Livramento (RS) sobre a falta de atenção do poder público municipal para os ciclistas da cidade, fiquei sabendo que não existem informações sobre o assunto. Em nossa conversa, comentei sobre o Strava Global HeatMap, uma iniciativa do Strava que, utilizando mapa do tipo heatmap, aplica cores mais intensas aos traçados com maior utilização. Porém tal site não é atualizado desde 2015 e segundo a empresa, não há interesse em atualizar tal mapa. Dessa data até hoje, muitas pessoas começaram a fazer e registrar suas atividades físicas. Sendo assim, os dados ali apresentados não representam o cenário atual. Daí surgiu a necessidade de construir uma ferramenta que permita aos gestores públicos, ou quem mais se interessar em ajudar o movimento ciclo ativista a obter dados atualizados sobre a nossa realidade.

Além de ver quais os pontos mais movimentados da cidade, é possível ver, através de gráficos, os dias e meses com maior número de atividade e distâncias percorridas. Conforme a necessidade, outros dados podem emergir.

Para acessar o mapa, acesse www.rafaelamorim.com.br/heatmap.

Após construir o sistema básico para registrar os dados e o mapa para o município de Santana do Livramento (RS) percebi que dados de outras cidades e outros tipos de atividades também foram capturados. Então inclui filtros para algumas cidades (ou regiões, dependendo do caso), atividades (caminhada, corrida e pedalada) e período (2015, 2016 e 2017).

Colabore com o mapa

Os primeiros dados adicionados ao mapa foram obtidos através das atividades dos atletas participantes de alguns clubes do Strava que estou acompanhando. Porém, a estrutura do Strava só divulga as ultimas 200 ultimas atividades registradas nos clubes, o que limita o desenvolvimento do mapa para períodos anteriores a criação do site (set/2017). Além disso, a quantidade de atletas que ingressam nos clubes não reflete a quantidade de atletas em uma localidade, já que a participação do atleta em clubes é opcional.

Como os meus dados serão manipulados?

Os dados coletados e armazenados são manipulados de forma automática e utilizados apenas para fins estatísticos e de composição do mapa. Tanto o mapa quanto as estatísticas não fazem nenhuma correlação com o atleta que criou a atividade. Em nenhuma hipótese, os dados aqui armazenados serão compartilhados ou vendidos.

Em nenhuma hipótese, os dados aqui armazenados serão compartilhados ou vendidos. Toda as informações geradas aqui (mapas e gráficos) são de divulgação pública. O uso das informações é permitido desde que o autor do trabalho seja notificado via e-mail no endereço amorim@rafaelamorim.com.br e que receba o devido crédito.

Como faço para doar minhas atividades?

Para iniciar o processo, clique no botão “Adicionar minhas atividades ao mapa” na lateral do site e siga as instruções que aparecerão. Inicialmente serão importados ao mapa as suas últimas 200 atividades. Periodicamente será executado um comando para importar ao mapa as suas novas atividades.

Obrigado pela colaboração!