¿Qué herramientas necesito aprender exactamente? Estoy tratando de construir un sitio web con la creación de cuentas y la sección de administración y tendré que restringir el acceso, mucho.

Supongo que desearía algún tipo de sistema de autenticación de inicio de sesión que le permita proporcionar al usuario información específica para ellos. Si este es el caso, deberá utilizar un lenguaje de servidor de fondo para comunicarse con una base de datos que contenga información para cada usuario.

Debería aprender a usar una base de datos, como MySQL, MongoDB, SQL Server, y la lista continúa. Hay muchas opciones allí, pero deberá elegir una y aprender cómo funciona, junto con su lenguaje de consulta.

Para interactuar con la base de datos, necesitará usar un lenguaje de fondo como PHP, C #, Java, o simplemente usar JavaScript en forma de Node.JS. Sin embargo, es importante tener en cuenta que conocer JavaScript front-end y JavaScript back-end son cosas muy diferentes y seguirá habiendo una curva de aprendizaje incluso si ya conoce JavaScript front-end.

Espero que esto ayude, y debería haber muchos tutoriales en YouTube para hacer referencia a este tipo de proyecto si necesita ayuda.

Necesita aprender muchas herramientas, la primera de las cuales son los diagramas. Debe dibujar flujos de trabajo para todas las actividades relevantes en el sitio y lo que sucede cuando las realizan diferentes roles de usuario.

¿Qué debería pasar cuando un usuario crea una cuenta? ¿Deberían recibir un correo electrónico? Entonces necesita la funcionalidad smtp (en linux, use postfix o sendmail).

¿Desea guardar los datos del usuario localmente? Entonces casi seguro que necesita una base de datos (hay tantos, no es divertido).

¿O simplemente deberían poder comentar? Entonces, usar un servicio externo en lugar de su propio db podría ser una buena idea (he usado Disqus y Facebook, ambos funcionan).

¿Se supone que deben enviar contenido para su publicación (como un blog, un microblog o tal vez un sitio de noticias)? Luego volvemos con el db. (A menos que sean imágenes, entonces las guarda en el sistema de archivos. Realmente).

¿Sus datos tienen relaciones? Entonces, un db relacional (SQL) es bueno (y ahora estamos en PostgreSQL, MySQL, MariaDb y SQL Server para la mayoría de los casos).

¿Sus datos son solo un montón de documentos, que deberían llenar una plantilla? Luego hay una carga de bases de datos de documentos (también conocido como NoSQL) que podría tener sentido (Mongo, Couch).

¿Deberían muchas personas poder actualizar el almacenamiento de datos simultáneamente? Entonces, un back-end que es capaz de multihilo tiene cierto sentido (especialmente Node.js es de un solo subproceso, pero hay soluciones alternativas, y en realidad solo es un problema si tiene muchas escrituras al mismo tiempo, y la respuesta dos uno depende de lo que otro cliente escribió, justo antes, por ejemplo, vender una cantidad limitada de boletos, me gusta Node.js y PHP).

¿Tiene sentido codificar su propio módulo de inicio de sesión? Esa es una parte bastante complicada, las trampas abundan en el código de inicio de sesión, por lo que si puede encontrar una forma de reutilizar ese tipo de cosas, es una idea mucho mejor (todos los idiomas tienen soluciones que puede usar, o incluso puede usar OAuth y piggyback Google / Facebook / etc inicio de sesión).

TLDR;
Su pregunta es: ¡Quiero construir un sistema informático complejo, enséñeme todo!
Mi respuesta es: ¡Busque sus requisitos!

Necesitará saber al menos HTML, Javascript y un lenguaje de fondo.

El HTML y Javascript es para lo que sus usuarios verán y usarán en el navegador. El HTML es para que el navegador “sepa” de qué se trata cada sección para ayudar a los lectores de pantalla y similares, y para que los motores de búsqueda que indexan su sitio sepan qué secciones son más importantes y qué se supone que transmiten.

El Javascript es para cualquier lógica que desee / necesite hacer en el front-end, incluyendo, por ejemplo, informar al usuario sobre cualquier tipo de error al completar el formulario, algunas animaciones y más.

Si desea que el sitio se vea bien, también necesitará CSS, esa es la forma de hacer que su sitio se vea bien y sea atractivo para sus usuarios.

Esa es la parte “fácil”, las citas son porque solo tiene una tecnología para elegir, pero es un poco más difícil de implementar ya que cada navegador necesita una implementación un poco diferente, pero se puede resolver mediante el uso de un marco (como angular / reaccionar) o bibliotecas (como JQuery).

En el back-end hay muchas opciones para lenguajes, por ejemplo, PHP, python, nodejs y mucho más. y para casi todos los idiomas, si no para todos, tiene uno o más marcos para construir un sitio.

Sugeriría aprender un idioma y luego aprender algunos marcos para ver cuál se adapta mejor a tus necesidades y usarlo o si ves que no te gusta el idioma que elegiste, busca otro y repite el proceso.

La razón por la que esto funcionará es que la mayoría de los lenguajes de programación tienen aproximadamente los mismos marcos en términos de cómo trabajar con el marco, por lo que cuando encuentre un lenguaje que le guste y sepa utilizar, lo más probable es que encuentre un buen marco para trabajar construye lo que quieras.

El beneficio de un marco es que le brinda al menos parte de la funcionalidad que necesita con solo usarla, como seguridad, protección de inyección SQL y más.

Aprenda la gestión de sesiones PHP.

Con la ayuda de la sesión en PHP ($ _SESSION), puede usar un formulario HTML simple para recopilar y enviar datos de entrada del usuario a una autorización PHP Script, el script luego se comunica con la base de datos para verificar si el usuario existe y la contraseña coincide, si el se cumplen las condiciones, el usuario obtiene acceso a las páginas web restringidas …

Dingo 🙂. Es así de simple amigo, solo aprende un idioma del lado del servidor.

En Php puede usar sesiones para verificar las credenciales de inicio de sesión. Por lo tanto, si el nombre de usuario o la contraseña no coinciden, el usuario relevante será redirigido. También puede usar MD5 (Hashing) para proteger la contraseña. Laravel Framework proporciona autenticación para hacer que el inicio de sesión sea más seguro.

¡Salud!