¿Cómo crearías un menú de pizzas en línea donde puedes crear tu propia pizza? ¿Usarías Javascript o un marco específico?

Mi respuesta va a ser muy similar a la de John Cole, pero aún la revisaré debido al a2a.

Antes que nada, comenzaría asumiendo que esto es una cadena o tiene el potencial de convertirse en una cadena. Con eso en mente, tendría sentido tener una base de datos con tablas para cada una de las variables de configuración de pizza (ingredientes, salsas, cortezas, etc.). La base de datos se puede actualizar en cualquier momento y las nuevas variaciones estarán disponibles en todas las ubicaciones.

Entonces necesitas un back-end y una capa API mínimos para trabajar entre el front-end y la base de datos. Probablemente vaya con Ruby on Rails para esto, ya que es fácil de poner en marcha y haría el trabajo muy bien. Incluso tiene un modo de solo API a partir de la versión 5, creo.

Entonces necesitas una interfaz construida con lo básico: HTML, CSS y JavaScript. Use cualquier marco para esto; no hay razón para no usar un marco. Probablemente vaya con React por su popularidad actual y por la capacidad de actualizar de manera eficiente solo un elemento específico de la página (estoy pensando en la vista previa de la imagen de pizza que Dominos tiene). Usted llenaría la parte delantera con opciones de configuración de pizza llamando a su API para recuperar las opciones de la base de datos.

Finalmente, querrá descubrir cómo se trata la información del cliente y la información del pedido. Puede optar por almacenar la información del cliente permanentemente en la base de datos, ordenar información temporalmente en la base de datos, etc.

Los marcos realmente están destinados a facilitar su trabajo como programador o desarrollador, de hecho puede construir sus cosas con o sin un marco. Solo necesitará Javascript si no planea hacer que sus datos sean persistentes. Es decir, si no necesita guardar ningún dato en la base de datos, de lo contrario necesitará un lenguaje de fondo. Pero para la interfaz de usuario y la interacción. Siempre es su Javascript junto con HTML y CSS.

Habría diferentes aspectos de este proyecto, dependiendo de la complejidad que espera alcanzar.

Las cosas que saltan a la mente son

  • Una base de datos para almacenar información del usuario e información de pedidos (por ejemplo, los ingredientes y el tipo de pizza, así como el costo y las opciones, como la entrega o la cena). Esto sería interpretado por otro programa en una sucursal de pizzas con una configuración de interrupción DB para que al crear una nueva identificación (y por lo tanto orden) notifique al personal de pizza los requisitos exactos de la pizza.
  • Un backend para su sitio web en algo como PHP que recibe algo así como solicitudes GET desde el front end y guarda los datos en el DB (y también cosas como sanitizar las solicitudes (o al menos usa declaraciones preparadas, si no está familiarizado con DB) seguridad, ¡lea sobre esto!) si hay entradas del usuario).
  • Una interfaz de base HTML para su sitio web que contiene elementos estáticos (por ejemplo, cualquier texto que quiera mantener constante y para dividir la página en segmentos, así como también escribir las primeras páginas estáticas).
  • Una interfaz dinámica JS (con la posibilidad de utilizar un marco si se simplifica la interfaz o la programación, no es necesario reinventar la rueda) que se puede comunicar con el back-end y, por lo tanto, el DB para obtener información para que pueda elegir y proporcionar la experiencia) que se incorporaría a la página HTML.
  • Una hoja de cálculo de CSS : para diseñar tu página

O bien, puede contratar a un desarrollador web full stack para que lo haga todo por usted.

Crear una aplicación de una sola página sería perfecto, utilizando AngularJS para manipular los datos de un Framework ServerSide.

Para mí, esto parece un escenario perfecto para uno de esos frameworks frontales modernos: angular, vue, reaccionar, …
Creo que iré con vue ya que es el más fácil de aprender.

Puedes escribir esto usando Javascript y HTML5.