This project is a Low-Level Design (LLD) implementation of a Ticket Booking System Entities and Services using Core Java. The system simulates a train ticket booking application and utilizes various Java 8 features such as Streams, Lambda functions, Maps, etc. The backend uses a simple JSON file-based offline database (similar to MongoDB) to store user and ticket data.
The system provides the following features:
- Sign Up - User can create an account by providing a name and password.
- Login - Existing users can log in using their credentials.
- Fetch Bookings - Users can view their existing bookings.
- Search Trains - Users can search for trains based on source and destination.
- Book a Seat - Users can book a seat on an available train.
- Cancel Booking - Users can cancel their existing booking.
- Exit - Exit the application.
- Core Java (Java 8)
- Streams
- Lambda Functions
- Maps
- Collections (Lists, Sets, Maps, etc.)
- JSON for Offline Database (stored in
.json
files) - Jackson & TypeReference for JSON parsing and to map json data with entities and object serialization/deserialization
git clone https://github.com/Jainish-Prajapati/IRCTC-Ticket-Booking-System-LLD-Basics-Java-8.git
gradle build
gradle run
If you are willing to help, learn more in-depth about Java topics and this project, I encourage you to consider collaborating with me on this project. Feel free to reach out if you're interested in contributing, learning, or exploring more about Core Java, Low-Level Design (LLD), and backend technologies.