<img src=“
KEventer es una aplicación de administración de cursos, calendarios e inscripciones que utilizamos en Kleer como back-end de nuestro sitio web público.
Una vez clonado el repositorio e instalados los componentes no-ruby, ejecutá los siguientes pasos para poner a andar tu ambiente de desarrollo: (ver alternativa docker más abajo)
-
Instalá las dependencias: bundle install
-
Base de datos
rails db:migrate # Creá la base de dates rails db:seed # Cargá los datos iniciales rails db:test:prepare # Preparar db de prueba
-
Ejecutar todas las pruebas: rails spec;rails feature
NOTA: en este momento no funciona cucumber + selenium en ambiente desarrollo para nuevas versiones de firefox, descargar geckodriver y ubicarlos en /usr/local/bin para el captcha usar: #export RECAPTCHA_SITE_KEY="6Ld_iSIUAAAAAC2VRB5HPMSoEvQb4UGREvqbxGbQ" #export RECAPTCHA_SECRET_KEY="6Ld_iSIUAAAAAClJtl3YV7HfT4B4idylgMrBLQ9k"
-
Ejecutar pruebas rápidas:
bundle exec rails ci
-
Ejecutar pruebas lentas:
bundle exec rails slow_tests
-
Ejecutar alguna prueba:
bundle exec rails spec SPEC=<path relativo>
-
Migration antes de pruebas
RAILS_ENV=test rails db:migrate
-
Poblar base de datos de desarrollo con referencias de imágenes para testing:
bundle exec rake dev:populate_image_usage # Esto añade una imagen de prueba (Encontrar-tus-ritmos-organizandote-mejor.webp) # a varios modelos para poder testear la página de uso de imágenes en: # /admin/images/usage?bucket=image&key=Encontrar-tus-ritmos-organizandote-mejor.webp
-
Monitoreo de enlaces rotos en imágenes:
bundle exec rake monitoring:check_image_links # Verifica todos los enlaces de imágenes en la base de datos y genera reporte # de enlaces rotos en tmp/broken_links_report_TIMESTAMP.json # Recomendado ejecutar semanalmente para monitoreo continuo #export KEVENTER_AWS_ACCESS_KEY_ID="..." #export KEVENTER_AWS_SECRET_ACCESS_KEY:="..." #export AWS_REGION="us-east-1"
-
Tambien es importante setear las variables, by default hay datos para abientes de prueba:
PUBLIC_DOMAIN=http://localhost:3000
-
Si están todas las variables en eventer.env (no es necesario si se ejecuta con ./runserver)
set -a;. ./eventer.env;set +a
-
Inicia la aplicación:
rails s -b 0 # sin ssl -> para desarrollo local con website rails s -b 'ssl://0:3000?key=localhost.key&cert=localhost.crt'
-
Alternativamente, podés iniciar la aplicación (incluye seteo de variables) ./runserver.sh
https://www.opensourceagenda.com/projects/rails-puma-ssl
Enjoy!
-
Iniciar el contenedor
docker compose run --service-ports eventer bash
-
Ir al directorio de la aplicación
cd /home/eventer
-
Seguir con las instrucciones previas
-
Si usas rails generate, los archivos quedan con usuarios del containter y no se pueden grabar con VS Code.
sudo chown -R juan .
-
Si aparecen varios archivos como modificados, probar con
git config --global core.autocrlf true
-
railsbump.org/ compatibilidad de gemas
# una vez - ambiente test (qa2.kleer.la) heroku git:remote -a keventer-test git remote rename heroku heroku-test # cada deploy a test git push heroku-test develop:master # una vez - ambiente prod (www.kleer.la) heroku git:remote -a keventer # cada deploy a prod git push heroku master:master
Configurar el mail de destino con CONTACT_US_MAILTO
Ejemplo como generar Claves para CONTACT_US_SECRET
openssl rand -base64 128
rails image_reference:list
heroku run “rails runner ‘Resource.pluck(:slug).each { |slug| puts "www.kleer.la/es/recursos/#{slug}" }’” -a app
rails contacts:generate_assessment[38]
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"name": "Test User",
"email": "test@example.com",
"company": "Test Inc",
"resource_slug": "supercard",
"language": "en",
"content_updates_opt_in": "true",
"newsletter_opt_in": "true",
"context": "/some/path",
"secret": ""
}' \
http://localhost:3000/api/contacts
curl -X POST localhost:3000/api/contacts/contact_us \ -H “Content-Type: application/json” \ -d ‘{
"name": "Test User", "email": "test@example.com", "company": "Test Inc", "context": "/contact", "subject": "", "message": "Hello, I have a question.", "language": "en", "secret": ""
}‘