Este es un repositorio de código para un proyecto de citas que utiliza MongoDB como base de datos. El proyecto está escrito en nodeJS y express
- primero clona el repositorio
git clone https://github.com/miusarname/CitasMongo
- luego ingresa a la carpeta en donde esta el repositorio
cd CitasMongo
- Instala las dependencias
npm i
- Cambia en .env el string de conexion, la clave privada y el puerto en el cual deseas iniciar el repositorio
ATLAS_STRCONNECT="mongodb+srv://root:[email protected]/ejercicio-citas"
JWT_PRIVATE_KEY="HolaMundo"
PORT = 3002
- Corre el servidor con
npm run dev
- obtendras un token, para facilidad de ti como usuario te recomiendo el token de admin
podes usar este comando de bash:
curl -X POST http://localhost:<el_puerto_que_defieniste>/token -H 'Content-Type: application/json' -d '{"role":"admin"}'
este es un ejemplo con el puerto por defecto que es el 3000
curl -X POST http://localhost:3000/token -H 'Content-Type: application/json' -d '{"role":"admin"}'
o hacer un consulta con thunderclient con las siguientes caracteristicas
el link es:
http://localhost:<el_puerto_que_defieniste>/token
y en los headers pon :
Content-Type: application/json
y en el body pon :
{"role":"admin"}
y ahora tienes acceso a todas las rutas
Nota:tambien existe el token para users y para doctor, pero eso de momento no te interesa
Te las dare en diciendo " primero al operacion(o el metodo), luego el "link" "
GET http://localhost:<el_puerto_que_defieniste>/users/
GET http://localhost:<el_puerto_que_defieniste>/doctor/:<id_del_doctor>
POST http://localhost:<el_puerto_que_defieniste>/users/
GET http://localhost:<el_puerto_que_defieniste>/doctors/
GET http://localhost:<el_puerto_que_defieniste>/quotes/specify
GET http://localhost:<el_puerto_que_defieniste>/quotes/next/:id
La API de CitasMongo es un servicio backend diseñado para gestionar citas médicas y datos de usuarios para una clínica médica. Proporciona puntos finales para interactuar con cuentas de usuario, información de médicos, citas y más. A continuación, se presenta un resumen de sus características, instrucciones de instalación, uso de tokens y puntos finales de la API.
-
Autenticación Basada en Tokens: Se utiliza JSON Web Tokens (JWT) para autenticar usuarios y permitir acceso seguro a rutas protegidas.
-
Límite de Solicitudes: Se implementa un mecanismo de límite de solicitudes para prevenir abusos y mantener la integridad del servicio.
-
Rutas para Diferentes Roles: Hay rutas específicas para Camper y Trainer, cada uno con diferentes acciones y permisos.
-
Gestión de Citas: Los usuarios pueden obtener citas futuras y detalles específicos de citas.
-
Clona el repositorio:
git clone https://github.com/miusarname/CitasMongo.git
-
Navega al directorio del proyecto:
cd CitasMongo
-
Instala las dependencias:
npm install
-
Crea un archivo
.env
en el directorio raíz con la siguiente información:ATLAS_STRCONNECT="mongodb+srv://usuario:contraseñ[email protected]/ejercicio-citas" JWT_PRIVATE_KEY="TuClaveSecreta" PORT=3000
-
Inicia el servidor:
npm run dev
Para acceder a rutas protegidas, necesitas obtener un token de autenticación. Aquí te explicamos cómo generar y usar tokens:
-
Generar Token: Realiza una solicitud
POST
a/token
sin cuerpo. Esto devolverá un token de autenticación. -
Incluir Token: Incluye el token en la cabecera
Authorization
de tus solicitudes usando el formato:Bearer TU_TOKEN
.
GET /users
: Obtiene una lista de usuarios. (Solo para Admin)GET /users/doctor/:id
: Obtiene citas para un usuario específico que también es doctor.POST /users
: Crea una nueva cuenta de usuario.
GET /doctors
: Obtiene una lista de médicos. (Solo para Admin)
GET /quotes/next/:id
: Obtiene citas futuras para un usuario específico.GET /quotes/specify
: Obtiene detalles de citas para todos los usuarios.
GET /counsultingRoom
: Obtiene una lista de salas de consulta. (Solo para Admin)
Cuando envíes datos en el cuerpo de la solicitud (por ejemplo, para crear un nuevo usuario), asegúrate de que el cuerpo contenga las propiedades necesarias según los requisitos del punto final. Por ejemplo:
{
"names": {
"first": "John",
"last": "Doe"
},
"phone": "123456789",
"address": "123 Main St",
"email": "[email protected]",
"genre": "male",
"attendant": {},
"quotes": {}
}
¡Hola y bienvenido al emocionante mundo de la API de CitasMongo! 🚀 Aquí podrás gestionar tus citas médicas y acceder a datos de usuarios de manera rápida y segura. ¿Estás listo para explorar? 🌟
-
Autenticación de Superhéroes: Usamos JSON Web Tokens (JWT) para garantizar la seguridad y autenticación de tus hazañas médicas.
-
¡Alto al Spam!: Hemos conjurado un poderoso escudo anti-spam para que solo las solicitudes legítimas lleguen a nuestro reino.
-
Rutas Personalizadas: Cada tipo de usuario tiene su propio camino en esta aventura médica.
-
Control de Citas: Consulta tus futuras misiones médicas y detalles con facilidad.
-
🧙♂️ Clona el pergamino mágico:
git clone https://github.com/miusarname/CitasMongo.git
-
🏰 Ingresa al castillo encantado:
cd CitasMongo
-
✨ Invoca los ingredientes mágicos:
npm install
-
🧪 Crea un hechizo
.env
en la raíz con estos secretos:ATLAS_STRCONNECT="mongodb+srv://usuario:contraseñ[email protected]/ejercicio-citas" JWT_PRIVATE_KEY="TuClaveSecreta" PORT=3000
-
🪄 Lanza tu varita mágica:
npm run dev
Para acceder a los secretos del reino, necesitarás un pergamino mágico. Así es como puedes obtenerlo:
-
📜 Conjura tu pergamino: Realiza una solicitud
POST
a/token
sin mensaje. Obtendrás un pergamino con tu nombre. -
🎩 ¡Usa tu pergamino!: Incluye tu pergamino en la cabecera
Authorization
de tus solicitudes usando el formato:Bearer TU_PERGAMINO
.
GET /citizens
: Consulta la lista de ciudadanos. (Solo para Administradores)GET /citizens/doctor/:id
: Explora las misiones médicas de un ciudadano que también es doctor.POST /citizens
: ¡Crea un nuevo ciudadano en nuestro reino!
GET /healers
: Busca en la guía de curanderos. (Solo para Administradores)
GET /quests/next/:id
: Encuentra tus futuras misiones médicas. 🚑GET /quests/details
: Detalles de misiones para todos los aventureros.
GET /magicRooms
: Explora las salas de hechicería. (Solo para Administradores)
Cuando envíes tu mensaje mágico (por ejemplo, para crear un nuevo ciudadano), asegúrate de incluir todos los elementos necesarios para realizar el hechizo correctamente. Por ejemplo:
{
"names": {
"first": "John",
"last": "Doe"
},
"phone": "123456789",
"address": "123 Main St",
"email": "[email protected]",
"genre": "male",
"attendant": {},
"quests": {}
}
La API de CitasMongo es como un libro de conjuros para gestionar tus citas y datos de usuarios en un hospital virtual. ¡No dudes en explorar y usar tu magia para mejorar la experiencia de la salud en línea! 🌈🔮