Air Travel Service Web Application
A full-stack distributed web application that allows users to search, book, and manage flights with authentication, REST APIs, and persistent data storage.
Technologies Used: Java, Spring Boot, REST APIs, HTML5, CSS3, JavaScript, H2 Database, JPA, XML, JSON
The Air Travel Service Web Application is a browser-based distributed system designed to simulate a real-world flight booking platform. It integrates frontend and backend technologies to provide a seamless user experience while demonstrating key software engineering concepts such as RESTful communication, authentication, and database persistence.
Users can register, log in, search for flights, book flights, and view their personal booking history through a dynamic interface.
Key Features:
User authentication with XML-based registration and login
Flight search using RESTful APIs
Secure flight booking for authenticated users
“My Bookings” view with user-specific data
Dynamic UI updates using JavaScript (Fetch API)
Persistent booking storage using H2 database
Conditional UI rendering based on authentication state
Architecture:
This application follows a distributed architecture with clear separation of concerns:
Frontend
Built with HTML5, CSS, and JavaScript
Handles user interaction, modals, and dynamic content rendering
Backend (Spring Boot)
REST controllers manage flight search and booking endpoints
Service layer handles business logic
Repository layer manages database interactions via JPA
Authentication Service
Separate XML-based system for user credentials
Communicates with the main app via HTTP requests
Database
H2 file-based database for persistent booking storage
Relational mapping between bookings and flights
Data Flow
JSON used for API communication
XML used for authentication storage
Screenshots / Demo
Challenges & Solutions
Implementing authentication using a separate XML-based service
Managing communication between distributed components
Debugging issues with API calls and authentication headers
Ensing database persistence across application restarts
Handling UI state changes based on login/logout behavior
Coordinating multiple data formats (XML and JSON)
What I Learned
Gained hands-on experience building a full-stack distributed application
Improved understanding of RESTful API design and integration
Learned how to implement authentication and authorization flows
Developed skills in database modeling and persistence using JPA
Strengthened debugging skills across frontend and backend systems
Understood how different technologies interact in real-world applications
Future Improvements
Implement JWT-based authentication instead of Basic Auth
Migrate from H2 to PostgreSQL or MySQL
Deploy the application to a cloud platform (AWS or Azure)
Enhance UI with a modern frontend framework (React)
Add booking cancellation and user profile features
Improve error handling and validation across services
Links
Github