Weekly Coder
95 subscribers
84 photos
6 videos
1 file
73 links
Byte sized weekly coding challenges to hone your problem-solving prowess.
Download Telegram
Weekly Coder
Photo
๐Ÿ“Š Fuel Theft Detection

This week, let's analyze vehicle telemetry to tackle a critical problem: detecting fuel theft. By processing GPS and fuel data, we can identify suspicious fuel level changes.

๐Ÿฅ… Goal: Build a Fuel Theft Detector that processes a CSV of vehicle telemetry data to identify stops and flag fuel changes as theft or fillings.

We'll use this real-world data as input.

Real life is messy. Sensors can give readings that are all over the place when a vehicle is moving uphill or down hill or when it changes.

So to do this, we'll only consider fuel level changes as either thefts/fillings if they happen while the vehicle is stationary (speed = 0 kph). We'll take as a stop a duration of โ‰ฅ 3 minutes.

Filling if Fuel Diff > 1.0 and stop duration โ‰ฅ 3 minutes and Theft if Fuel Diff < -1.0

โšก๏ธ Bring the Thunder:
- Output a summary report (events and amounts) to a csv file.
- Include the associated GPS coordinates to indicate where theft or fillings may have happened.

โœ๏ธ Recommended Learning:
- loadTable(), saveTable(), nf
- SimpleDateFormat
- Loops and conditionals
- .replace (), .contains ()

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 81
๐Ÿ“‹ BetterClip: Clipboard Bank
Weekly Coder
๐Ÿ“‹ BetterClip: Clipboard Bank
Ever found yourself copying something useful, only to accidentally overwrite it with something else seconds later?

I've been there. Windows has a clipboard history feature built in โ€” BUT it's limited, buggy, and doesn't quite do enough for real-world use.

๐Ÿ‘Ž The built-in Windows clipboard:
- Stores only 25 items
- Clears everything on restart
- No search or categorization
- No support for files
- Misses to record things sometimes
- Does not have searchability
- Does not have categorization
- and a lot more

But we can do better โ€” and we will.

๐Ÿฅ… Goal: To build a better clipboard manager. BetterClip will have:
- Unlimited history
- Searchability
- Persistent storage across reboots
- Auto-deletion of old records
- Restore on startup
- Support for text, images, files, URLs
- Tabs for categorization [All | Texts | Images | Files | URLs | +]
- Option to pin
- Global hotkey to launch
- Incognito mode to temporarily disable recording


โœ๏ธ Recommended Learning:
- java.awt.Toolkit | pyperclip
- JIntellitype for Global Hotkeys
- the object Object and DataFlavor
- saveStrings ()
- List, LinkedHashMap

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 82
DJ Robot

Music in factories boosts morale, productivity, and focus. But manual playlist management often leads to forgotten starts, missed pauses, and repetitive songs.

๐Ÿฅ… Goal: This week, let's build a customizable, offline music scheduler for factory Bluetooth PA systems โ€” with the following features:

- automated start/stop at clock-in/out
- pause during lunch breaks (or custom lunch playlist)
- day-specific playlists
- easy way to add/remove songs in playlists

โšก๏ธ Bring the Thunder:
- schedule overrides no playback on Sundays or specific dates (religious holidays or during no work days)
- bluetooth PA system integration such that it looks for the PA system before playing music
- song rotation to avoid repetition

โœ๏ธ Recommended Learning:
- Minim library for audio playback
- java.util.Timer for scheduling automation
- java.io.File for playlist/file management
- List, HashMap, +
- JIntellitype for special media keys (Play, Pause, Stop, +)

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 83
Weekly Coder
๐Ÿ’ฐ Receipt Detective A cashier at a boutique is tasked to verify the validity of a transaction using an RN (Reference Number). To do this, she manually creates a link using an RN and the last 8 digits of their account number. Template Link: https://apps.โ€ฆ
๐Ÿงพ StitchPay: Statement Consolidator

You'd think banks such as CBE, established as they are, would include something basic as a Payer name in a bank statement they send. But you'd think wrong. ๐Ÿคฆโ€โ™‚๏ธ

So, this week, let's extend our Receipt Detective challenge of Week 59 to build a Statement Consolidator that takes in an incomplete bank statement and gives back something complete.

๐Ÿฅ… Goal: Given the account number of a Receiver, build a program that takes in a list of Reference numbers and gives back a complete statement as .csv file.

The transaction section of a bank statement should sensibly include these โ€” but as a start, let's build a payer name fetcher.

๐Ÿ—’ Format here.

๐Ÿฆถ Build on top of this example.

โšก๏ธ Bring the Thunder!
- So generate a complete Bank Statement as a CSV from a list of Reference numbers.

โœ๏ธ Recommended Learning:
- URL, InputStream, File, FileOutputstream
- PDFbox, PDFTextStripper
- .openStream (), .deleteOnExit ()

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 84
Inclusive Modular Knapsack

A school is looking to buy every type of item for their students โ€” notebooks, pencils, and erasers โ€” but it has capped the total spend at 2,000 Br (t = total).

๐Ÿฅ… Goal: This week, build a solver that finds how many packs of each supply type can be bought so that:
- every item type is included at least once
- quantities are unlimited
- total cost is no more than 't' Br but can be a little under

Example:
- Notebook pack โ†’ 150 Br
- Pencil pack โ†’ 90 Br
- Eraser pack โ†’ 60 Br
- Target budget t = 2000 Br

โšก๏ธ Bring the Thunder: here

โœ๏ธ Recommended Learning:
- Coin change / knapsack dynamic programming
- Residue arithmetic to handle multiples
- Data structures: arrays, maps, +

@WeeklyCoder | Week 85