Careeroza
Real World Example
Sales Report for an Online Store
An admin dashboard (like a Shopify or Flipkart seller panel) computes reports from raw orders by chaining collection operations.
Example
data class Order(val id: Int, val city: String, val category: String, val amount: Int, val delivered: Boolean)
fun main() {
val orders = listOf(
Order(1, "Hyderabad", "Mobiles", 15999, true),
Order(2, "Mumbai", "Fashion", 1299, true),
Order(3, "Hyderabad", "Fashion", 2499, false),
Order(4, "Delhi", "Mobiles", 24999, true),
Order(5, "Mumbai", "Mobiles", 8999, true),
Order(6, "Delhi", "Books", 499, true),
Order(7, "Hyderabad", "Books", 899, true),
)
val delivered = orders.filter { it.delivered }
println("Revenue: ${delivered.sumOf { it.amount }}")
println("Revenue by city:")
delivered.groupBy { it.city }
.mapValues { (_, list) -> list.sumOf { it.amount } }
.entries.sortedByDescending { it.value }
.forEach { (city, total) -> println(" %-10s %6d".format(city, total)) }
val topCategory = delivered.groupingBy { it.category }.eachCount().maxBy { it.value }
println("Most ordered category: ${topCategory.key} (${topCategory.value} orders)")
val (bigOrders, smallOrders) = delivered.partition { it.amount >= 5000 }
println("Big orders: ${bigOrders.map { it.id }}, small orders: ${smallOrders.map { it.id }}")
println("Pending ids: ${orders.filterNot { it.delivered }.joinToString { "#" + it.id }}")
}Output
Revenue: 52694 Revenue by city: Delhi 25498 Hyderabad 16898 Mumbai 10298 Most ordered category: Mobiles (3 orders) Big orders: [1, 4, 5], small orders: [2, 6, 7] Pending ids: #3