Lógica de negocio
- Verificación médica: mayor de 18 años y con certificado
- Reservas con control de cupos
- Cancelaciones que liberan el asiento
- Pagos registrados por reserva
- Estados definidos con enums: confirmada, pendiente y cancelada
PROGRAMACIÓN · TYPESCRIPT · DEVOPS
Backend de reservas de vuelos espaciales con verificación médica, control de cupos y pagos, integrado en un flujo DevOps con pruebas, Docker y GitHub Actions.
export class BookingService {
private bookings: Booking[] = [];
createBooking(customer: Customer, flight: Flight): Booking {
if (flight.capacity <= 0) {
throw new Error("No seats available on this flight.");
}
const newBooking = new Booking(
this.bookings.length + 1, customer, flight, "pending"
);
flight.capacity--;
this.bookings.push(newBooking);
return newBooking;
}
}// 01 · LA MISIÓN
Space Flight Booking es el backend de una agencia que comercializa vuelos a Marte. Antes de confirmar una reserva, el sistema verifica que el pasajero sea mayor de edad y cuente con certificado médico; si hay cupo, crea la reserva, descuenta el asiento y registra el pago. El proyecto tenía un segundo objetivo igual de importante: aplicar prácticas DevOps, con pruebas automatizadas, una imagen Docker y un pipeline en GitHub Actions que instala, prueba, compila y publica la aplicación. Proyecto desarrollado en el programa Computer Programmer de Lambton College, en Ontario (Canadá), bajo estándares profesionales de desarrollo, documentación y control de versiones.
// QUÉ SE CONSTRUYÓ
// RETOS Y SOLUCIONES
Definir los pasos del flujo en YAML fue el primer reto. Lo resolví estudiando la documentación de GitHub Actions y ejemplos prácticos hasta automatizar la instalación, las pruebas y la compilación.
Mi computador no admitía Docker. Como el proyecto estaba versionado en GitHub, lo cloné en otro equipo y continué el trabajo sin perder avances, hasta construir la imagen y publicarla en el registro.
Para el despliegue continuo exploré AWS y Azure. Ambos requerían suscripciones y configuraciones avanzadas, por lo que la entrega llegó hasta la publicación de la imagen en Docker Hub y el despliegue en la nube quedó como siguiente etapa.
// PRUEBAS
$ npm test PASS tests/PaymentService.test.ts PASS tests/BookingService.test.ts PASS tests/MedicalService.test.ts Tests: 7 passed, 7 total
// GALERÍA
Toca una imagen para verla en pantalla completa.
// PROCESO
Un cambio llega a la rama develop.
npm ci y Jest.
TypeScript compilado.
Se construye la imagen.
La imagen se publica.
MISIÓN CUMPLIDA
¿Necesitas un sistema de reservas o pagos?
Desarrollo backends a la medida, probados y listos para desplegarse con prácticas DevOps.