Categorías
Etiquetas
ActiveMQ Android Astro Bootstrap Clerk Convex DataFaker Docker Firebase Flutter Go GraphQL HAProxy HTML JasperReports Java Javalin JMS JS Juyper Notebook Mailjet Microservices MongoDB Mux NestJS NextAuth NextJS NLP NLTK Numpy Pandas PayPal Postgres PostgreSQL Prisma Python Re React Redis Resend RSS Scikit-learn Scikit-Learn SCSS Spacy SpringBoot Streamlit Tableau TailwindCSS Vaadin WebGPU WordPress YouTube API ZenStack
321 palabras
2 minutos
Lab Reservations (Serverless)
Lab Reservations
Lab Reservations es una aplicación web sin servidor para gestionar solicitudes de acceso a los laboratorios de forma sencilla y segura. Aprovecha AWS Lambda para la lógica de negocio (implementada en Go), Netlify para el hosting del frontend y DynamoDB para la persistencia de datos. Su diseño permite registrar y consultar reservas en tiempo real, respetando las reglas de capacidad y horario.
Detalles de la aplicación
Frontend
Lógica de negocio (AWS Lambda + API Gateway)
- Funciones escritas en Go y desplegadas en AWS Lambda.
createReservation
: recibe petición POST, valida capacidad (máximo 7 personas/hora) y horario (08:00–22:00 en intervalos de hora), y crea o rechaza la reserva.listActiveReservations
: responde a GET con todas las reservas cuya fecha de inicio sea igual o posterior a la fecha actual.listReservationsByDateRange
: recibe POST constartDate
yendDate
para filtrar el historial de reservas.
Persistencia (DynamoDB)
- Tabla
Reservations
con clave primariareservationId
. - Atributos:
email
,name
,userId
,labId
,startTime
. - Índice secundario global sobre
startTime
para búsquedas por fecha.
- Tabla
Colaboración: desarrollado junto a Steven Mateo.
Funcionalidades clave
- Registro de reservas con validación automática de reglas de negocio.
- Visualización de reservas activas (fechas no expiradas).
- Filtrado de historial de reservas por rango de fechas.
- Cumplimiento de capacidad (7 personas por hora) y franjas horarias (08:00–22:00).
Tecnologías utilizadas
Serverless & API
Frontend
Desarrollo de la práctica
Interfaz estática
- Construida con Astro y ReactJS, publicada en Netlify.
- Formularios y componentes interactivos que consumen las funciones Lambda.
Funciones serverless
- Escritas en Go y desplegadas en AWS Lambda + API Gateway, gestionan la creación, validación y consulta de reservas.
Base de datos NoSQL
- DynamoDB almacena reservas activas y archivo histórico, con índices para consultas eficientes.
Despliegue
- Frontend: se publica automáticamente en Netlify tras cada push a la rama
main
. - Backend: funciones Lambda y tabla DynamoDB configuradas en AWS.
Demo de la aplicación
Repositorio de GitHub
Waiting for api.github.com...
Lab Reservations (Serverless)
https://vladimircuriel-v2.netlify.app/posts/lab-reservations/