Modern e-commerce platform I built with React, TypeScript, Node.js, Express, and Supabase. Fast, secure, and made to actually work for both users and developers.
Try it out right now:
- Frontend: https://shop-app-te6c.vercel.app
- Backend API: https://shop-app-0fiy.onrender.com
VALORÉ is a full-featured e-commerce platform designed for both shoppers and developers. I built this to showcase modern web development practices: clean code, proper authentication, real inventory management, and actual order processing. It's production-ready but also a great learning resource.
View all deployment URLs in DEPLOYMENT_URLS.md
Frontend
- Product catalog with filtering & search
- Real-time shopping cart
- Supabase authentication
- Order tracking & history
- Mobile-responsive design
- Error handling & skeleton loaders
- Category browsing
Backend
- Clean REST API
- Input validation on all endpoints
- Stock management & inventory tracking
- JWT token refresh
- Rate limiting & security headers
- Supabase integration
Frontend: React 18, TypeScript, Vite, React Router, Zustand, Axios
Backend: Node.js, Express.js, Supabase, JWT, express-validator, Helmet
DevOps: Git, npm, Docker
- Node.js 18+
- npm/yarn
- Git
git clone https://github.com/dashaaaa21/shop-app.git
cd shop-app
# Frontend
cd client
cp .env.example .env
npm install
# Backend (new terminal)
cd server
cp .env.example .env
npm install
# Terminal 1 - Backend
cd server && npm run dev
# Terminal 2 - Frontend
cd client && npm run dev- Frontend: http://localhost:3000
- Backend: http://localhost:5001
See DEPLOYMENT.md for detailed setup.
shop-app/
├── client/
│ ├── src/
│ │ ├── api/ # API calls
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── store/ # Zustand stores
│ │ ├── types/ # TypeScript types
│ │ └── App.tsx
│
├── server/
│ ├── src/
│ │ ├── controllers/ # Route handlers
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Auth & validation
│ │ ├── config/ # Config files
│ │ └── server.js
│
├── DEPLOYMENT.md # Setup & deployment guide
└── README.md
Base URL: http://localhost:5001/api
Auth
POST /auth/register- Sign upPOST /auth/login- Log inPOST /auth/refresh- Refresh tokenGET /auth/me- Get user
Products
GET /products- List productsGET /products/:id- Get product
Cart
GET /cart- View cartPOST /cart- Add itemPUT /cart/:itemId- Update quantityDELETE /cart/:itemId- Remove item
Orders
POST /orders- Create orderGET /orders- View ordersGET /orders/:id- Get order details
Frontend (.env)
VITE_API_URL=http://localhost:5001/api
VITE_SUPABASE_URL=your_url
VITE_SUPABASE_ANON_KEY=your_keyBackend (.env)
NODE_ENV=development
PORT=5001
CLIENT_URL=http://localhost:3000
JWT_SECRET=your_secret
SUPABASE_URL=your_url
SUPABASE_SECRET_KEY=your_keyDevelopment
cd client && npm run dev
cd server && npm run devProduction
cd client && npm run build
cd server && npm startCheck DEPLOYMENT.md for cloud options: Vercel, Railway, Render, Docker
View Deployed Apps
./open-deployment.shThis automatically opens your frontend and backend in the browser.
- JWT authentication
- Password hashing (bcryptjs)
- Parameterized queries (no SQL injection)
- XSS protection
- CORS configured
- Rate limiting
- Input validation
- Helmet security headers
- No payment processing (demo only)
- No admin dashboard
- No email notifications
- English only
- Email notifications
- Admin dashboard
- Product reviews
- Wishlist
- Multi-language
- 2FA
- E2E tests
- CI/CD pipeline
- Fork the repo
- Create feature branch:
git checkout -b feature/awesome - Commit:
git commit -m 'Add: awesome feature' - Push:
git push origin feature/awesome - Open PR
Built by Dasha Tkachenko
- GitHub: @dashaaaa21
Made with coffee and love

