This application can be run in two ways: containerized or non-containerized.
- Docker
- Docker Compose
- Node.js v22.17.1 (use
nvm useif you have nvm installed to use the nvmrc file) - npm v10.9.2
Clone repo:
git clone https://github.com/jonasnoll/image-challenge.git
cd image-challenge-
Start the application:
docker compose up --build
-
Access the application:
- Frontend: http://localhost:5100
- Backend API: http://localhost:3030
Database is mounted via volume. To stop and remove all data (including the database):
docker compose down -v-
Install dependencies and start the application from project root:
npm install # installs both image service and ui npm run build # compiles whole monorepo npm run start # starts image service and ui
-
Access the application:
- Frontend: http://localhost:4173 (Vite preview server)
- Backend API: http://localhost:3030
Press Ctrl+C in the terminal where you ran npm run start to stop both services.
Use Vitest for automated tests on the backend service.
cd appbackend
npm run test- Backend: Node.js + TypeScript API with Express
- Database: SQLite database with persistent storage
- UI: React + TypeScript + Vite application