From 7a5b98903c53208c6dc3798333a7da892a90a0f7 Mon Sep 17 00:00:00 2001 From: KyMAN <0kyman0@gmail.com> Date: Thu, 29 Feb 2024 18:47:41 +0100 Subject: [PATCH] =?UTF-8?q?#wip(md):=20Montando=20la=20documentaci=C3=B3n?= =?UTF-8?q?=20inicial=20del=20proyecto.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++ README.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3247827 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +[Ss]ecrets +Data +CaritasSantaCruz.Mapeate.apache2.conf \ No newline at end of file diff --git a/README.md b/README.md index dcc12bb..0c2f909 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,85 @@ # Mapeate -Juego de mapas HTML basado en SVG integrado en el propio HTML. \ No newline at end of file +**Mapeate** es un juego Web de geografía totalmente gratuíto basado en HTML5, SASS/CSS3, SVG y JavaScript desarrollado para Cáritas Santa Cruz, Ferrol, en España. La idea es aprender tanto geografía como la base de informática, tanto de programación como de sistemas para llevar a cabo dicho proyecto. + +## Idea + +Este proyecto pretende ser un proyecto de un juego de geografía para aprender países, capitales, provincias, condados, etc. Vía Web en HTML5, ECMAScript 2015 y SASS/CSS. Este proyecto se basa en otro proyecto ya existente en SWF (Proyecto Flash) de la Universidad de Navarra, creo. El problema es que actualmente, las aplicaciones Flash en SWF están obsoletas por lo que ya no se puede hacer uso de éstas de una forma adecuada, incluso con el uso de Ruffle u otros emuladores o alternativas al Flash Player, eso sin mencionar con las fallas de seguridad ante este tipo de ficheros. + +> Hay que intentar localizar el proyecto original pues creo que auinque tengan licencia MIT, estaría muy guay nombrar el proyecto del cual se basa éste. + +## Primeros pasos + +Para empezar el proyecto hemos de saber qué tecnologías vamos a tocar y qué recursos necesitamos conseguir. En este caso se opta por un servidor Debian Core con Apache2 y PHP, y en caso de avanzar bastante, incluso en una base de datos MariaDB. Todo esto va a estar en contenedores Docker donde separaremos el Servidor Web del Servidor Proxy, y en caso de llegar a ello, del servidor de base de datos. + +```mermaid +flowchart LR + +C([Clientes]) +subgraph "Entorno local" + P["Servidor Proxy"] + W["Servidor Web"] + DB["Servidor de base de datos"] + N{{Nginx}} + A{{Apache2}} + PHP{{PHP}} + M{{MariaDB}} +end + +P -...- N +W -...- A +W -...- PHP +DB -...- M + +C --> P +P --> W +W --> DB + +C -..-> N +N ----> A +A ----> PHP +PHP ----> M +``` + +- **Servidor Proxy**: Es un tipo de servidor o de servicio de red que permite redirigir las peticiones que le llegan, incluso con la posibilidad de gestionar balance de carga o gestionar peticiones específicas. En este caso se usará **Nginx**, un servicio de Servidor Proxy ruso muy versátil completamente Free Open Source. +- **Servidor Web**: Un Servidor Web o servicio Web es aquel que provee de servicio para una Página o Aplicación Web. En este caso usaremos **Apache2**, un servidor más limitado que *Nginx* pero muy ágil para trabajar contra lenguajes o entornos de petición como **PHP**, lenguaje de alto nivel muy versátil que permite actualización de sus Scripts en caliente y con una gran comunidad y documentación. *PHP* también permite tanto una programación estructurada como una programación orientada a objetos y se orienta a ser incrustado en un entorno **HTML**, lenguaje de marcas que permite generar estructuralmente una página Web. Todas estas tecnologías son Free Open Source. +- **Servidor de base de datos**: Es un servidor o servicio donde se almacenan y se gestionan los datos. En este caso usaríamos **MariaDB**, que es un **Fork** de **MySQL**, es decir, una rama independiente de desarrollo de *MySQL*, que viene siendo un motor de gestión de datos, actualmente pertenenciente a Oracle, para determinar un formato de Software completamente Free OpenSource. + +> Existe la posibilidad de que se cambie el Proxy Nginx por FreeNginx por abrir más la filosofía de Free Open Source. + +Todos estos servicios se independizarán en 3 contenedores independientes **Docker**. Un **contenedor** viene siendo un pequeño espacio de memoria que hace uso del núcleo Sistema Operativo anfitrión pero independiza las instalaciones en un espacio separado, por lo que a diferencia de las Máquinas Virtuales, éstos rinden mucho más y permiten un trabajo más directo con el anfitrión. + +```mermaid +flowchart TD +subgraph Docker + ND[Nginx] + AD[Apache2] + subgraph Web + PD[PHP] + MD[MariaDB] + end + PC["Servidor Proxy"] + DC["Servidor de datos"] + PI[".21"] + WI[".22"] + DI[".23"] +end + +ND -.- PC +AD -.- Web +PD -.- Web +MD -.- DC +PC --> Web +Web --> DC +PC -.- PI +Web -.- WI +DC -.- DI + +``` + +## Referencias + +- Web [VirusTotal](https://www.virustotal.com/) para validación vía Antivirus de Malwares en ficheros - https://www.virustotal.com/ +- Reproductores Flash: + - [Adobe Flash Player](https://www.adobe.com/es/products/flashplayer/end-of-life.html) - https://www.adobe.com/es/products/flashplayer/end-of-life.html. + - Emulador Flash [Ruffle](https://ruffle.rs/) - https://ruffle.rs/ \ No newline at end of file