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
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
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:
But we can do better โ and we will.
๐ฅ Goal: To build a better clipboard manager. BetterClip will have:
โ๏ธ Recommended Learning:
-
-
-
-
-
๐ช Submit your code in the comments!
@WeeklyCoder | Week 82
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:
-
-
-
-
-
๐ช Submit your code in the comments!
@WeeklyCoder | Week 83
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:
-
-
-
๐ช Send your submissions in the comments!
@WeeklyCoder | Week 84
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:
-
-
-
@WeeklyCoder | Week 85
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