Skip to content
Open
Show file tree
Hide file tree
Changes from 157 commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
2146245
fix NullPointerException bug in user-data/normalize-location
devonzuegel May 27, 2022
138d92d
add logging to debug
devonzuegel May 27, 2022
5aa5264
debug: run refresh-atom just once
devonzuegel May 27, 2022
9b72f3f
debug: rm optimizations to see if it fixes mapbox popup bug
devonzuegel May 27, 2022
e16c65f
fix react keys warning
devonzuegel May 27, 2022
d7d5c6d
tmp: hack to get around google closure bug
devonzuegel May 27, 2022
2a697d1
fix google.object dependency
devonzuegel May 27, 2022
f043235
JSify the images list for mapbox layer
devonzuegel May 27, 2022
da5bc17
cleanup externs
devonzuegel May 27, 2022
7d14e76
debug: turn off impersonation
devonzuegel May 27, 2022
e91b1e6
fix silly bug (accidentally renamed access_tokens-table to impersonat…
devonzuegel May 27, 2022
d031067
make invliad-email? check case-insensitive
devonzuegel May 27, 2022
66fdd4a
fix worker, maybe
devonzuegel May 28, 2022
9a23309
fix worker code
devonzuegel May 28, 2022
81d1d3a
update worker schedule
devonzuegel May 28, 2022
825a9b9
update worker schedule
devonzuegel May 28, 2022
cc17c16
only send emails from worker when in prod-heroku
devonzuegel May 28, 2022
7dbc94f
fix mapbox issue where images disappear at the starting zoom level
devonzuegel May 29, 2022
f7a6321
add cookie expiration for 200 years from now so users stay logged in
devonzuegel May 29, 2022
5eb9e08
add index on friends table
devonzuegel May 29, 2022
c522930
run refresh-atom at startup + 10 more times with exponential backoff
devonzuegel May 29, 2022
df1e211
improve performance of /api/v1/friends/refresh-atom
devonzuegel May 29, 2022
20d1128
fix location issue that daniel pointed out
devonzuegel May 29, 2022
c2eddb6
move refresh-atom to settings.cljs
devonzuegel May 29, 2022
610ddef
tweak email options copy + make it more clear what's tappable on the …
devonzuegel May 29, 2022
f77c29d
rm the "you added this location manually" text
devonzuegel May 29, 2022
a55f1b9
tweak the mapbox zoom params per Sebas suggestions
devonzuegel May 29, 2022
0e1a24f
add force_update to js
devonzuegel May 29, 2022
1647e0f
fix util/info-footer -> [util/info-footer]
devonzuegel May 30, 2022
5bd39ba
start fetching twitter data in bkgd, as soon as user hits welcome screen
devonzuegel May 30, 2022
ee384de
add force_update to js
devonzuegel May 30, 2022
b568949
Merge branch 'broken-2--cleanup'
devonzuegel May 30, 2022
6c158cb
add force_update to js
devonzuegel May 30, 2022
95bbce9
misc cleanup
devonzuegel May 30, 2022
6c96e13
show mapbox popups on hover
devonzuegel May 30, 2022
313a2e3
tweak cursor style when hovering on images/clusters on map
devonzuegel May 30, 2022
f2e8135
simplify ui
devonzuegel May 30, 2022
b227aaa
only start schedule if env is prod-heroku
devonzuegel May 30, 2022
aaa07b0
tweak css so that more info fits on mobile screen
devonzuegel May 30, 2022
df4bf07
tweak css for welcome screen
devonzuegel May 30, 2022
9edbe58
fix twitter-data img circle in welcome screen
devonzuegel May 30, 2022
ae50541
fix location on welcome screen
devonzuegel May 30, 2022
e428932
clean up welcome-flow-screen component-did-mount
devonzuegel May 30, 2022
193eb96
add force_update to js
devonzuegel May 30, 2022
a96c6cd
fix cookie expiry for Safari
devonzuegel May 30, 2022
01e74e3
Open links to Twitter users in a new tab
danielcompton May 18, 2022
ef5f7fa
don't remove mapbox popups that are added on click
devonzuegel May 30, 2022
b2ed0d2
Include From name in email template
danielcompton May 15, 2022
866bd45
Add a script to create the Postgres DB
danielcompton May 16, 2022
a7fe870
remove stale documentation about scheduled jobs
devonzuegel May 30, 2022
09856a7
Use Java 17 on Heroku
danielcompton May 17, 2022
aa616e1
Add IntelliJ gitignore files
danielcompton May 30, 2022
d1413c7
Use str as clojure.string alias
danielcompton May 30, 2022
191feea
Merge pull request #6 from danielcompton/dc/jvm
devonzuegel May 30, 2022
82ca194
Merge pull request #8 from devonzuegel/dc/string
devonzuegel May 30, 2022
09198ae
rm system.properties bc it is crashing the app
devonzuegel May 30, 2022
13ad663
temporarily disable start-scheduled-worker
devonzuegel May 31, 2022
ad54d4a
fix blank email issue that max pointed out
devonzuegel May 31, 2022
a59ee9d
update schedule
devonzuegel May 31, 2022
a512248
put back email sending + saving updated friends to db
devonzuegel May 31, 2022
0cada86
fix styles on settings page
devonzuegel May 31, 2022
d2663c9
fix email address bug in worker
devonzuegel May 31, 2022
05f2f32
tweak location-placeholder
devonzuegel May 31, 2022
08d7896
small tweaks
devonzuegel May 31, 2022
b814b9b
small tweaks
devonzuegel Jun 1, 2022
5cfd1a5
small tweaks
devonzuegel Jun 1, 2022
40e54eb
start friends-list in collapsed state instead of expanded
devonzuegel Jun 1, 2022
29e22b5
tweak "start following a location" copy
devonzuegel Jun 1, 2022
66a59bb
add force_update to html imports
devonzuegel Jun 1, 2022
9fa86be
small tweaks from Twitter guinea pig feedback
devonzuegel Jun 1, 2022
4bf59dc
make mapbox expand/zoom buttons bigger and easier to click
devonzuegel Jun 1, 2022
aba7141
tweak styles for .friends-list loader
devonzuegel Jun 1, 2022
bd7a346
reorder email-options and email-address fields + add logout button
devonzuegel Jun 2, 2022
c5d791a
tweak nav sizing
devonzuegel Jun 2, 2022
5cd6cc8
small tweaks + #debug logic
devonzuegel Jun 2, 2022
1fc6721
add max results cap in fetch-friends-from-twitter
devonzuegel Jun 2, 2022
70a13f2
tweak friends-list loading state
devonzuegel Jun 2, 2022
d37abe2
fix email on welcome-screen + clean up autofocus + rm stale console.log
devonzuegel Jun 2, 2022
f7676f2
refactor normalize-location + add more cases
devonzuegel Jun 3, 2022
223de43
add trim-trailing-slash middleware
devonzuegel Jun 4, 2022
ae7b8a4
add metosin/reitit dependency
devonzuegel Jun 4, 2022
038185d
frontend routing
devonzuegel Jun 4, 2022
3d129c7
cleanup
devonzuegel Jun 4, 2022
d88f07d
cleanup
devonzuegel Jun 4, 2022
e8d6d0c
add to README cheatsheet
devonzuegel Jun 4, 2022
2eef9eb
wip: comment out usage of abridged-friends-cache
devonzuegel Jun 4, 2022
6866f02
add JAVA_OPTS to env vars
devonzuegel Jun 4, 2022
fe8c540
add cheatsheet for how to run prod jar locally
devonzuegel Jun 4, 2022
0a4d918
add worker-endpoint + add worker that garbage collects every minute
devonzuegel Jun 4, 2022
fb5c856
only send email for location updates, not name updates
devonzuegel Jun 4, 2022
464584c
more small improvements to normalize-location
devonzuegel Jun 4, 2022
58b7a31
cleanup commented-out code
devonzuegel Jun 5, 2022
a5058c7
cleanup commented-out code
devonzuegel Jun 5, 2022
1b3c7f9
cleanup unused code
devonzuegel Jun 5, 2022
c3fa799
rename /api/v1/friends/refresh-atom to /api/v1/friends
devonzuegel Jun 5, 2022
7fb065b
fix name-location parsing (e.g. "Devon in Buenos Aires"
devonzuegel Jun 5, 2022
a9892a4
add force_update to html imports
devonzuegel Jun 5, 2022
c538e45
fix smol bug in location-from-name
devonzuegel Jun 5, 2022
57d2af3
update Procfile to limit memory used by Java
devonzuegel Jun 5, 2022
ef37827
rm send emails
devonzuegel Jun 5, 2022
da61330
auto-update updated_at for friends table
devonzuegel Jun 6, 2022
353c69e
add indexes to all tables
devonzuegel Jun 6, 2022
fd70bbb
add " at " as a splitter for location normalization
devonzuegel Jun 6, 2022
e3ef24a
cleanup location merging upon login
devonzuegel Jun 6, 2022
1991b43
add info icon to friends-list
devonzuegel Jun 6, 2022
22a9f36
add content to info tooltips
devonzuegel Jun 6, 2022
51f4e03
add force_update to html imports
devonzuegel Jun 6, 2022
cfe72e6
fix tooltip location
devonzuegel Jun 6, 2022
8e56549
fix tooltip location
devonzuegel Jun 6, 2022
9346692
make info icon a bit bigger
devonzuegel Jun 6, 2022
76af196
add friend bubbles to friend-list
devonzuegel Jun 6, 2022
f19b717
tweak friend bubble styles + make map bigger
devonzuegel Jun 6, 2022
86f13fa
make map controls easier to see
devonzuegel Jun 6, 2022
47fd431
make map a little smaller so it's not covered up by safari controls
devonzuegel Jun 6, 2022
2a21b3d
small tweaks to friend bubbles
devonzuegel Jun 6, 2022
7366750
add limit to # of user bubbles that can be rendered
devonzuegel Jun 6, 2022
53c401c
polish friends-list expansion transition
devonzuegel Jun 8, 2022
bf94fb5
small css tweak
devonzuegel Jun 8, 2022
9873c21
add force_update to html imports
devonzuegel Jun 8, 2022
e7f977c
speed up map loading animations
devonzuegel Jun 8, 2022
49d31c3
add force_update to html imports
devonzuegel Jun 8, 2022
9eba4e1
add loader when twitter_avatar is blank on welcome-flow-screen
devonzuegel Jun 8, 2022
07c21c7
add force_update to html imports
devonzuegel Jun 8, 2022
a20a94e
update heroku restart script
devonzuegel Jun 9, 2022
458500f
actually fetch friends from twitter when welcome page loads (which I …
devonzuegel Jun 9, 2022
428ec18
make html bkgd green by default while we wait for the full CSS to load
devonzuegel Jun 9, 2022
ed4a9c5
add bin/open-prod-db.sh & bin/open-local-db.sh
devonzuegel Jun 9, 2022
8851305
increase time on bin/restart-heroku-continuously.sh
devonzuegel Jun 9, 2022
5b89ee2
add resources/public/heroku-errors/application-error.html
devonzuegel Jun 9, 2022
909697e
rm noisy get-session logging + cleanup old atom stuff
devonzuegel Jun 9, 2022
6a635a1
misc cleanup
devonzuegel Jun 9, 2022
cc8bdda
make /api/v1/friends a stream instead of a string - maybe will fix me…
devonzuegel Jun 9, 2022
4b0a949
only run the exponential backoff refresh-friends 5 times instead of 1…
devonzuegel Jun 9, 2022
4c7df33
add custom apple-touch-icon
devonzuegel Jun 9, 2022
3376e5a
save ourselves an allocation in get-users-friends--not-memoized
devonzuegel Jun 9, 2022
214ce4b
run jar with more RAM, since SW is now on a bigger dyno
devonzuegel Jun 10, 2022
596d076
add bin/open-prod-db.sh & bin/open-local-db.sh
devonzuegel Jun 9, 2022
9e116c4
increase time on bin/restart-heroku-continuously.sh
devonzuegel Jun 9, 2022
afde4e1
add resources/public/heroku-errors/application-error.html
devonzuegel Jun 9, 2022
51fe32b
rm noisy get-session logging + cleanup old atom stuff
devonzuegel Jun 9, 2022
d116059
misc cleanup
devonzuegel Jun 9, 2022
46e78e6
trim "area" from end of locations
devonzuegel Jun 10, 2022
f357e52
clean up Bing error so it isn't so noisy
devonzuegel Jun 10, 2022
8a8cd3a
run jar with slightly less ram, to avoid "Memory quota exceeded"
devonzuegel Jun 10, 2022
9324dd9
temporarily rm atom memoization for coordinates
devonzuegel Jun 10, 2022
258fe21
normalize location before fetching coordinates
devonzuegel Jun 10, 2022
6c8ba6d
reduce # of exponential backoff retries
devonzuegel Jun 10, 2022
0fd3575
put back atom-memoized for coordinates
devonzuegel Jun 10, 2022
9284751
change max heap size
devonzuegel Jun 10, 2022
e4e5412
put back impersonation capability for debugging memory leak
devonzuegel Jun 10, 2022
52b7e97
go back to 300M java limit
devonzuegel Jun 10, 2022
69c281e
Merge branch 'this-made-it-worse'
devonzuegel Jun 10, 2022
97442fc
add bin/restart-heroku.sh
devonzuegel Jun 14, 2022
2ef1fda
remove bin scripts for restarting heroku, since it is now handled by …
devonzuegel Jun 14, 2022
66aac5e
fixes issue #13 ("Solana" locations)
devonzuegel Jun 14, 2022
3040767
Add schemas for db tables and encapsulate db operations
devonzuegel Aug 27, 2022
3783faa
Only query what is needed from the database
devonzuegel Aug 27, 2022
7cbb5c1
small tweaks
devonzuegel Aug 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@ dev/.DS_Store
figwheel_server.log
.rebel_readline_history
resources/public/js
bin/set-env-variables.sh
bin/set-env-variables.sh

# IntelliJ files
.idea/*
*.iml
2 changes: 1 addition & 1 deletion Procfile
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web: java $JVM_OPTS -jar target/smallworld.jar -m smallworld.web
web: java -Xmx300M -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8 -jar target/smallworld.jar -m smallworld.web
27 changes: 20 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@ https://smallworld.kiwi
- [update code running in the repl](#update-code-running-in-the-repl)
- [deploy to Heroku](#deploy-to-heroku)
- [initial designs](#initial-designs)
- [emails & scheduled jobs](#emails--scheduled-jobs)
- [emails](#emails)
- [sql cheatsheet](#sql-cheatsheet)
- [misc commands cheatsheet](#misc-commands-cheatsheet)

## run, build, & deploy
### local setup

1. `lein install`
2. install postgres: https://postgresapp.com (database)
3. create local postgres db called `smallworld-local`
3. run `bin/setup` to create a local postgres db called `smallworld-local`
### local development
1. run `bin/start-dev.sh`
- sets the environment variables
Expand Down Expand Up @@ -84,11 +85,9 @@ bin/make-and-deploy.sh
| - | - | - |
| | | |

## emails & scheduled jobs
## emails
- the server sends emails via SendGrid. view/edit the templates here:
https://mc.sendgrid.com/dynamic-templates
- jobs are scheduled through the Heroku Scheduler:
https://dashboard.heroku.com/apps/small-world-friends/scheduler

## sql cheatsheet

Expand All @@ -114,8 +113,7 @@ https://dashboard.heroku.com/apps/small-world-friends/scheduler
- make a user go through welcome flow again:

```sql
update settings
set welcome_flow_complete = false
update settings set welcome_flow_complete = false
where screen_name = 'devon_dos';
```

Expand All @@ -142,3 +140,18 @@ https://dashboard.heroku.com/apps/small-world-friends/scheduler
ALTER TABLE "settings" ADD COLUMN locations jsonb;
```

## misc commands cheatsheet

- run command line inside of Heroku:
```
heroku ps:exec --app=small-world-friends
```
- view environment variables for process with pid 4:
```
cat /proc/4/environ | tr '\0' '\n'
```
- run prod jar locally:
```sh
lein uberjar # builds the jar
java -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8 -jar target/smallworld.jar -m smallworld.web
```
1 change: 1 addition & 0 deletions bin/open-local-db.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/Applications/Postgres.app/Contents/Versions/14/bin/psql -p5432 "devonzuegel"
1 change: 1 addition & 0 deletions bin/open-prod-db.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
heroku pg:psql postgresql-fluffy-56995 --app small-world-friends
1 change: 1 addition & 0 deletions bin/set-env-variables TEMPLATE.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ export BING_MAPS_API_KEY=get from Bing Developer
export COOKIE_STORE_SECRET_KEY=generate a 16-char random string
export DATABASE_URL=set up in Heroku
export LEIN_JVM_OPTS="-XX:TieredStopAtLevel=1" # suppresses OpenJDK 64-Bit Server VM warning: https://stackoverflow.com/a/67695691/2639250
export JAVA_OPTS="-Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8" # match the max heap/stack size set by Heroku
export SENDGRID_API_KEY=get from https://sendgrid.com
3 changes: 3 additions & 0 deletions bin/setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

psql -U postgres -c "CREATE DATABASE \"smallworld-local\""
7 changes: 4 additions & 3 deletions dev/dev/repl.clj
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@

#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
(defn restart-server []
(use 'smallworld.web :reload)
(backend/stop!)
(backend/start! PORT))
(use 'smallworld.web :reload)
(println "\nrestarting server......\n")
(backend/-main))

(defn initialize-repl []
(println (str "\n\n🌎 starting the small world server (backend): http://localhost:" PORT " 🌍\n"))
(backend/start! 3001)
(backend/-main)

(println "\n\n🎨 starting the Figwheel server (frontend hot-reloading) 🎨\n")
(repl-api/start-figwheel!)
Expand Down
Binary file added latest.dump
Binary file not shown.
3 changes: 1 addition & 2 deletions project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
[twttr "3.2.3"]
[cheshire "5.10.1"]
[oauth-clj "0.1.16"]
[metosin/reitit "0.5.18"]
[cljsjs/mapbox "0.46.0-0"]
[ring/ring-jetty-adapter "1.9.5"]
[ring/ring-ssl "0.3.0"]
Expand Down Expand Up @@ -44,12 +45,10 @@
:source-paths ["src"]
:figwheel true
:compiler {:main "smallworld.frontend"
;; :preloads [devtools.preload]
:asset-path "js/out"
:output-to "resources/public/js/main.js"
:output-dir "resources/public/js/out"
:optimizations :none
;; :recompile-dependents true
:source-map true}}]}}
:uberjar {:env {:production true}
:source-paths ["src"]
Expand Down
Loading