A full-stack e-commerce platform with a modern, responsive design and powerful backend capabilities. This application leverages state-of-the-art technologies to deliver a seamless shopping experience.
- Authentication: Secure user authentication with
bcryptandjsonwebtoken. - Image Management: Upload and manage images using
cloudinaryandnext-cloudinary. - Payments: Integrated with
stripefor secure and reliable payments. - State Management: Powered by
zustandfor a lightweight and efficient state management solution. - Rich User Interface: Built using
react-iconsand enhanced with animations usingswiper. - Email Notifications: Send automated emails with
nodemailer.
- Next.js (v14.2.3): React framework for server-side rendering and static site generation.
- React (v18): Frontend JavaScript library for building user interfaces.
- React DOM (v18): React's package for DOM manipulation.
- React Icons: A library for easily using popular icons.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- DaisyUI: Tailwind CSS components for a more customizable UI.
- Mongoose: Elegant MongoDB object modeling for Node.js.
- Bcrypt: Secure password hashing.
- JSON Web Tokens (JWT): Token-based authentication and authorization.
- Cloudinary: Cloud-based image and video management solution.
- Next-Cloudinary: Integration for Cloudinary in Next.js apps.
- Stripe: Payment processing and checkout.
- Axios: Promise-based HTTP client for API calls.
- Cookies-Next: Cookie management in Next.js.
- TypeScript: Strongly typed programming language.
- ESLint: JavaScript/TypeScript linting tool.
- PostCSS: Tool for transforming CSS with JavaScript plugins.
- @types: Type definitions for TypeScript and libraries.
- ESLint-Config-Next: Next.js-specific linting configurations.
Follow these steps to set up and run the application locally:
- Clone the Repository:
git clone https://github.com/Eng1Mahmoud/e-commerce-next-app.git cd e-commerce-next-app
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
We follow conventional commits specification:
feat:New featuresfix:Bug fixesdocs:Documentation changesstyle:Code style changesrefactor:Code refactoringtest:Test updateschore:Build process or auxiliary tool changes
If you discover any bugs, please create an issue here including:
- Bug description
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
Mahmoud Mohamed
-
GitHub: @Eng1Mahmoud
If you found this project useful, please consider giving it a ⭐️