Learning through data || Full-stack-dev-course's (DigitalHouse)
A) Website tree
/root
- index.php
--- search.php
--- about
----- about.php
----- services.php
----- legals.php
---- let's fun
------ challenges.php
------ forum.php
------ news.php
------ shop.php
--- sign-up.php
--- sign-in.php
------ my-account.php
-------- trivia-play.php
------ me.php
------ logout.php
B) Back-end
/admin
-- autoload.php
-- config.php
//classes
-- class-Auth.php
-- class-DB.php
-- class-DBJson-Subscribers.php
-- class-DBJson.php
-- class-DBMsql.php
-- class-ForgotPwdFormValidator.php
-- class-FormValidator.php
-- class-RenewPwdFormValidator.php
-- class-SaveImage.php
-- class-SignUpFormValidator.php
-- class-SignInFormValidator.php
-- class-SubscribeFormValidator.php
-- class-User.php
-- model-Answers.php
-- model-Categories.php
-- model-Countries.php
-- model-Question.php
-- model-QuestionAnswer.php
-- model-Ranking.php
-- model-Trivias.php
-- model-TriviaUser.php
-- model-Users.php
//content
//files
//images
//banners
<br>-- finbile-favicon.png
<br>-- finbile-logo.png
//css
<br>-- bootstrap.css
<br>-- bootstrap.min.css
<br>-- normalize.css
<br>-- styles.css
//data
<br>-- user.json
<br>-- subscriber.json
//avtars
//js
<br>-- bootstrap.js
<br>-- bootstrap.min.js
<br>-- jquery-3.3.1.min.js
/includes
-- head.php
-- body-header.php
-- body-nav.php
-- body-aside.php
-- body-footer.php
-- signup-form.php
-- signin-form.php
-- forgotpwd-form.php
-- renewpwd-form.php
-- contact-form.php
url: external links
- Facebook
- Twitter
- Linkedin
- Instagram
- Slack
C) Sprints
Sprint # 1 - Fecha de entrega: Viernes 31/08/18
1) un inicio que hable acerca sobre la plataforma digital -> OK
2) dos formularios que permitan registrarse y loguearse -> OK
3) una sección de preguntas frecuentes acerca de nuestros servicios ofrecidos -> OK
4) una sección de perfil de usuario al loguearse -> OK
5) una sección que liste los productos con detalles -> OK
6) una sección que muestre sus posteos (time line) y listado de sus amigos -> OK
7) una sección de backend (admin) que liste las preguntas del juego -> NO OK
8) una sección de ranking de usuarios jugadores -> NO OK
Sprint # 2 - Entrega Martes 02 de Octubre
9) 100% funcional el sistema de registro y logueo usando JSON -> OK
10) que los formularios persistan-> OK
11) que los formularios validen existencia de usuario (email/nombre) -> OK
12) estando logueado, no puede acceder a los formularios y web recuerde logueo -> OK
13) si el usuario olvidó su contraseña, existe manera de cambiarla -> NO OK
Sprint # 3 - PHP + MySQL + OOP - Fecha de entrega VIERNES 02/11/18
14) El cliente pide que el código esté organizado bajo el paradigma de Programación Orientado a Objetos para mejorar el flujo de la aplicación. Disclaimer: NO se debe generar una versión distinta del sitio actual con el que vienen trabajando, lo único que se deberá cambiar es el flujo que maneja el registro y logueo de usuarios. Pasarlo de funciones a objetos.
15) El cliente pide migrar nuestro sistema, a uno que soporte base de datos MySQL.
16) El cliente pide que haya un script php que migre todos los usuarios existentes en el archivo JSON a la base de datos MySql la primer vez que se ingrese al sitio. (Este proceso de migración NO NECESARIAMENTE TIENE QUE HACERSE en OOP)
17) El cliente pide tener en consideración que así como el código de ahora en más funcionará con una base de datos MySQL, gustaría que el sitio, cuente con una versión de backup que esté preparada para cambiar el tipo de base de datos. Por ejemplo, si quisiéramos volver a JSON se debería poder lograr fácilmente.
El repo del sistema de películas https://github.com/javi-dh/movies-oop
Commentarios a la version 3:
no hay nivel de dificultad seteado en las preguntas
contiene una unica entidad de comparacion
poblacion es la unica variable
2015 es el unico anho de data
no se esta guardando la source database (ie banco munidal) en categorias
Sprint # 4 -
18)
Como manejar los archivos de configuración del proyecto en GIT:
Digamos que el archivo que ya commiteamos está en /includes/config.php
1) Renombramos el archivo
git mv /includes/config.php /includes/config.php.example
2) Creamos el archivo .gitignore con el siguiente contenido
/includes/config.php
3) Ejecutamos git commit / git push (edited)
https://git-scm.com/docs/gitignore
Prepared SQL Statement Syntax https://dev.mysql.com/doc/refman/8.0/en/sql-syntax-prepared-statements.html
LARAVEL Laravel - The PHP framework for web artisans. https://laravel.com/
Laracasts: Laravel 5.4 From Scratch https://laracasts.com/series/laravel-from-scratch-2017 Each year, the Laracasts "Laravel From Scratch" series is refreshed to reflect the latest iteration of the framework. This is the 2017 edition, which uses version 5.4 of the framework. Are you hoping to level up your toolset? You've come to the right place. This series will take you from installing Laravel, all the way up to mastering the essentials of the framework.
Rutas sugeridas por Laravel para los diferentes métodos del CRUD (Create Read Update Delete) https://laravel.com/docs/5.4/controllers#resource-controllers Controllers - Laravel - The PHP Framework For Web Artisans Laravel - The PHP framework for web artisans. Actions Handled By Resource Controller Verb URI Action Route Name GET /photos index photos.index GET /photos/create create photos.create POST /photos store photos.store GET /photos/{photo} show photos.show GET /photos/{photo}/edit edit photos.edit PUT/PATCH /photos/{photo} update photos.update DELETE /photos/{photo} destroy photos.destroy
Crear controler
php artisan make:controller nombredelController -r
Clonan el repo y por consola tiran este comando composer install
https://github.com/javi-dh/1erLaravel.git
https://github.com/javi-dh/moviesSite
javi-dh/moviesSite
Validación de formularios en Laravel: https://laravel.com/docs/5.7/validation Validation - Laravel - The PHP Framework For Web Artisans
Laravel Cheat Sheet - mega cheatsheet: https://laravel.gen.tr/cheatsheet/
Actions Handled By Resource Controller Verb URI Action Route Name GET /photos index photos.index GET /photos/create create photos.create POST /photos store photos.store GET /photos/{photo} show photos.show GET /photos/{photo}/edit edit photos.edit PUT/PATCH /photos/{photo} update photos.update DELETE /photos/{photo} destroy photos.destroy
Rutas sugeridas por Laravel para los diferentes métodos del CRUD (Create Read Update Delete) https://laravel.com/docs/5.4/controllers#resource-controllers laravel.com Controllers - Laravel - The PHP Framework For Web Artisans Laravel - The PHP framework for web artisans.
Por qué los navegadores solo soportan GET y POST https://stackoverflow.com/questions/16805956/why-dont-browsers-support-put-and-delete-requests-and-when-will-they (edited)
Discusión sobre el soft-delete: https://stackoverflow.com/questions/5020568/soft-delete-best-practices-php-mysql (edited)
Como agarrar las excepciones del findOrFail() https://stackoverflow.com/questions/32989034/laravel-handle-findorfail-on-fail (edited)
Cómo usar los errores de Laravel para enviar errores propios https://laracasts.com/discuss/channels/laravel/manually-add-errors-to-view
Formateo de fechas en Laravel https://stackoverflow.com/questions/34224256/laravel-format-datetime-from-database-result