solidcodersolidcoder
Explore Courses
solidcodersolidcoder

Practical courses for software engineering interviews — no gatekeeping, no fluff.

Company-wise Questions

  • Flipkart Machine Coding Questions
  • Swiggy Machine Coding Questions
  • Meesho Machine Coding Questions

Machine Coding Tutorial

  • Machine Coding Tutorial

Explore

  • Courses
  • About
  • Privacy Policy
  • Terms

© 2026 solidcoder · Practical courses for software engineering interviews.

Built for the AI era — learn by doing.

Home/Machine Coding/Flipkart Machine Coding Questions/Bidding System
Chapters — Flipkart Machine Coding Questions▾

Bidding System

Machine Coding·SDE-2·5 min read·Sep 11, 2026

Design Flipkart Plus's daily rewards bidding system — lowest-unique-bid wins, super coin wallet deductions, and past-winner history.

Asked inFlipkart

Flipkart Plus members get the chance to win a lavish item each day through BidBlitz — a rewards bidding system where members pledge Super Coins to bid on the day's item. Unlike a typical auction, the lowest bid wins, not the highest.

What the round tests

This one tests whether you can get the bid-evaluation and wallet-deduction rules exactly right — only the member's highest submitted bid is deducted (not the sum), ties break by submission order, and every rule around registration and bid uniqueness has to hold before a winner can even be declared.

Objective

The primary objective of this project is to design and implement an in-memory bidding system where members register for daily events, submit up to five unique bids in a single go, and the system correctly declares the member with the lowest bid as the winner — breaking ties by submission time — while tracking a browsable history of past winners.

Functional Requirements

Two tiers of scope

Requirements are split into two tiers so you know what to prioritize under time pressure: build first, and build as a bonus.

Part 1 — Basic Requirements

Core functionality you must build and get working first.

1. Member Management

Add members to the system, each assigned a number of Super Coins by the system. The assigned coin count must be greater than zero.

2. Event Management

Event rules
Rule
Detail
Unique event name
Each event's name must be unique across the system.
One event per day
The system can only add one event on a given day.

3. Registration

Members can register for an event; only registered members may submit bids for that event.

4. Submitting Bids

Bid submission rules
Rule
Detail
Single submission
A member submits all of their bids in one go — at most 5 bids per submission.
Wallet requirement
The member must have at least as many Super Coins as their highest bid in that submission. Only the highest bid is deducted from their wallet, not the sum of all bids — e.g. bids of 100, 500, 400, 800, 900 require at least 900 coins, and only 900 is deducted.
Unique bids
Every bid within a single member's submission for an event must be a distinct value.
Positive bids
Every bid must be greater than zero.

5. Declaring the Winner

Winner-selection rule
Rule
Detail
Lowest bid wins
The system admin declares the winner as the member with the single lowest bid across all submissions for that event.
Tie-breaker
If the lowest bid was submitted by more than one member, the member who submitted that bid first wins.

Part 2 — Bonus Requirement

Bonus

Extensibility check — can your design support browsing history without touching the core bidding logic.

Past winners
Rule
Detail
Visibility window
Members can see the winners of up to the 5 most recent past events.
Ordering
Results can be listed in ascending or descending order, sorted by event date.

Command Reference

Commands
Command
Behavior
ADD_MEMBER <id> <name> <super_coins>
Registers a new member with an initial Super Coin balance.
ADD_EVENT <event_id> <event_name> <prize_name> <date>
Creates a new daily event with a prize.
REGISTER_MEMBER <member_id> <event_id>
Registers a member for a specific event.
SUBMIT_BID <member_id> <event_id> <bid_1> ... <bid_5>
Submits up to 5 bids for a member on an event, in one call.
DECLARE_WINNER <event_id>
Declares the winner for an event based on the lowest-bid rule.
LIST_WINNERS <order_by>
Bonus: lists past event winners sorted by date, ascending or descending.

Example Usage: Full Walkthrough

1. Add members

> ADD_MEMBER 1 akshay 10000
Akshay added successfully

> ADD_MEMBER 2 chris 5000
Chris added successfully

2. Add an event

> ADD_EVENT 1 BBD IPHONE-14 2023-06-06
BBD with prize IPHONE-14 added successfully

3. Register members

> REGISTER_MEMBER 1 1
Akshay registered to the BBD event successfully

4. Submit bids

> SUBMIT_BID 1 1 100 200 400 500 600
BIDS submitted successfully

> SUBMIT_BID 2 1 100 200 400 500
BIDS submitted successfully

5. An unregistered member tries to bid — rejected

> SUBMIT_BID 10 1 100 200 300 400 500
Member did not registered for this event

6. Declare the winner

> DECLARE_WINNER 1
Akshay wins the IPHONE-14 with lowest bid 100
Result

Akshay's lowest submitted bid of 100 beats Chris's lowest of 100 as well — wait, both submitted 100, so the tie-breaker applies: Akshay is declared the winner because his bid of 100 was submitted first, exactly as the tie-breaking rule requires.

7. List past winners (bonus)

> LIST_WINNERS asc
[ { event_id: 1, winner_name: "Akshay", lowest_bid: 100, date: "2023-06-06" } ]

Guidelines

Format & constraints

Input can come from a file, STDIN, or a coded driver method — no API, no UI. Output can go to a file or STDOUT. All interim and output data must live in in-memory structures; databases are not allowed. Internet use is restricted to syntax lookups. The language must be Java. Save the project under your own name, and email it or upload it to the provided Google Drive link — since it will run on another machine, explicitly list any dependencies in your email.

Expectations

What's evaluated
Expectation
Detail
Demoable & correct
The interviewer will feed the program multiple inputs live, so it must be functionally correct and complete, not just correct on the sample.
Graceful edge cases
Errors like a duplicate event registration or insufficient Super Coins should produce a clear message and fail gracefully, not crash.
Readable & modular
Intuitive names for variables, methods, and classes; no monolithic code.
Testable & extensible
New functionality should be addable without rewriting large portions of the existing code.
No databases
All state must be in-memory for the duration of the program.
Up next3/3
Part 2 · SDE-2
←
← Prev Chapter
Conference Room Booking
5 min
Next Chapter →
Quick Commerce System
5 min · continue reading
→

Enroll in machine coding mastery series

₹30,000₹3,00090% OFF
Enroll Now →

Use code SOLID50 · 3 years · 40+ lessons

On this page
  • Objective
  • Functional Requirements
    • Part 1 — Basic Requirements
    • Part 2 — Bonus Requirement
  • Command Reference
  • Example Usage: Full Walkthrough
  • Guidelines
  • Expectations