El Consultorio del Coder - MVC


Contexto del proyecto

El Consultorio

Nos encontramos en una empresa de desarrollo y necesitamos una aplicación que permita pedir cita al CTO para resolver problemas técnicos de los equipos de desarrollo.

De momento vamos a desarrollar un producto mínimo viable (MVP) en PHP, e intentaremos llegar a una aplicación orientada a objetos usando el patrón MVC (Modelo-Vista-Controlador).

Requisitos funcionales

La aplicación constará de al menos 3 páginas:

  • Una página para la lista con todas las citas previstas.
  • Una página con un formulario para crear una nueva cita.
  • Una página para editar una cita concreta.

Páginas:

Lista: Las citas beben aparecer por orden de creación con:

  • El nombre del coder o del equipo.
  • El tema de consulta.
  • La fecha la y hora de la creación de la cita.
  • Las citas se podrán eliminar.
  • Podremos acceder a la edición de cada cita, y a la página de creación de una cita nueva.

Crear nueva cita:

  • Formulario con los campos necesarios obligatorios.
  • Botón para borrar los campos.
  • Botón para cancelar y volver a la lista principal.
  • Botón para enviar la información.

Editar cita:

  • Formulario con los campos necesarios obligatorios.
  • Los campos deben contener la información de la cita a editar.
  • Boton para cancelar, botón para enviar.

La aplicación deberá ser responsiva.

Requisitos técnicos:

  • Aplicación de tipo CRUD (Create, Read, Update, Delete).
  • Deberá ser orientada a objetos con el patrón MVC.
  • Deberá alojarse en un servidor gratuito en producción.
  • Se debe usar Git con buenas prácticas en los commits.
  • El repositorio debe contener un Readme con explicación del proyecto, y una explicación de cómo instalar o ejecutar la aplicación.

Extras:

  • Añadir tests unitarios con PhpUnit.
  • Añadir Tests End2End con Selenium.

Tecnologías:

  • Frontend: HTML, CSS, SCSS - Opcional: Framework de CSS.
  • Backend: PHP.
  • Bases de datos: MySQL.
  • No se pueden usar otras librerías o frameworks más allá de los espicificados.

Entrega:

  • Un link a un repositorio de github.
  • Un link a la URL del proyecto en producción.
  • Presentación en diapositivas + link.
  • Demo y code review.

Core skills:

  • Semántica HTML.
  • Buenas prácticas en CSS, SCSS.
  • Capacidad de abstración en clases y objetos.
  • Buenas prácticas OOP - Encapsulación, herencia.
  • Patrones de diseño - Modelo-Vista-Controlador (MVC).
  • Implementar la aplicación en un servidor en producción.
  • Uso de Git.
  • Desarrollo basado en historias de usuario y tareas (Kanban).
  • Comunicación y autoevaluación.


Required

  • PHP 7.4 min
  • Composer installed

Install Project

  1. Clone git https://github.com/DiversosFactoria5/elConsultorioDelCodersMVC.git
  2. Crear una base de datos en phpMyAdmin en local, con los credenciales - user : root, password : ""
  3. Nombre de base de datos : consultant
  4. Importar la tabla siguiente : https://github.com/DiversosFactoria5/elConsultorioDelCodersMVC/blob/main/src/ReadMe.md/Database/consultant.sql

Install

  • composer install and/or composer update

Run tests

  • vendor/bin/phpunit
  • (1 test, 2 assertions)


El Consultorio del Coder - MVC

🚀 Comenzando

Dónde encontrar el proyecto en producción:

https://el-consultorio-del-coder.herokuapp.com/

El hoster Heroku nos genera un error de conexiones simultáneas a nuestra base de datos SQL, que no hemos podido solucionar en Heroku.

🛠️ Mockup de este proyecto

Mockup de cómo pensábamos que deberían ser las pantallas y sus funcionalidades:

⚙️ Capturas pantalla formato móvil

⚙️ Capturas pantalla formato desktop

🛠️ Herramientas usadas en este proyecto

  • Visual Studio Code
  • Trello
  • Figma
  • Metodologías Ágiles
  • Balsamiq
  • Planning Poker
  • GoogleDocs
  • GoogleFonts
  • Zoom
  • Bootstrap
  • PDO
  • Heroku
  • SQL
  • PHPMyAdmin

✒️ Autores

  • Amr
  • Andrea
  • Andrés (Scrum Master)
  • Jael
  • Jose Miguel (Product Owner)
  • Sergi

También pueden mirar la lista de todos los contribuyentes quienes han participado en este proyecto.