saucy/README.md

123 lines
4.7 KiB
Markdown

# saucy
Uma plataforma de gestão de sócies para associações. Desenvolvido e usado pela
[ANSOL - Associação Nacional para o Software Livre](https://ansol.org).
## Licença
saucy - Copyright (C) 2022 ANSOL
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
See the LICENSE file for full details.
## Funcionalidades
A plataforma tem o mínimo necessário para os requisitos da ANSOL:
- [x] Gestão da equipa da direçcão
- [x] Actualizar membros da direccao (desactivar, criar novos, etc)
- [x] Registar sócio (informação base, assumindo que falta o pagamento)
- [x] Endereço de email
- [x] Nome ("display name"/"preferred name")
- [x] Número de BI/CC/Passaporte
- [x] Morada completa, incluindo código postal/localidade
- [x] estudante/reformade/desempregade/empregade
- [x] Adicionar à mailing list?
- [x] Preferência de contacto: postal ou electrónico (comunicações das AGs)
- [x] Integração com ifthenpay para pagamento de quotas anuais
- [x] Lista de sócios, com filtros e ordenação
- [x] em cada sócio:
- [x] editar informacao base (incluindo end date)
- [x] poder registar nova contribuição, estendendo o end-date 1 ano
- [x] excluir sócio (eliminação de dados pessoais, mantendo historico de contribuições)
- [x] corrigir dados de/apagar contribuição
- [x] mandar lembretes de renovação de quotas, cada um com o seu texto
- [x] gestão de estado de inscrição automático:
- [x] pendente (pré-aprovação/pagamento)
- [x] activa (quotas em dia)
- [x] expirada (quotas expiradas)
- [x] excluída (90 dias após expiração / manualmente excluído)
## Contribuir
Obrigado pelo interesse em contribuir para o projecto `saucy`.
### Como reportar ou corrigir problemas
Se tiveres conta no git.ansol.org, basta criar um `Issue` ou `Pull Request` em
`https://git.ansol.org/ansol/saucy`. Caso não tenhas conta, envia um email para
`direccao@ansol.org` ou fala connosco na [sala de matrix comunitária da
ANSOL](https://matrix.to/#/#geral:ansol.org)
### Traduções
As traduções existentes encontram-se em `config/locales/{pt,en}.yml`. Caso haja
alguma mensagem que não seja traduzível, fala connosco para corrigirmos o
problema (ver ponto anterior).
### Introduzir funcionalidades novas
Novas funcionalidades muito distantes dos casos de uso da ANSOL podem ser
recusadas, por isso recomendamos que fales connosco antes de começar uma
funcionalidade grande.
Funcionalidades que gostaríamos de implementar mas ainda não tivemos tempo:
- Parameterização do `saucy` de modo a não haver referências à ANSOL no código;
- "Multitenancy", onde uma única instalação do `saucy` permite servir várias
instituições;
- Melhorias genéricas ao estilo da plataforma.
## Requisitos técnicos
Para o projecto funcionar a 100%, precisa de algumas dependências externas:
- Uma base de dados postgresql, onde são armazenados todos os dados;
- Configuração de SMTP, para enviar lembretes de pagamentos de quotas e
mensagens de recuperação de senha para a administração;
- Configuração [ifthenpay](https://www.ifthenpay.com), para suportar pagamentos
multibanco/mbway.
Todas estas coisas são configuráveis via variáveis de ambiente. A lista de
variáveis está disponível no ficheiro `env.example`.
**NOTA**: o projecto ainda não está pronto para ser personalizado à imagem de
outras associações, estando o contexto da ANSOL codificado em vários pontos da
aplicação. Alguns destes detalhes podem ser definidos em `app/lib/config.rb`.
## Pôr isto a dar
Para simplificar a instalação, disponibilizamos uma imagem `docker`:
```
docker pull git.ansol.org/ansol/saucy:latest
```
A imagem está configurada para lançar o servidor web no porto 3000. É
recomendado configurar um reverse-proxy, como o nginx ou o apache, à frente
deste serviço que trate de fazer o TLS.
Quando se acede à plataforma pela primeira vez, é-nos pedido um endereço de
email para criar a primeira conta de administração. Este endereço precisa de
conseguir receber mensagens para o processo de recuperação de senha funcionar.
Depois deste processo terminado, é possível gerir até 6 contas de
administração. Atenção que qualquer uma delas consegue apagar as restantes (e
até a si própria).