Welcome to the ABC Travels Booking System! This is a menu-driven console application designed to automate booking operations for a new Travels and Logistics company. The application is implemented using Core Java and the Collections API (Majorly List and Map APIs), with database integration. One of the main reason behind building this application (for now only backend), is to get a robust understanding of core java and all java fundamentals.
-
Dynamic Menu System
- Upon logging in, the application displays the company logo loaded from a local file.
- Dynamic menu-driven options for seamless user interaction.
-
New Admin User Registration
- Capture essential user details:
- First Name
- Last Name
- Mobile Number
- Gender
- Email ID
- Password
- Failed Login Count (Backend)
- Account Status (Backend)
- Capture essential user details:
-
Account Locking
- Accounts are locked automatically after five invalid login attempts.
-
Journey Planning
- Users can:
- Select source, destination, travel date, and number of passengers.
- Validate travel details (date, source, destination, and vacancies).
- Generate a bill based on:
- Fare per passenger.
- Weekend surcharge (+200 on base fare).
- GST calculation.
- Confirm bookings and return to the main menu.
- Users can:
-
Rescheduling
- Users can edit travel dates for confirmed bookings.
-
Error Handling
- Comprehensive exception handling for runtime errors.
- User-friendly error messages.
-
Java 8 Features
- Utilize LocalDate for date-related validations and operations.
-
System Logging
- Detailed system logs for better application understanding and troubleshooting.
- Java 8 or higher
- Local storage for:
- Company logo file.
- User and booking data.
- Clone the repository:
git clone https://github.com/<username>/abc-travels-booking-system.git
- Navigate to the project directory:
cd abc-travels-booking-system
- Compile the project:
javac -d bin src/*.java
- Run the application:
java -cp bin Main
- Login: View the company logo upon starting the application.
- Menu Options:
- Register a new admin user.
- Lock an account after invalid login attempts.
- Plan and book a journey with options to validate and confirm travel details.
- Reschedule travel dates for confirmed bookings.
- Return to the main menu after completing actions.
- Reuse methods to avoid redundancy.
- Follow proper naming conventions and maintain modularity.
- Use sysouts (System.out.println) for clear, user-friendly logs.
- Incorporate Java 8 features for modern and efficient implementations.
- Can add more validations and business rules as needed.
- Extend the application for future enhancements like payment integration or customer feedback.