I want to board a train from London to France. The train ticket will cost $5.
Create an API where you can submit a purchase for a ticket. Details included in the receipt are:
a) From, To, User , price paid.
(i) User should include first and last name, email address
The user is allocated a seat in the train. Assume the train has only 2 sections, section A and section B.
An API that shows the details of the receipt for the user
An API that lets you view the users and seat they are allocated by the requested section
An API to remove a user from the train
An API to modify a user's seat
-
Make sure you have Java 17 and above and Maven installed
-
Fork this repository and clone it
$ git clone https://github.com/Aariv/TrainTicketBookingSystem
- Navigate into the folder
$ cd TrainTicketBookingSystem
- Install dependencies
$ mvn clean install
- Run the project
$ mvn spring-boot:run
- Navigate to
http://localhost:8080/swagger-ui.html
in your browser to check everything is working correctly. You can change the default port in theapplication.properties
file
server:
port: 8080
![Screenshot 2024-05-15 at 3 51 23 PM](https://private-user-images.githubusercontent.com/11393142/330764528-81ce01b1-8996-4d80-bd4c-aff77893194a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzMDgwMzYsIm5iZiI6MTcyMTMwNzczNiwicGF0aCI6Ii8xMTM5MzE0Mi8zMzA3NjQ1MjgtODFjZTAxYjEtODk5Ni00ZDgwLWJkNGMtYWZmNzc4OTMxOTRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDEzMDIxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgwMjk2MGY5OWYwNTg4YjQ3YjlkODBiMDRiZWQxNTI1YWYyZDlmZTI4NTdlMGFmNjAwZDAxMWRmYjY3NmIwMzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Pepp7V3pX5UIf3ujNUkAtoLj64YTHohxiP0W-lgi5Bc)
![Screenshot 2024-05-15 at 3 53 34 PM](https://private-user-images.githubusercontent.com/11393142/330764988-f1b8594e-21d5-4503-8611-242e34338747.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzMDgwMzYsIm5iZiI6MTcyMTMwNzczNiwicGF0aCI6Ii8xMTM5MzE0Mi8zMzA3NjQ5ODgtZjFiODU5NGUtMjFkNS00NTAzLTg2MTEtMjQyZTM0MzM4NzQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDEzMDIxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg2MTEyMzc2ODFiNDMwNWE2MGU5ZDY5N2IyMjc0NGYzMDE3NjhhYjZmY2Q2YjNjYTk0MTk1YzRjZDE5N2Q1NzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.pX0radNYw5g9zzU1QihdwisNXfsCAIgTzzMhq0Bdwrc)
![Screenshot 2024-05-15 at 4 01 30 PM](https://private-user-images.githubusercontent.com/11393142/330766518-98fa65c2-51b3-4f66-8877-485b95c1f3f5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzMDgwMzYsIm5iZiI6MTcyMTMwNzczNiwicGF0aCI6Ii8xMTM5MzE0Mi8zMzA3NjY1MTgtOThmYTY1YzItNTFiMy00ZjY2LTg4NzctNDg1Yjk1YzFmM2Y1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDEzMDIxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyMjUxZmUzZjJjNmE0NjA0MjY4Y2RjYjVmYzk2OTM4OWExMzdlODkxYWVmOGRiZmFjYjcyYWM3NDg0YjAwYzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oCJMCf3vcrB8qC3MRn4-nLeIGJiqGhsI6jyG6nGRe4o)
![Screenshot 2024-05-15 at 4 03 29 PM](https://private-user-images.githubusercontent.com/11393142/330767534-5c090af5-accc-4169-90e9-9327e583c56b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzMDgwMzYsIm5iZiI6MTcyMTMwNzczNiwicGF0aCI6Ii8xMTM5MzE0Mi8zMzA3Njc1MzQtNWMwOTBhZjUtYWNjYy00MTY5LTkwZTktOTMyN2U1ODNjNTZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDEzMDIxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkyM2JjMTZlNmYxYTcwZjdjMzJhM2E3NWU0YTE1N2Y4YWJiNzhhNWU2ZDc4MWI4NzZmYzlkYTYzYjFlOTgxMzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jq9_A4FyarCumm-KQiVZsv0D-86dg7LYsXuNRNng1i4)
![Screenshot 2024-05-15 at 4 03 58 PM](https://private-user-images.githubusercontent.com/11393142/330767437-7f9f8310-170f-4074-bfa1-8f715bf4dd8c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzMDgwMzYsIm5iZiI6MTcyMTMwNzczNiwicGF0aCI6Ii8xMTM5MzE0Mi8zMzA3Njc0MzctN2Y5ZjgzMTAtMTcwZi00MDc0LWJmYTEtOGY3MTViZjRkZDhjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDEzMDIxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ4OWI2NmIyOGJiYTEzOWU1MDU2MTMzMTkzMzZkMjQ2OGNiYTE1NzNjYTdiYjgxYjAyOWZkODYwMWI1MjVjNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.pMnchEQVba9n_Xb3eq03hsJ7UcVlzWIjZOA-QQ935y4)
![Screenshot 2024-05-15 at 4 04 29 PM](https://private-user-images.githubusercontent.com/11393142/330767479-b9af60e9-72a0-4b80-ad92-2bc5a8602a14.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzMDgwMzYsIm5iZiI6MTcyMTMwNzczNiwicGF0aCI6Ii8xMTM5MzE0Mi8zMzA3Njc0NzktYjlhZjYwZTktNzJhMC00YjgwLWFkOTItMmJjNWE4NjAyYTE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDEzMDIxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE2ZWQwNDI0NDMzNmVhZjJmZTU0MDFhMjZkNTFkY2RmMDAyODJiMTgxZjRjNzQxOWYzN2JlNDhmN2JkODNlM2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.GFYVc1sfCYsXNqxAyq-91cAsWZO16Dx8ZKhz1tp-rC0)