O Practice Forms é um sistema que possibilita que usuários criem enquetes/formulários ao estilo do Google Forms, porém a criação (e edição) se dá em formato de texto puro. O objetivo principal é facilitar a criação através de uma interface mais intuitiva.
IMPORTANTE: se você deseja utilizar o sistema, o Practice Forms está em funcionamento em practice.uffs.edu.br/forms.
O forms possui um conjunto considerável de features:
- Autenticação a partir do idUFFS.
- Criação de enquetes/forms a partir de texto puro.
- Acompanhamento de respostas (em tempo real).
Para executar o projeto, você precisa ter o seguinte instalado:
sudo apt install git
sudo apt install php7.4-cli
sudo apt install nodejs
sudo apt install npm
sudo npm install -g n
sudo n stable
sudo apt install php-cli php-mbstring php-zip php-xml php-curl php-gd
Feito a instalação das dependências, é necessário obter uma cópia do projeto. A forma recomendada é clonar o repositório para a sua máquina.
Para isso, rode:
git clone --recurse-submodules https://github.com/practice-uffs/forms && cd forms
Isso criará e trocará para a pasta forms
com o código do projeto.
Instale as dependências do PHP usando o comando abaixo:
composer install
sudo apt install php-sqlite3
O banco de dados mais simples para uso é o SQLite. Para criar uma base usando esse SGBD, rode:
touch database/database.sqlite
Instale também as dependências do NodeJS executando:
npm install
Crie o arquivo .env
a partir do arquivo .env.example
gerado automaticamente pelo Laravel:
cp .env.example .env
Criação as tabelas do banco de dados com as migrações esquemas:
php artisan migrate
Rode os seeders (que crias as categorias/serviços padrão):
php artisan db:seed
Gere aa chave de autenticação da aplicação:
php artisan key:generate
Por fim gere os recursos JavaScript e CSS:
npm run dev
DICA: enquanto estiver desenvolvendo, rode
npm run watch
para manter os scripts javascript sendo gerados sob demanda quando alterados.
Depois de seguir todos os passos de instalação, inicie o servidor do Laravel:
php artisan serve
Após isso a aplicação estará rodando na porta 8000 e poderá ser acessada em localhost:8000.
Para que as notificações em tempo real funcionem, você precisa rodar as filas (queues) do Laravel
php artisan queue:work
E também o servidor websocket (use outra sessão/aba do terminal para isso):
php artisan websockets:serve
Se você utilizar a API dessa aplicacão, todos endpoints estarão acessivel em /api
, por exemplo localhost:8000/api. Os endpoints que precisam de uma chave de autenticação devem ser utilizar o seguinte cabeçalho HTTP:
Authorization: Bearer XXX
onde XXX
é o valor da sua chave de acesso (api token do Jetstream), por exemplo c08cbbfd6eefc83ac6d23c4c791277e4
.
Abaixo está um exemplo de requisição para o endpoint user
utilizando a chave de acesso acima:
curl -H 'Accept: application/json' -H "Authorization: Bearer c08cbbfd6eefc83ac6d23c4c791277e4" http://localhost:8080/api/user
Sua ajuda é muito bem-vinda, independente da forma! Confira o arquivo CONTRIBUTING.md para conhecer todas as formas de contribuir com o projeto. Por exemplo, sugerir uma nova funcionalidade, reportar um problema/bug, enviar um pull request, ou simplemente utilizar o projeto e comentar sua experiência.
Veja o arquivo ROADMAP.md para ter uma ideia de como o projeto deve evoluir.
Esse projeto é licenciado nos termos da licença open-source MIT e está disponível de graça.
Veja todas as alterações desse projeto no arquivo CHANGELOG.md.
Abaixo está uma lista de links interessantes e projetos similares: