npm install
Para crear la base de datos en MySQL, ejecutar:
sequelize db:create
Para crear las tablas, debemos ejecutar las migraciones correspondientes:
sequelize db:migrate
Deberia quedar algo con una estructura similar a esta:
La aplicación provee seeders
que agregan registros a la base de datos para comprobar las distintas funcionalidades. Para ejecutarlos:
sequelize db:seeds:all
Este comando poblará las diferentes tablas. Deberían de agregarse 5 registros en la tabla Usuarios
, 3 en la tabla Medicos
Por defecto, los usuarios poseen la contraseña usuario
y los médicos la contraseña medico
.
También se generará un pequeño pool de registros de citas listos para ser usados.
El endpoint de registro es diferente en función de si deseamos registrarnos como médicos o usuarios.
Si deseas registrarte como usuario:
"nombre": testing
"email": "test@email.com
"password": *********
Si el registro se ha realizado de forma sataisfactoria recibirá un mensaje que así se lo indique.
Si desea registrarse como médico
"nombre": testing
"email": "test@email.com
"password": *********
Para poder utilizar el login sin problemas deberá haberse registrado previamente. Una vez hecho enviara
{
"email": "ejemplo@ejemplo.com",
"password": "contraseña"
}
Una vez hecho esto se le mostrará que se ha logueado con exito y se le habrá creado una Cookie
con su JWT
, esto mantendrá su sesión abierta hasta que haga un Logout
Una vez terminado el paso del Login
, si quiere marcharse le recomendamos que cierre la sesion para ello accedera a /usuarios/logout
o /medicos/logout
dependiendo de como se haya registrado. Una vez accede a esa ruta (METODO GET). Su Cookie
que es lo ue mantenía su sesion abierta, se borrará y deberá hacer Login
de nuevo.
Si quiere ver cual es su token deberá acceder a la cookie
creada después de loguearse
Los endpoints principales son los siguientes:
127.0.0.1/usuarios
127.0.0.1/medicos
127.0.0.1/registros
La dirección 127.0.0.1 es el localhost, esas rutas por si solas no tienen funcionalidad, si no que son las principales, que dirigen a las rutas secundarias.
Una vez se haya registrado y logueado en la aplicación, estarán disponibles nuevos endpoints en donde podrá ver citas disponibles, pedir una cita, confirmar una cita ya solicitada, cancelar una cita y ver sus próximas citas.
El usuario podrá ver sus próximas citas, así como su estado:
El usuario podrá ver todas las citas disponibles, es decir, todas aquellas citas no asignadas a ningún usuario y potencialmente seleccionables por el usuario logeado.
El usuario podrá solicitar una determina cita que esté disponible. Si no esta disponible, la aplicación le informará de elló. Para solicitar una cita, bastará con aportar el id de la cita elegida:
{
"citaId" : N
}
Para confirmar la cita, deberas saber que cita tienes, una vez que lo sepas solo tendras que aportar la id de esta manera:
{
"citaId": (Numero de cita sin parentesis)
}
De la misma manera que confirmamos podremos cancelar una cita, deberemos proporcionar el Id de la cita:
{
"citaId": (Numero de cita sin parentesis)
}