I made a thing last week and Earth Day seems like a great day to announce it. 🌏

https://Whereabouts.Earth is a fun (for me at least) app for learning the location of every country on Earth.

It uses a very effective learning technique (spaced repetition), but you don't need to know how that part works. It will work.

My geography knowledge has improved a LOT over the past week.

Join me in learning about the only home we'll ever have.

(And please share your feedback if you actually use this)

Whereabouts?

Learn where every country is, a few minutes at a time.

Whereabouts

@treyhunner I love this! I previously learned all the countries of the world the other way around (I’m given the country name and I have to tap it on the map) and your app definitely helps strengthen my knowledge!

I did notice one bug where sometimes the text box doesn’t appear. Please let me know if there’s any other helpful info I can provide!

@frameadvance ack I've hit that "sometimes the text box doesn't appear" issue. It happens for me about 1 in every 100 times it's supposed to appear and I was hoping I fixed it yesterday. How often are you seeing it? And is that Safari on an iOS device?

Just FYI if it happens again: tap the map. That should bring up a "Keep going" or "Stop" prompt and if you click "Keep going" the input will appear again. At least that's worked for me each time.

I'll see if I can figure it out. It's confusing!

@treyhunner Yes, I’m on an iPad Air 3rd generation, iOS 18.7.7. And it seems to happen more often than 1 in 100 for me. (Happened first try just now, and I can confirm that your workaround did work.)

But again, my mind is boggled at how good this app is! Awesome work!

@treyhunner @frameadvance FYI I just had the no-keyboard bug on Android, using Firefox. (The workaround of tapping the map worked just fine and wasn't unintuitive, so I wasn't stuck.)
@Yhg1s @frameadvance good to know. I am at least able to reproduce this one on my own devices, so I'll troubleshoot and figure out a fix eventually.
@treyhunner my wife got annoyed by all the countries she still thinks of as Yugoslavia and kindly requests a version that uses maps from the 1980s please πŸ˜…
@Yhg1s πŸ€” it sounds like I need a new "Former Yugoslavia" collection πŸ’‘
@treyhunner the most minor thing, but you asked for feedback:
Antarctica has a rendering issue for me
@bengerman love it. Adding to the fix-at-some-point list. βœ…

@treyhunner follow-up feedback: I'm using the heck out of this and loving it.

Also I found a bug: upon adding the 197th country, you get an error due to a 400 from `/api/quiz/learn-new/`
I assume the client side wants me to finish my batch of 5, and the server knows I don't have any new countries to learn or something like that

@bengerman Interesting! Opening in issue now.

Thanks!

@treyhunner Please, Trey, I'm supposed to be working! This is too good. Slick, fast, effective…

@adamchainz πŸ’—

learning IS a form of working... sort of.

@treyhunner, this is fantastic. I played it just now and thoroughly enjoyed it. Is this built with a framework that could be mastered by Python beginners? I teach a beginner Python course to students in a library and information science masters program. They each choose their own final project. This is the kind of learning game that many of them would like to create as their final project. Is it built with tools that a beginner could master at the end of a Python course?
@_KevinTrainor Parts of it could certainly be made by Python beginners, but all of the heavy lifting in the UI is front in JavaScript & CSS. It's about 40% JS, 20% HTML, 40% Python/Django (not counting the 20% that's CSS but not we're at 120%).
@treyhunner Then it is probably beyond their skill sets. It is a great piece of work. Thanks for sharing it.
@treyhunner That’s so cool, is it open source? Would love to see how you did it :)
@philip It isn't open source. I'm considering making a page that lists the tech it uses. It's pretty much MapLibre, Alpine.js, Tailwind, Python, Django, the fsrs Python library (for the space repetition algorithm), and some public geojson data for the various borders... also a bunch of code mess to work around specific cases where small countries were too zoomed in or not zoomed in enough and such.