Documentación de la Plataforma
Licencia ![:goberserk: :goberserk:](https://github.githubassets.com/images/icons/emoji/goberserk.png)
Hola comunidad de FLOSSPA, a pesar de que la firma en muchos documentos tenga "Copyright (c) 2017 Luis Daniel Mora Delgado / Black Bohr | @fobos" la licencia sigue siendo MIT, si hay algun inconveniente por que salga la firma mía o la firma de aquellos que lleguen a Colaborar en la plataforma, no duden en contactarme personalmente, incluso si es el caso de la licencia MIT y cambiarla por otra entonces no hay problema alguno, pero debe entrar en discusión por que al final, esta plataforma se hizo para flosspa.
Información previa ![:godmode: :godmode:](https://github.githubassets.com/images/icons/emoji/godmode.png)
Mucha parte de la documentación interna del codigo puede estar comentada en tercera persona, primera persona y en ingles o español, pero es una forma desorganizada que poseo como programador y todavía debo mejorar.
El tema del template es usando el FLAT UI por designmodo, debe destacar que no es mio en absoluto, pero algunas opciones de color fueron directamente modificadas en el documento flatui.css, así que tengan mucho ojo al cambiar los colores de la plataforma, de igual manera si desean hacer cambios, comuniquense conmigo personalmente para explicar paso a paso las hojas de estilo.
También, esta versión seria un ALPHA release, y la idea era para que estuviese lista para el Software Freedom Day 2017, debido a algunas inconviencias, no fue presentada 😢
Requisitos 🐺
Como requisitos debe usarse
- PHP 7.x + (algunas funciones del codigo todavia con PHP 5, pero no es recomendado, debido a que puede causar errores y muchas son deprecadas en PHP 7)
- Servidor APACHE (no he probado en otros para este lanzamiento por el momento)
- Base de datos MARIADB (aunque gracias a ADODB puede ser compatible con otras bases de datos, pero lea más abajo en la sección de DB para entender mejor el asunto)
Adicionalmente, aunque lo detesten, usar XAMPP para instalar la plataforma entera no es una mala opción, pero tenga en cuenta los problemas que puede tener XAMPP a diferencia de hacer un servidor propio con PHP, MARIADB y APACHE, la versión que se use de XAMPP debe tener PHP 7+.
Nota:
- No utiliza composer ni PEAR para paquetes, son incluidos en la fuente, sin embargo, en un futuro se implementara
- Solo ha sido probado en los siguientes navegadores:
- Mozilla Firefox 50 +
- Opera 40 +
- Google Chrome 40 +
- Debe ser compatible con todos los sitemas operativos y Responsive para los celulares y tabletas.
Si su navegador es Microsoft Edge, IceWeasel, Midori u otro (aunque estos dos ultimos mencionados sean fork de Firefox), no puedo asegurar que todas las caracteristicas funcionen correctamente debido a que son navegadores que no uso o simplemente no he probado, cualquier bug, informarme seria la mejor solución.
Explicación de PHP ![:hurtrealbad: :hurtrealbad:](https://github.githubassets.com/images/icons/emoji/hurtrealbad.png)
No es un uso directo de PHP para hacer la página WEB, como tal, sigo utilizando el esquema del cliente (CSS, HTML, JS) para mostrar la página WEB como tal, si entran en el source, observaran solamente la sección de HTML y arriba ubicado, las funciones usadas en PHP.
Este codigo escrito no tiene ningun Framework conocido (como ejemplo Symfony, Laravel o CakePHP) que aunque se usarlas, prefiero hacer un "framework propio" con dependencias escogidas y muy pocas por el momento, sin embargo posee funciones propias elaboradas por mi, poseen nombres temáticos a monstruos, villanos, etc, debido a que la tematica de la plataforma es PHANTOM PLATFORM, consta que también es una pequeña referencia a PHP en PHantom Platform, entonces, esas funciones pueden cambiarse el nombre a algo más amigable si es que se desea.
Principalmente su vida cae en dos dependencias, ADODB y PHPMailer, tiene algunas varatijas adicionales como PHP Markdown Parsedown o PHP QRcode, hacen tambien algunas funciones pero son en secciones administrativas, no del participante, por lo que, debe tenerse cuidado lo que se desee usar.
Por favor, en el momento no debemos usar un timeout() debido a que la plataforma requiere muchas veces que no se cierre durante inactividad cuando la persona este buscando los huevos de pascua, es casi imposible andar activando a todo rato la sesión y jugar la busqueda de los huevos de pascua cuando se cierra a todo rato, sin embargo, veremos en el TODO lo que falta por implementar en el codigo, ya sea PHP o Javascript.
Base de Datos ![:feelsgood: :feelsgood:](https://github.githubassets.com/images/icons/emoji/feelsgood.png)
ADOdb es nuestro conector en las bases de datos, por lo que no veran funciones como mysqli_connect() o etc en el codigo de PHP, tiene varias funciones integradas y el interpreta la base de datos que le otorgamos, pero debe tenerse en cuenta que si es para bases de datos SQL solo debe escribirse en lenguaje SQL para hacerlo compatible con todas las posibles (Oracle, MariaDB, Postgres, etc), si es para otras bases de datos como Firebird, Netezza, SAP, Sybase, Visual Foxpro, toca verificar en la pagina de ADODB su sintaxis. Ahí también se encontrarán los datos de si los drivers son obsoletos, activos, etc.
Lastimosamente bases de datos de otro tipo como MongoDB, o bases de datos NoSQL, no tienen conexión posible con ADOdb, se debería entonces trabajar con otra implementación y otro lenguaje distinto a PHP.
En la fuente se incluira los SQL de la base de datos. Y también uno general para importar. Las tablas tienen relaciones entre ellas, la principal es usuarios, NO BORRE LA TABLA USUARIOS , al borrarla, usted habrá borrado todas las demás tablas por que estan relacionadas con esta, y tiene como resticciones que si se borra o actualiza el codigo del usuario, puede borrar todo el contenido de estas, a excepción de los eventos y de los huevos de pascua, sin embargo, quedarían obsoletas.
¿Como importarla?
La vida de la plataforma es la base de datos, tenga en cuenta como se menciono previamente que solo funciona con lenguajes de SQL, por favor, previamente lea el archivo config.io.php.
En config.io.php que esta ubicado en web/php/. se detallan el usuario y contraseña para acceder a la base de datos, se detalla el conector que debe tener (sea MySqli, PostgreSQL, etc) como un driver gracias a adoDB, tenga en cuenta que si se instala en una maquina local, debe cambiarse la dirección (si ya no es localhost), colocar un usuario existente en la base de datos o crear el usuario en la base de datos, crear la misma base de datos, y seleccionar el driver.
Tareas a Realizar ![:trollface: :trollface:](https://github.githubassets.com/images/icons/emoji/trollface.png)
- Base de la plataforma
- Registrar usuarios
- Enviar correos
- Clasificar usuarios
- Entrar a la plataforma
- Evitar la entrada del Usuario en dos sesiones distintas
- Recuperar Contraseña
- Varias Validaciones en el Login
- Tablero de Puntuaciones
- Modals
- Acciones en el Tablero
- Lista de eventos del evento general
- Información del Evento (debe ser dinámica, dependiendo del evento que se celebre y usando el Markdown parser)
- Integración con Redes Sociales
- [-] Personalización del Usuario
- Dinamismo del footer en el caso de los patrocinadores
- [-] Opciones del Usuario
- [-] Cuando se cierre el evento, nadie puede acceder
- Cuando se cierre el navegador, el usuario debe salir de la sesión, sino provoca el primer gran bug de la plataforma
- Eventos CRON.
Comparación de Versiones 👹
13-Septiembre-2017 *No disponible por el momento* La unica disponible es la versión ALPHA, no lleva número alguno.
Notas adicionales a contribuidores ![:rage2: :rage2:](https://github.githubassets.com/images/icons/emoji/rage2.png)
*No disponible por el momento*
Elaboradores 😄
- @luismora2297
- @maryito
- @zgudino
- Mas...
Has parte de los colaboradores 😛