TheEverythingTracker Backend
Backend for playing video and interactively tracking displayed objects.
Features
- Tracking of multiple objects within a video
- Support for multiple users and videos
- Adding and removing bounding boxes at runtime
- WebSocket API for communication with the front end
- Synchronization with the front end
- Modular design
How to run
Docker
Prerequisites:
You need Docker installed on your machine. See Docker Docs for installation
instructions.
Pull the Frontend Image and run a container:
docker pull ghcr.io/theeverythingtracker/frontend:main
docker run -it -p 8080:80 --name 'TheEverythingTracker_Frontend' ghcr.io/theeverythingtracker/frontend:main
Pull the Backend Image and run a container:
docker pull ghcr.io/theeverythingtracker/backend:main
docker run -it -p 8000:8000 --name 'TheEverythingTracker_Backend' ghcr.io/theeverythingtracker/backend:main
Connect to the Frontend:
TheEverythingTracker
Without Docker (for development):
See "Set up"
Technology Overview
This application uses the following core dependencies:
- FastAPI as Framework for managing Websockets
- OpenCV for tracking and video related workloads
- uvicorn as ASGI web server for serving the application
Contributing
Guidelines
- Every feature should be described in an issue and implemented in a branch linked to that issue
Set up
- If you don't have already: Install Python
- This project uses Poetry for dependency-management. If you don't have it: Set up Python Poetry by following
these Instructions.
- Clone the project
- Create a virtual environment and install dependencies into it with
poetry install
while in the project
directory
- Run
python ./app/main.py
- Learn how to set up the Frontend
here: TheEverytingTracker/Frontend
Build a new Docker Image
Whenever new Changes are pushed to the "main" branch, a new Docker image will be built
by this GitHub Actions Pipeline.
You can find the latest Docker image here.