The repository provides an application that allows authenticated users to access a blog using rest API calls. The assignment covers
- creating login mechanism for users
- post creation
- upvote and post functionalities
There are a few assumptions and borders drawn around the application in the interest of time and scoping.
- Posts can only have text and no resources like images or videos in them.
- only posts can be voted. comments cannot be voted
- once a post is upvoted, it can only be downvoted by the user. the vote cannot be removed
- admin can delete any post they want but users can delete only their post
- Add snowflake id to posts, comments in db
- prepare redis write through for posts and comments
- prepare a complex post score for dynamic feed
- votes in redis to write write to db in batches
To get started to be using this project, the pre-requisites would be needed
- Go 1.20+
- Docker (optional, for containerization and/or database)
- make installation