FRONTEND

my-react-app/
├─ .gitignore
├─ node_modules/
├─ package-lock.json
├─ package.json (root scripts orchestrate project)
├─ README.md
├─ tsconfig.json
├─ public/
│ ├─ favicon.ico
│ ├─ htaccess
│ ├─ index.html (frontend HTML entry)
│ ├─ logo192.png
│ ├─ logo512.png
│ ├─ manifest.json
│ └─ robots.txt
└─ src/
├─ App.css
├─ App.test.tsx
├─ App.tsx (main React app component)
├─ index.css
├─ index.tsx (React entry)
├─ logo.svg
├─ react-app-env.d.ts
├─ reportWebVitals.ts
├─ setupTests.ts
└─ types/
└─ Product.ts
BACKEND

SYSTEM: root@super (185.247.116.51)

├── NGINX PROXY (/etc/nginx/)
│ ├── nginx.conf (main config)
│ ├── fastcgi.conf
│ ├── sites-available/
│ │ └── justinw.uk
│ │ └── location /shop-api/products
│ │ └── proxy_pass http://185.247.116.51:3001/api/products;
│ ├── sites-enabled/
│ │ └── justinw.uk → ../sites-available/justinw.uk
│ └── snippets/
│ ├── fastcgi-php.conf
│ └── snakeoil.conf

├── NODE.JS BACKEND (/var/www/shop-api/)
│ ├── package.json
│ ├── package-lock.json
│ ├── public/
│ │ ├── index.html
│ │ ├── shop.css
│ │ └── Untitled-1.js
│ ├── src/
│ │ ├── server.js (Express server)
│ │ │ ├── const app = express()
│ │ │ ├── app.get('/api/products', ...)
│ │ │ └── app.listen(3001)
│ │ └── db.js (MySQL connection)
│ │ ├── mysql.createPool()
│ │ └── Database credentials/config
│ └── node_modules/ (500+ packages, hidden)

└── MYSQL DATABASE
├── Version: 8.0.44-0ubuntu0.22.04.1
├── Port: 3306
└── Database: [unknown_name]
└── products table
├── id
├── name
├── date
├── timestamp
├── price
├── brand
├── image
└── created_at