- User should be able to signup/login.
- Fetch/search trains.
- Show available seats.
- Book your ticket.
- Fault tolerance
- Consistent
- Scalable and performatic.
- Security
-
User:
- uuid
- name
- password (hashed)
- created_at
- updated_at
-
Ticket
- uuid
- pnr
- from
- to
- user_id
- passengers[] Passengers[]
- train_id uuid
- status
- seat_preference
- diet_preference
-
Train
- uuid
- name
- from
- to
- time_schedule
- seats[][]
- via
- created_at
- updated_at