summaryrefslogtreecommitdiff
path: root/content/projects/forum/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/projects/forum/index.md')
-rw-r--r--content/projects/forum/index.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/content/projects/forum/index.md b/content/projects/forum/index.md
new file mode 100644
index 0000000..caa6288
--- /dev/null
+++ b/content/projects/forum/index.md
@@ -0,0 +1,46 @@
++++
+title = "forum"
+[taxonomies]
+categories = ["game"]
+languages = ["jsx", "sass", "python"]
+[extra]
+wip = true
+git = ["forum"]
++++
+
+this is a little CRUD project i wrote when trying to refresh my full stack skills
+
+i used react and three.js (via [react three fiber](https://r3f.docs.pmnd.rs/getting-started/introduction)) for the frontend and flask for the backend
+
+i was originally using mongodb for the database but ran into issues with it being unsupported on the raspberry pi 4's architecture so i had to rewrite the backend to use sqlite instead
+
+you can play it in your browser (on desktop): [https://forum.soaos.dev](https://forum.soaos.dev)
+
+it's a game where you can walk around a 3D environment and place text notes around for others to read
+
+you can edit and remove notes that you wrote as well
+
+![image of the forum's rolling hills](./hills.png)
+
+i was inspired by this one minigame from [the beginner's guide](https://en.wikipedia.org/wiki/The_Beginner%27s_Guide) where you walk around and read notes that were supposedly left by other users
+
+there was some point in the game about it really just being one guy talking to himself or something but i just thought it would be a really cool thing if it was real
+
+![image of looming pyramid](./pyramid.png)
+
+my friends had a lot of fun defacing the place
+
+some people got a bit clever and started making manual api requests to put messages in impossible places
+
+![image of unspeakable evil](./evil.png)
+
+i had to implement server-side validation of message positions which was less of a pain in the ass than i had hoped
+
+i went the naive route of just loading the terrain model into the backend and using the open3d library to do a distance check
+
+there's still a fair amount of polish to put on this project but people seemed to enjoy it a lot
+
+it would be cool if someone stumbled on this project a long time from now and saw what people were writing
+
+i know i would be fascinated
+