A full-stack web application for managing and analyzing URLs/websites. This repository serves as the main project that orchestrates the frontend and backend components as Git submodules.
This project is structured as a monorepo with separate Git repositories for frontend and backend:
-
Setup Repository:
sykell-challenge(this repo) -
Backend Submodule:
sykell-challenge/backend -
Frontend Submodule:
sykell-challenge/frontend
- Docker and Docker Compose
- Git
-
Clone the main repository with submodules
git clone --recursive https://github.com/sykell-challenge/sykell-challenge.git cd sykell-challengeIf you already cloned without
--recursive, initialize submodules:git submodule update --init --recursive
-
Start the complete application
docker compose up --build
This will start:
- MySQL database on port
3306 - Backend API on port
8080 - Frontend application on port
3000
- MySQL database on port
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Database: localhost:3306 (username:
sykell, password:sykellpass)
docker compose -f docker-compose.prod.yaml up --build# Initialize and pull all submodules
git submodule update --init --recursive
# Or step by step
git submodule init
git submodule update# Method 1: Update to latest commits from remote (recommended)
git submodule update --remote --merge
# Method 2: Pull changes in each submodule individually
git submodule foreach git pull origin main
# Method 3: Update specific submodule
cd backend # or frontend
git pull origin main
cd ..
git add backend # stage the updated submodule reference
git commit -m "Update backend submodule to latest"