DShop is a modern, full-stack e-commerce platform designed for scalability, security, and a seamless user experience. It features a professional React/Tailwind CSS frontend and a robust FastAPI backend, supporting advanced authentication, payments, inventory, and admin management. Built for rapid development and enterprise deployment, DShop is ideal for startups and organizations seeking a production-ready commerce solution.
frontend coming soon...
- Modern UI/UX: Responsive, accessible, and visually appealing frontend
- Authentication: JWT, refresh tokens, 2FA, email verification, password reset
- Role Management: User/admin roles, RBAC, audit logging
- Product & Inventory: CRUD, image upload, inventory tracking
- Cart & Orders: Cart management, order processing, status tracking
- Payments: Stripe & PayPal integration, webhook verification
- Email Notifications: Order confirmations, payment receipts, status updates
- Admin Dashboard: User, product, order, and payment management
- Security: CSRF, CORS, rate limiting, password strength, global error handling
- Extensible: Modular architecture for easy customization
graph TD;
A[React + Tailwind Frontend] -- REST API --> B[FastAPI Backend]
B -- DB ORM --> C[(PostgreSQL/SQLite)]
B -- Payments --> D[Stripe/PayPal]
B -- Email --> E[SMTP/Mailtrap]
B -- Static/Media --> F[Cloud/Local Storage]
- React 19
- Tailwind CSS 4
- Vite
- Axios
- Formik & Yup
- ESLint
- FastAPI
- SQLAlchemy & Alembic
- Pydantic
- Stripe, PayPal SDKs
- Jinja2 (emails)
- Mailtrap (dev email)
- Uvicorn (ASGI server)
- Node.js (>=18), Yarn
- Python 3.10+
- PostgreSQL or SQLite (default)
git clone https://github.com/Adeleye080/DShop.git
cd DShop
cd backend
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
cp .env.example .env # Fill in secrets
uvicorn main:app --reload
cd ../frontend
yarn install
yarn dev
- Backend: Configure
.env
with DB, SMTP, Stripe, PayPal, JWT secrets (seebackend/.env.example
). - Frontend: API base URL is set in
src/api/index.js
(http://localhost:8000/api/v1
). Update as needed for production.
- Docs: http://localhost:8000/docs
- Endpoints:
/api/v1/auth/
,/api/v1/products/
,/api/v1/orders/
,/api/v1/payments/
,/api/v1/admin/
, etc. - Auth: JWT Bearer tokens, refresh logic, 2FA (TOTP)
- Payments: Stripe/PayPal webhooks (public endpoint required for local dev)
- Email: SMTP (Mailtrap for dev), Jinja2 templates
.
├── backend/
│ ├── api/ # Routers: auth, products, cart, orders, payments, admin
│ ├── core/ # DB, security, logging, email utils
│ ├── models/ # SQLAlchemy models
│ ├── schemas/ # Pydantic schemas
│ ├── templates/ # Jinja2 email templates
│ ├── static/ # Static/media files
│ ├── main.py # FastAPI entrypoint
│ └── ...
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── api/ # API integration (index.js, auth.js, products.js)
│ │ ├── pages/ # Page components
│ │ └── ...
│ ├── tailwind.config.js
│ ├── vite.config.js
│ └── ...
└── README.md
- Frontend: Build with
yarn build
, deploydist/
to your host (Vercel, Netlify, etc.) - Backend: Deploy with Uvicorn/Gunicorn, set environment variables, use HTTPS, configure CORS, secure secrets
- Database: Use Alembic for migrations
- Payments: Set production webhook URLs
- Fork the repo & create a feature branch
- Follow code style and commit conventions
- Ensure all tests pass
- Open a pull request with a clear description
MIT
Built with ❤️ by Ajiboye Pius
Please star this repository 🌟