A full-stack web application for managing products, banners, and projects with admin authentication and multi-language support (English/Khmer).
Frontend: React 19, Vite, React Router 7, Tailwind CSS 4, i18next
Backend: Node.js, Express 5, Sequelize ORM, MySQL, JWT, Cloudflare R2 (file storage)
- Product management with multi-language support, images, tags, and specifications
- Banner management linked to products
- Project management
- Contact form for visitor inquiries
- Admin authentication (login, signup, email verification, password reset)
- File uploads via Cloudflare R2
- Node.js
- MySQL
cd backend
npm install
cp .env.example .env # Configure your environment variables
npm run devcd frontend
npm install
npm run devCreate a backend/.env file with:
PORT=5000
NODE_ENV=development
# Database
DB_HOST=
DB_USER=
DB_PASSWORD=
DB_NAME=
# Auth
JWT_SECRET=
# Email (Nodemailer)
MAIL_USER=
MAIL_PASS=
# Cloudflare R2
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET_NAME=
R2_PUBLIC_URL=
R2_ENDPOINT=| Route | Description |
|---|---|
/api/auth |
Authentication |
/api/products |
Product CRUD |
/api/baners |
Banner management |
/api/projects |
Project management |