| backend | ||
| frontend | ||
| screenshots | ||
| .env | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| nginx.conf | ||
| README.md | ||
| remove-app.sh | ||
| start-app.sh | ||
| stop-app.sh | ||
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
/loginthe login page - logout.tsx: mounted on
/logoutfor logging out and removing the jwt token. - profile.tsx: mounted on
/profileis for the user profile info. - signup.tsx: mounted on
/signupis 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