Inspiration
Booking flights usually means searching through fares airlines have already set. We wanted to reverse that: travellers say what they need, and airlines compete to meet it.
What it does
Travellers publish a route, date window, passenger count and budget. Airlines browse requests and submit or revise offers. The backend checks offers against the traveller’s budget, baggage and direct-flight requirements. Travellers compare and accept an offer, which closes bidding.
How we built it
The frontend uses React and Vite; the API uses Java and Spring Boot. The backend supports requests, airline bids, offer validation, rankings and acceptance. Demo data is held in memory and resets when the backend restarts.
Challenges we ran into
Connecting the frontend and backend meant aligning their data fields, types and offer statuses. We also had to make sure validation and offer acceptance affected the marketplace correctly.
Accomplishments that we’re proud of
We built the core flow from publishing a request to submitting and accepting an offer. Invalid offers get a rejection reason, and accepting one closes the request to further bids. Airlines can check their standing without seeing competitors’ prices.
What we learned
A shared API contract matters: small mismatches in field names or data types can break the connection between otherwise working parts. Keeping data in memory also helped us focus on the demo flow, while making persistence a clear next step.
What’s next for BidScanner
We’d connect all traveller preferences to backend validation, add tests for the full flow, and persist requests across restarts. We’d also explore autonomous airline bidding; currently, airlines submit bids manually.
Built With
- java
- javascript
- react
- spring-boot
- vite
Log in or sign up for Devpost to join the conversation.