Arrancador de tabla de rieles
Modelo estándar inicial de Rails que puede utilizar para construir y crear prototipos rápidamente. Pase de la idea a la implementación en horas. 
Haga clic aquí para ver la aplicación de demostración. Consulte la página de configuración de demostración para alternar la configuración de la aplicación.
Objetivos
Este iniciador está dirigido a desarrolladores de Rails familiarizados con el marco, con el objetivo de facilitar un desarrollo fluido con los siguientes principios:
- Sin DSL: evite la complejidad innecesaria del lenguaje específico de dominio (DSL).
- Simplicidad sobre eficiencia: priorice la simplicidad en la implementación sobre la optimización excesiva.
- Evite la funcionalidad compleja de la interfaz: mantenga la funcionalidad de la interfaz sencilla y manejable.
Descripción general
ERD 
Autenticación y autorización de usuario
- Autenticación a través de Devise
- Integración de OmniAuth para ampliar la autenticación utilizando proveedores externos
- Autorización a través de Pundit
Trabajador en segundo plano y programador
- Utiliza sidekiq y sidekiq-scheduler
Gestión de roles
- Roles estándar disponibles en todos los espacios
- Creación de roles personalizados por espacio
- Admite permisos detallados por rol
Compatibilidad con múltiples espacios de nombres de usuario
- Utiliza el modelo
Space
para representar espacios de nombres de usuarios (por ejemplo, equipos, organizaciones). - Un caso de uso de ejemplo para activar el modo multiespacio es una aplicación saas
- Un caso de uso de ejemplo para desactivar el modo multiespacio es una herramienta de organización interna
Diseños de interfaz de usuario prediseñados
- Elementos y diseños de interfaz de usuario de alta calidad de Tabler
Centrado en el desarrollo
- Anotar - Anotar clases de Rails con información de esquema y rutas
- Brakeman: un escáner de vulnerabilidades de seguridad de análisis estático
- Byebug - Depurador simple
- Dotenv: cargar variables de entorno desde
.env
Configuración
Para configurar el proyecto, asegúrese de tener PostgreSQL y Redis instalados localmente. Utilice los siguientes comandos para instalarlos:
brew install postgresql@12 redis
Clonar el repositorio
git clone https://github.com/tarunvelli/rails-tabler-starter.git
Instale las dependencias requeridas usando asdf o configure las dependencias .tool-versions
con otro método preferido:
Configure y ejecute el servidor de desarrollo:
Para otorgar privilegios administrativos a un usuario y acceder a funciones de administración, ejecute lo siguiente en la consola de Rails:
bundle exec rails c
> User.first.update(admin: true)
Configuración de la aplicación
Alternar la configuración de la aplicación en /setup/edit
AppSettings.interface_layout
- Diseño de la aplicación
- valores ["VERTICAL", "VERTICAL-TRANSPARENTE", "HORIZONTAL", "SOPLAPACIÓN", "CONDENSADO"]
AppSettings.interface_mode
- Modo claro/oscuro de la aplicación
- "SISTEMA" elige el modo de las preferencias del sistema
- Valores ["LUZ", "OSCURO", "SISTEMA"]
AppSettings.interface_theme
- Tema de color de la aplicación
- Valores ["DEFAULT", "COOL"]
AppSettings.login_layout
uno de
- Diseño de pantallas de inicio de sesión
- Valores ["DEFAULT", "ILUSTRACIÓN", "PORTADA"]
AppSettings.multi_tenant_mode
- Cuando es verdadero, permite a los usuarios registrarse y crear espacios.
- Cuando es falso, solo el administrador puede invitar a usuarios y crear espacios.
- Valores [verdadero, falso]
AppSettings.show_landing_page
- Cuando la verdadera ruta raíz representa la página de destino
- Cuando la ruta raíz falsa redirige a la página de inicio de sesión
- Valores [verdadero, falso]
Despliegue
Elija su plataforma de implementación preferida:
- Implementar en Fly.io
- Implementar en Heroku
Contribución
¡Se recomiendan y agradecen encarecidamente las contribuciones para mejorar este iniciador! No dudes en enviar solicitudes de extracción y mejorar el proyecto de forma colaborativa.