Local Development

Prerequisites

Before running Movie Tracker (dev version), ensure the following software is installed:

Software

Version

Docker

Latest stable version

Docker Compose

Latest stable version

Python

>= 3.10

Node.js

>= 20.x LTS

npm

Included with Node.js

TMDB API Key

Required

Installation Steps

Using a bash terminal :

1. Clone the project

git clone https://github.com/DanielSchmerber/SQS26_MovieTracker.git

2. Open project’s folder :

cd SQS26_MovieTracker

3. Start the application

The Docker development mode builds both applications from the current source code:

./movietracker.sh up dev

To run the backend and frontend separately, follow the steps below.

Run the Backend

cd backend/sqs-movietracker

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

alembic upgrade head
uvicorn main:app --reload --port 8000 --log-level debug

The backend requires the variables defined in the .env file. Since it is started from its own subdirectory, these variables must either be set in the shell or provided through a .env file within the backend directory.

Backend tests are executed from the same directory:

python -m pytest tests

Run the Frontend

In a second terminal:

cd frontend/sqs-movietracker
npm install
npm run dev

The local frontend server is available at:

http://localhost:3000

API requests are forwarded to the backend running on port 8000.

Additional frontend commands:

Command

Description

npm run build

Creates a production build

npm run test

Runs the Vitest test suite

npm run lint

Checks the source code using ESLint

npm run format

Formats the source code and applies automatic ESLint fixes

npm run check

Verifies formatting using Prettier

New shadcn/ui components can be added, for example, using:

npx shadcn@latest add button

Project Structure

.
├── backend/sqs-movietracker/    FastAPI backend
├── frontend/sqs-movietracker/   React frontend
├── docs/                        Architecture documentation
├── docker-compose.yml           Shared Docker Compose configuration
├── docker-compose.dev.yml       Docker Compose extension for development mode
├── docker-compose.prod.yml      Docker Compose extension for production mode
└── movietracker.sh              Docker stack management script

!!! tip

Detailed architecture and quality documentation can be found in the `/docs/arc42/` directory.