Simple application made as a part of recrutation process.
- It is build on Lumen & Vue frameworks.
- It uses http://www.tvmaze.com/ API for taking results
Application needs for running:
- php 7.3+ server
Application needs for set up:
- composer
- Download the repository by preffered way
- https:
git close https://github.com/cichowski/tvshows.git
- ssh:
[email protected]:cichowski/tvshows.git
- or just download archive and unzip files
-
Run
composer install
-
Rename
.env.local
to.env
-
Change
APP_URL
or even other values in.env
Number of results per page returned by API:
- Set
resultsPerPage
inconfig/tvshows.php
file
Number of results per single load on view page:
- Set
resultsPerPage
in Form class initialization inpublic/js/app.js
file
API
- address:
your.doman/api/
- parameters:
q
- search phrase (required, alphanumerical)p
- ask for a specific page (positive integer, default: 1)s
- page size: number o results on single page (positive integer, default: see Configuration)
- examples:
localhost/api?q=castle
json-api.local/api?s=12&p=1&q=war
WEB
- address:
your.domain/
- For some reason http://www.tvmaze.com/ API right now returns maximum 10 results.
- Keep in mind that either this application and TV Maze caches every search query for 1 hour.
- Add list view with more information about shows
- Cover whole the rest of PHP code with unit tests
- Write tests for Vue code
- Write OpenAPI description for API endpoint
- Build Swagger documentation using above
- Throttle infinite scroll event
- Refactor app.js
- For many users: cache tv shows in advance
The Lumen framework is open-sourced software licensed under the MIT license.