Sin ofender, pero no tiene ningún tipo de “conceptos básicos de Rails”. Si lo hiciera, no preguntaría sobre las plantillas de CMS que podría usar. (Por cierto, un CMS – Content Management System – no tiene nada que ver con su caso de uso).
Debe comenzar definiendo la arquitectura de su servicio. Con algo que almacena archivos potencialmente grandes, su mayor preocupación es el almacenamiento. ¿Cómo se aprovecha eso? ¿Cómo maneja los requisitos de ancho de banda para que más personas puedan transferir archivos grandes simultáneamente sin dañar la QoS? ¿Cómo integra ese sistema de archivos con su aplicación de manera que se mantenga escalable?
La aplicación web en sí es bastante fácil. El mayor desafío es implementar un sistema de carga visualmente interesante; para eso, necesitas saber Ruby, Rails, Javascript y CSS.
- ¿Cómo diseñan las grandes empresas backend para aplicaciones web?
- ¿Qué lenguaje de programación es mejor para desarrollar aplicaciones web y móviles?
- Para el backend de una aplicación web, ¿a qué idioma recomendaría cambiar de PHP (o LAMP stack)?
- ¿Qué es WAFS y cómo funciona WAFS (seguridad de firewall de aplicaciones web)?
- Cómo construir una aplicación web específica en Rails
Todo lo demás es bastante trivial. Presenta un formulario de carga más los correos electrónicos de los destinatarios, recibe un archivo, le asigna una URL única y envía correos electrónicos de notificación a los destinatarios.
Cuando se accede a la URL única y se descarga el archivo, opcionalmente puede enviar otra notificación al cargador. Eso es.
Los desafíos son arquitectónicos y operativos mucho más que funcionales aquí. La aplicación Rails en sí misma probablemente le tomaría a alguien experimentado aproximadamente uno o dos días para escribir.