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
/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