zkt24/README.md
2024-04-10 11:23:23 +02:00

1.6 KiB

CopyBook

A messageboard type social website

Backend

Fully coded in golang utilizing the following technologies:

The backend consists of multiple modules:

  • db.go: database modules setup with gorm
  • auth.go: authorization module with jwt tokens setup
  • server.go: main buisness logic functionality

Frontend

Typescript + nextjs + tailwindcss

the frontend uses nextjs for server side rendering.

there are multiple pages each responsible for its own functionality:

  • index.tsx: mounted on / is the homepage for the messageboard.
  • login.tsx: mounted on /login the login page
  • logout.tsx: mounted on /logout for logging out and removing the jwt token.
  • profile.tsx: mounted on /profile is for the user profile info.
  • signup.tsx: mounted on /signup is for registering new users.

Devops

Fully dockerized and ready for deployment on any environment

backend setup consists of 2 containers one that builds the golang binary for and another that runs the server

the database for the backend is running a postgresql server with persistent storage enabled

frontend setup has 3 containers: deps: pulls the dependecies required for compiling the typescript files. builder: compiles the typescript files. runner: runs the nextjs server.

all of the previous services are running on internalnet virtual network and then afterwards its served with a nginx reverse proxy for traffic management and redundancy purposes

TODO

  • better db management
  • more documentation
  • user personalization
  • more ui changes