A full stack website for an EV shop for buying Electric Vehicle parts and also getting quotes for EVs
# ⚡ EV Shop GH — Complete Full Stack Website
Ghana's dedicated Electric Vehicle parts store and EV sourcing service.
**Live URL:**
evshopgh.com
---
## 🚀 Quick Start
```bash
# 1. Install dependencies
npm install
# 2. Set up your environment
cp .env.example .env
# Edit .env with your Paystack secret key and email password
# 3. Start the server
npm start
# →
localhost
```
**Admin login:** `admin@evshopgh.com` / `evadmin2024`
---
## 🧱 Tech Stack
| Layer | Technology |
|-------|------------|
| Backend | Node.js + Express |
| Database | SQLite via sql.js (zero setup) |
| Frontend | HTML5 + CSS3 + Vanilla JS (SPA) |
| Auth | bcryptjs + express-session |
| Payments | Paystack (GHS + cards) |
| Email | Nodemailer (Outlook SMTP) |
| AI Chat | Claude API (claude-sonnet-4) |
| Currency | IP geolocation + open exchange rates |
| Translation | Google Translate widget |
---
## ✅ Features Checklist
### Store
- [x] Apple-inspired minimal design with electric blue accents
- [x] Animated hero with grid background and staggered reveals
- [x] Scrolling marquee of product categories
- [x] 16 pre-loaded EV parts across 6 categories
- [x] Product cards with badges, savings %, compatibility info
- [x] Category filtering + keyword search + sort
- [x] Product detail page with quantity selector
- [x] Shopping cart (session-based, works as guest)
### Payments & Orders
- [x] Paystack integration (GHS, cards, mobile money)
- [x] Guest checkout (no account needed)
- [x] Order confirmation emails to customer
- [x] Admin notification emails on new orders
- [x] Order tracking for logged-in users
- [x] Payment success/failure handling
### EV Sourcing
- [x] "Get a Quote" page — make, model, year, budget, port, notes
- [x] Quote notification email to admin (evsolutionsgh@outlook.com)
- [x] Quote confirmation email to customer
- [x] Admin panel quote management with status updates
### User Accounts
- [x] Register / Login / Logout
- [x] Secure password hashing (bcryptjs …