Although tbh, one of the reasons I had it was because I tried to orient the setup towards a non-technical audience, so I wanted a 'clickable' solution, like giving full disk access.
Once again, these are minor nits and didn't detract from my enjoyment at all. Just thought you might appreciate the chance to fix some easy errors.
And yep, I think fixing some of those time errors is where I'll start. I feel that pandas is better optimized for handling dates than times, which explains some of my wonky work arounds.
Days of the week is also interesting - did you have a full year of imessages on your computer or do you auto-delete after a certain period?
The map is puzzling and I'm working to debug. It seems that it works occasionally on reload and that it works consistently if all fade-in animations are removed from page.
I put this together in the last two weeks, so it's definitely been rushed. Thanks again for the feedback!
Unfortunately area code of a cell phone number isn't a great indicator of where the owner lives (though to be fair you can't really tell otherwise). Relevant XKCD entry: https://xkcd.com/1129/ In my case my area code (650) is where I went to college, and many if not most of my friends and colleagues seem to be in a similar position.
What I will say is that I recently graduated from college, so my data was actually fairly descriptive - friends' hometowns (where a number of them have moved back) + a whole lot of international students in my college town who got US numbers.
Stack is Flask, Jinja, chart.js, leaflet.js and bootstrap. The app runs locally, and accesses the chat and contact SQLite DBs on OS machines. I've been programming for about 18 months, but this was is the first side project I've released into the wild, so it's been an awesome learning experience.
Link to the repo is here
https://github.com/michael-danello/iMessageWrapped