Unlock Infinite Entertainment with NTUAFLIX: Your Gateway to Movies and Series Extravaganza! Immerse Yourself in a World of Blockbusters and Binge-Worthy Delights. Join the Streaming Revolution Now! #NTUAFLIX #Movies #Series #StreamingExcellence
Access NTUAFLIX here.

Just run:
docker compose up --buildThe frontend will be served on port 5000 and the API on port 8000.
- Python , pip
- Node.js and npm
- DBMS: PostgreSQL
python3.10 -m venv .venvFor Windows
.venv\Scripts\activateFor Unix/MacOS
source .venv/bin/activatepip install -r back-end/requirements.txtpip install pymysqlnpm install-
Create
back-end/.envfile to configure your database credentials, check the.envtemplate inback-end/README.md. -
Add the following parameters for the authentication schema in the .env file you just created:
SECRET_KEY=469155679be5db1afdb6613292c4c7805dfa71d2be7fde22d5abb522d6f23ef2 ALGORITHM=HS256 FORGET_PWD_SECRET_KEY=658955679be4fr3afdb6613292c4c7805dfa71d2be7fde2297abb535d6f23ef2 -
Create a database in your DBMS, for example
ntuaflixand save the name in theback-end/.env. For the next steps your DBMS should be running (on localhost). -
Run
back-end/models.pyto create tables of the schema. -
Place
tsvfiles for data import into a folderback-end/truncated_data -
Run
back-end/input_tsv.pyto import data into the database from the tsv files. -
Run
back-end/main.pyto run the back-end code. -
Run
back-end/mock_data_parser.pyin a new terminal to insert mock data in the database for a full app expierence demo. -
While
back-end/main.pyis running, open a new terminal and runnpm startinfront-end/folder to start the front-end.
To install the cli-client you can use the prebuilt wheel package (.whl) you can find in `cli-client/dist/'. Just run:
pip install WHEEL_FILEYou can then immediately run the cli:
ntuaflix-cli [OPTIONS]Further documentation for the cli client can be found here.
If you want to manually run the cli client enter the folder cli-client/ and run:
python3 -m ntuaflix_cli [OPTIONS]
(you may as well use the ntuaflix\_cli.sh [OPTIONS] which does exactly that.
- To test the backend enter
backend/and run:
pytestIt will create a testing instance of PostgreSQL (not just a testing db, but a whole dbms). If you want to use your own dbms instance, use the option --use-existing-dbms yes
Because the upload of the data is generally slow, it is not by default tested. Instead we preload a prebuilt test.sql file to the database. If you want to test the upload of the data, use the option --preload no.
- To test the cli client ebter
cli-client/and run:
pytestThe cli client testing requires a working API (this is not setup by the test, it has to be running; that's because generally the API would be served on a Server, and the cli client would be independently tested). We advise you to firstly test the API, to make sure there are no issues. If the API tests fails, with very high probability the cli client tests will also fail.
What's more, code coverage of the tests can be shown. You can add the option --cov=. if you want to do so.