/COMP0022-Group4

Movie Analytics Web App for COMP0022

Primary LanguageJupyter Notebook

COMP0022 - Group 4

Note: GitHub Insights are not full accurate representations of the work distribution, as a big chunk of work was done over Visual Studio Live Share.

Team Members: Thowhid Ahmed, Daulet Batayev, Michael Khot, Hamza Nasir.

Demo

Home Page Demo Library Page Demo

Used Technologies

  • PostgreSQL DBMS
  • pgAdmin
  • Python FastAPI (async functions and connection pools)
  • React, TailwindCSS
  • Docker & Docker Compose (Persistent Database via Volumes)
  • Redis Caching (connection pools and autoreconnecting enabled)
  • Jaeger Logging and Monitoring
  • Cronjob for Database Backups
  • Additional Bash Shell Scripts for Easy Deployment

Getting Started

Prerequisites

Clone the Repository

git clone git@github.com:dau1et/COMP0022-Group4.git
cd COMP0022-Group4

Create the Required Data

Run the script to request the movie data and create CSVs:

cd csv_data
python3 create_csv_tables.py

Startup the Database, Backend, Redis, and Jaeger Services

This can be done by running a single command in the /dev directory:

cd ../dev
docker-compose up --build

NOTE: The .env file is only included for demonstration purposes. Since this file contains sensitive information, it would not be included for production.

(OPTIONAL) To enable database backups, run:

./start_backups.sh

Startup the Client

Install the necessary packages for the client and run the start command:

cd ../client
npm install
npm run start

Navigate to Web App

Go to http://localhost:3000 and enjoy the Movie Analytics app :)

API documentation can be accessed at http://localhost:3001/docs

Application monitoring can be accessed at http://localhost:16686