You are browsing as a guest. Sign up (or log in) to start making projects!

Hamerenoh

@Hamerenoh

Joined July 24th, 2026

  • 8Devlogs
  • 4Projects
  • 3Ships
  • 57Votes
Open comments for this post
Reposted by @Hamerenoh

2h 13m 44s logged

Built the red-flag override system for the health triage assistant —
urgent symptoms like difficulty breathing now immediately trigger “High”
guidance instead of just adding up points. Hit and fixed a real bug
along the way (a variable used before it was declared). Also rewrote
this project’s README myself after getting feedback that my earlier
drafts sounded too AI-generated.

0
1
112
Open comments for this post

2h 13m 44s logged

Built the red-flag override system for the health triage assistant —
urgent symptoms like difficulty breathing now immediately trigger “High”
guidance instead of just adding up points. Hit and fixed a real bug
along the way (a variable used before it was declared). Also rewrote
this project’s README myself after getting feedback that my earlier
drafts sounded too AI-generated.

0
1
112
Ship Changes requested

Built Flood Risk Index — an interactive map that estimates flood risk for
any point using real elevation and rainfall data, not a black-box model.
Click anywhere on the map, and it fetches that location’s actual
elevation and rain forecast, then calculates a Low/Moderate/High risk
level using a transparent formula: lower elevation combined with higher
rain chance means higher risk.

The most unexpected challenge was the map itself — the tile provider I’d
originally set up started requiring an API key partway through building,
and the whole map was covered in “API KEY REQUIRED” watermarks. I fixed
it by switching to OpenStreetMap’s free tiles and using a CSS trick to
keep the dark visual style I wanted, instead of depending on a paid
service.

I’m proud that I wrote the actual risk-calculation logic myself — the
rules combining elevation and rainfall into a risk score — and that every
result the app shows is fully explainable, not hidden inside a model no
one can inspect. The original idea for this project involved a trained
CNN on satellite imagery, which isn’t realistic to build honestly in this
timeframe, so I deliberately scoped it down to something transparent and
fully working instead.

To test it: click anywhere on the map (try a low-lying area near a river
or coast vs. a mountainous region) and watch the readout panel show the
real elevation, rain chance, and resulting risk level with a gauge visual.

  • 1 devlog
  • 3h
Try project → See source code →
Open comments for this post
Reposted by @Hamerenoh

2h 50m 33s logged

Built the core risk-calculation logic for Flood Risk Index today. Ran
into a real problem first: the map tiles I’d originally set up (CartoDB
dark tiles) started requiring an API key I don’t have — the whole map
was covered in “API KEY REQUIRED” watermarks. Fixed it by switching to
OpenStreetMap’s standard tiles (permanently free, no key) and using a
CSS color-inversion trick to keep the dark navy look I wanted.

Then wrote calculateRisk() myself — it takes real elevation and rainfall
data for any point someone clicks on the map, and combines them into a
Low/Moderate/High risk score using simple, transparent rules (low
elevation + high rain chance = higher risk). Also wrote a full README
explaining the project, and being upfront that this uses a rule-based
formula rather than a trained ML model on satellite imagery — that’s a
deliberate scope decision (real, explainable results now) rather than an
unfinished feature, with the ML version listed as future work.

0
1
139
Open comments for this post

2h 50m 33s logged

Built the core risk-calculation logic for Flood Risk Index today. Ran
into a real problem first: the map tiles I’d originally set up (CartoDB
dark tiles) started requiring an API key I don’t have — the whole map
was covered in “API KEY REQUIRED” watermarks. Fixed it by switching to
OpenStreetMap’s standard tiles (permanently free, no key) and using a
CSS color-inversion trick to keep the dark navy look I wanted.

Then wrote calculateRisk() myself — it takes real elevation and rainfall
data for any point someone clicks on the map, and combines them into a
Low/Moderate/High risk score using simple, transparent rules (low
elevation + high rain chance = higher risk). Also wrote a full README
explaining the project, and being upfront that this uses a rule-based
formula rather than a trained ML model on satellite imagery — that’s a
deliberate scope decision (real, explainable results now) rather than an
unfinished feature, with the ML version listed as future work.

0
1
139
Ship

Built EthioFarm AI, a climate assistant that turns real-time weather data
into practical farming advice for Ethiopian farmers. It shows live weather
for any location (with a visual “horizon” that changes based on real sky
conditions), gives an instant plant/irrigate/hold-off recommendation, and
lets farmers ask questions like “should I plant this week?” through a
chat interface.

The most challenging part was the AI chat. I originally built it to call
an external AI API directly from the browser, but that approach doesn’t
actually work once hosted — it needs a securely-held API key and backend
server I don’t have access to. I rebuilt it as a self-contained rule-based
system instead: it detects what the farmer is asking about (planting,
irrigation, or rain) and generates a specific answer using real live
weather data — no external dependency, works the same whether local or
hosted.

I’m proud that I wrote the core logic myself — the keyword-detection and
answer-generation functions — working through the conditional logic step
by step instead of just pasting code. It’s a small thing, but it’s the
first time I really understood what I was building rather than just
shipping something that worked.

To test it: enter a real Ethiopian town (like Bahir Dar or Hawassa)or whatever city , click
“Check weather,” then ask a question like “will it rain tomorrow?” in the
Field Journal chat — the answer will reflect that location’s real current
weather data.

  • 5 devlogs
  • 10h
  • 6.15x multiplier
  • 61 Stardust
Try project → See source code →
Open comments for this post
Reposted by @Hamerenoh

1h 2m 32s logged

Solved the AI backend problem in EthioFarm AI. The chat previously called
an external AI API directly from the browser, which isn’t realistic to
deploy without a backend server and paid API key. I rebuilt it as a
self-contained rule-based assistant instead: it detects what a farmer is
asking about (planting, irrigation, or rain) via keyword matching, then
combines that with real live weather data to generate a specific answer.
No external dependency — works identically whether local or hosted.

I wrote the core logic (detectIntent and generateAnswer functions) myself,
working through conditional statements step by step rather than just
pasting code. Tested it end-to-end — asked real questions and got correct
answers based on live weather data for a real location.

Also wrote a full README documenting the problem, solution, tech stack,

0
1
150
Open comments for this post

1h 2m 32s logged

Solved the AI backend problem in EthioFarm AI. The chat previously called
an external AI API directly from the browser, which isn’t realistic to
deploy without a backend server and paid API key. I rebuilt it as a
self-contained rule-based assistant instead: it detects what a farmer is
asking about (planting, irrigation, or rain) via keyword matching, then
combines that with real live weather data to generate a specific answer.
No external dependency — works identically whether local or hosted.

I wrote the core logic (detectIntent and generateAnswer functions) myself,
working through conditional statements step by step rather than just
pasting code. Tested it end-to-end — asked real questions and got correct
answers based on live weather data for a real location.

Also wrote a full README documenting the problem, solution, tech stack,

0
1
150
Open comments for this post
Reposted by @Hamerenoh

1h 44m logged

Built the dynamic weather horizon (updateHorizon) to switch sky gradients and cloud visuals in real time.Implemented the async loadWeather function to fetch forecasts and handle status updates.Coded event listeners for the AI chat so users can send messages via button clicks, the Enter key, or suggestion chips.Cleaned up script typos and DOM element references to make everything run smoothly.

0
1
415
Open comments for this post

1h 44m logged

Built the dynamic weather horizon (updateHorizon) to switch sky gradients and cloud visuals in real time.Implemented the async loadWeather function to fetch forecasts and handle status updates.Coded event listeners for the AI chat so users can send messages via button clicks, the Enter key, or suggestion chips.Cleaned up script typos and DOM element references to make everything run smoothly.

0
1
415
Open comments for this post
Reposted by @Hamerenoh

1h 30m logged

Worked on the loadWeather(place) asynchronous function to manage fetching location data and updating current weather properties.Integrated fetchweather, updateHorizon, and recommendation building logic into the main loading sequence.Refined status message handling and location string formatting for the user interface.

0
1
187
Open comments for this post

1h 30m logged

Worked on the loadWeather(place) asynchronous function to manage fetching location data and updating current weather properties.Integrated fetchweather, updateHorizon, and recommendation building logic into the main loading sequence.Refined status message handling and location string formatting for the user interface.

0
1
187
Open comments for this post
Reposted by @Hamerenoh

1h 40m 16s logged

Worked inside index.html on the updateHorizon(mood) JavaScript function.Refined conditional checks for weather states like clear, partly cloudy, and overcast skies.Fixed a spelling typo in the mood condition check to ensure the dynamic sky gradients and SVG cloud elements render smoothly.

0
1
280
Open comments for this post

1h 40m 16s logged

Worked inside index.html on the updateHorizon(mood) JavaScript function.Refined conditional checks for weather states like clear, partly cloudy, and overcast skies.Fixed a spelling typo in the mood condition check to ensure the dynamic sky gradients and SVG cloud elements render smoothly.

0
1
280
Open comments for this post
Reposted by @Hamerenoh

4h 0m 10s logged

Started EthioFarm AI — an AI climate assistant for Ethiopian farmers. So
far I’ve built the core structure: a weather-fetching system using real
location + forecast data, a visual “horizon” that changes based on actual
weather conditions, and the beginning of an AI chat feature. Still
debugging the weather display right now, and I’m working through.

0
1
20
Open comments for this post

4h 0m 10s logged

Started EthioFarm AI — an AI climate assistant for Ethiopian farmers. So
far I’ve built the core structure: a weather-fetching system using real
location + forecast data, a visual “horizon” that changes based on actual
weather conditions, and the beginning of an AI chat feature. Still
debugging the weather display right now, and I’m working through.

0
1
20
Ship Pending review

Built TrustPay, a real-time mobile money payment verification tool for
small merchants in Ethiopia. It listens for Telebirr and CBE Birr payment
SMS, parses the amount/payer/sender, and pushes it live to a secured
Firebase database and web dashboard.

The most challenging part was security — I had accidentally committed a
Firebase config file with API keys, and my database rules were wide open
by default. I fixed both: removed the exposed file, locked down the
database to require authentication, and added matching sign-in logic to
both the Android app and the web dashboard so they could still read/write
after the rules were secured.

I’m proud that this went from “works on my machine” to an actually secure,
publicly hostable project — including a live dashboard (hosted on GitHub
Pages) that groups transactions by day and splits totals between Telebirr
and CBE.

To test it: open the live dashboard link, sign in with the password
provided in the project description, and you’ll see real transaction data
grouped by day with running totals.

  • 1 devlog
  • 0h
Try project → See source code →
Open comments for this post
Reposted by @Hamerenoh

19m 3s logged

Built the full SMS parsing pipeline for TrustPay — the Android app listens
for Telebirr and CBE Birr payment SMS, parses the amount/payer/sender, and
pushes it live to Firebase. This week I focused on securing it: added
Firebase Authentication so the database isn’t wide open, removed an
accidentally-committed config file with API keys, and rebuilt the web
dashboard to group transactions by day with separate running totals for
Telebirr vs CBE. Dashboard is now hosted live via GitHub Pages with a
password gate. Next: polish the README and start user-testing with the
actual shop.

0
1
44
Open comments for this post

19m 3s logged

Built the full SMS parsing pipeline for TrustPay — the Android app listens
for Telebirr and CBE Birr payment SMS, parses the amount/payer/sender, and
pushes it live to Firebase. This week I focused on securing it: added
Firebase Authentication so the database isn’t wide open, removed an
accidentally-committed config file with API keys, and rebuilt the web
dashboard to group transactions by day with separate running totals for
Telebirr vs CBE. Dashboard is now hosted live via GitHub Pages with a
password gate. Next: polish the README and start user-testing with the
actual shop.

0
1
44

Followers

Loading…