Skip to content

veeseekay/fooflix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fooflix

Foobar recommendation engine (http://localhost:8080/fooflix/v1)

uri GET POST PUT DELETE
/movies paginated movies add new movies bulk update (only movie title can be changed) 400 bad request
/movies/{id} show movie 400 bad request update if exists, else 404 not found 400 bad request
/movies/{id}/cast show cast add cast 400 bad request 400 bad request
/movies/{id}/crew show crew add crew 400 bad request 400 bad request
/users/ paginated users add new user bulk update (only user name can be changed) 400 bad request
/users/{id} show user 400 bad request update if exists, else 404 not found 400 bad request
/movies/{id}/ratings paginated ratings add new rating by a user 404 not found 404 not found
/movies/{id}/reviews paginated reviews add new review by a user 404 not found 404 not found
/recommendations/actor paginated movie reco by actor 400 bad request 400 bad request 400 bad request
/recommendations/genre paginated movie reco by genre 400 bad request 400 bad request 400 bad request

Build & Run

Test Application

  • Import postman collections
  • Run Load Me request to load sample data set
  • View movies, user, ratings, reviews, up/down votes created in the neo4j browser
  • Start running the postman requests in order
  • Run [POST] movie cast and view changes in neo4j browser, you should see "Paul Goddard" added as cast "Agent Brown" for movie id 603
  • Run [POST] movie crew and view changes in neo4j browser, you should see 2 additional directors for movie id 603
  • Run the get paginated, update and create movie requests. Ensure you send the right movie "id" in the request body for update
  • Run the get paginated, update and create user requests. Ensure you send the right user "id" in the request body for update
  • Play around with rest of the requests for reviews and ratings

The Stack

These are the components of our Restful Application:

  • Application Type: Spring-Boot Java Web Application (Jetty)
  • Persistence Access: Spring-Data-Neo4j
  • Database viewer : Neo4j-Browser (http://localhost:8686, user : neo4j, pass : password)
  • Database: Embedded Neo4j-Server
  • Uses movie data from www.themoviedb.org

Postman collection

Known Issues

  • Exception seen when accessing neo4j browser java.lang.IllegalStateException: The Neo Server running is of unknown type. Valid types are Community, Advanced, and Enterprise. This does not affect the code and can be ignored
  • neo4j browser does not show up when run as an uber jar - fixed

TODO

  • Error scenarios
  • Upvotes and Downvote apis to be implemented
  • Unit tests for code coverage
  • Functional tests for stability
  • Consolidate string constants in code
  • Swagger for api-docs

About

a foobar recommendation engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages