Skip to content

aria3ppp/watchlist-server

Repository files navigation

Watchlist

Watchlist provides a convenient way for users to manage a list of movies and episodes they want to watch, and also create new movies and series.

Tests Coverage Status Lint

Code Architecture

The Watchlist API is developed in Go language and leverages the Echo router. It follows a modular, three-layer architecture with Transport, Application, and Repository layers. This design ensures single responsibility, better scalability and efficient data storage through the Repository pattern. The code is thoroughly tested with gomock and has comprehensive integration and end-to-end tests to guarantee seamless integration of third-party services and a fully functional API.

Users can sign up, log in, and authorize using JWT tokens. The API also enables token refresh to avoid repetitive logins. User security is prioritized with secure bcrypt hashing of passwords and refresh tokens.

The Watchlist API offers users a history of changes made by others to movies, series, and episodes. It has a robust search functionality powered by Elasticsearch and uses MinIO to store user avatars and movie and series posters.

Installation

prerequisite:

  • Docker and Docker compose
  • Golang >=1.19
  • Make

To clone project:

git clone https://github.com/aria3ppp/watchlist-server.git

To run the server in containers:

make server-up

To run tests:

make services-up && make test-all-cover

Now the local api documentation is available at http://localhost:8080/v1/openapi.

And OAS3.0 openapi specs is available at http://localhost:8080/v1/openapi/openapi.json.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published