Skip to content
What Should I Watch Next? Expert System built using Python/Flask and Prolog.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
client
server Fix start command for flask Apr 9, 2019
.dockerignore Add docker support Jan 6, 2019
.editorconfig
.flake8 Update python to v3.7.3 Apr 9, 2019
.gitattributes Initial Commit Oct 6, 2018
.gitignore
.pre-commit-config.yaml Update python to v3.7.3 Apr 9, 2019
Dockerfile
Dockerfile.prod Fix start command for flask Apr 9, 2019
Pipfile Fix start command for flask Apr 9, 2019
Pipfile.lock Update packages Apr 21, 2019
README.md Update readme Apr 9, 2019
docker-compose.yml
pyproject.toml Update line length to 80 Apr 9, 2019
sample.env Restructure Flask using blueprints Jan 6, 2019

README.md

WSIWN

What Should I Watch Next?

Table of Contents

Usage

  • Install Docker and Docker Compose

  • Run web app

    $ docker-compose up

    or

  • Run Prolog

    $ docker-compose run api bash
    $ swipl server/prolog/movies.pl
    $ swipl server/prolog/tv.pl

    Execute queries

    ?- movies(X, Z).
    ?- movies(X, L, G, D, Y).
    
    ?- tv(X, Z).
    ?- tv(X, L, G, D, S, T).

    where

    • X: Output variable (byte string)
    • Z: Input Search term (str)
    • L: Language (str)
    • G: Genre (str)
    • D: Duration {short, avg, long}
    • Y: Year (int)
    • S: Number of Seasons (int)
    • T: Status {ended, airing}

Technology Stack

Working

REST API Endpoints


Method[name] URI Description
GET[movies] /api/movies?query=string Display Movies matching query string
GET[tv] /api/tv?query=string Display TV shows matching query string
POST[movies] /api/movies Search Movies with params (at least 1): [language(str), genre(str), duration{short, avg, long}, year(int)]
POST[tv] /api/tv Search TV shows with params (at least 1): [language(str), genre(str), duration{short, avg, long}, seasons(int), status{airing, ended}]
You can’t perform that action at this time.