summaryrefslogtreecommitdiff
path: root/content/projects/forum/index.md
blob: caa62885bc13b8a7500d87657d80c8e32a79f9ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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