Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/subratamondal1029/techkart
A E commerce website with react and tailwind
https://github.com/subratamondal1029/techkart
appwrite-auth appwrite-database appwrite-function appwrite-storage ecommerce ecommerce-website html5qrcode jspdf jspdf-autotable jsx npm qrcode razorpay react react-dom react-hook-fom react-router-dom redux-toolkit tailwind
Last synced: 2 days ago
JSON representation
A E commerce website with react and tailwind
- Host: GitHub
- URL: https://github.com/subratamondal1029/techkart
- Owner: subratamondal1029
- Created: 2024-08-02T14:57:37.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-17T17:40:37.000Z (3 months ago)
- Last Synced: 2024-08-18T08:02:23.362Z (3 months ago)
- Topics: appwrite-auth, appwrite-database, appwrite-function, appwrite-storage, ecommerce, ecommerce-website, html5qrcode, jspdf, jspdf-autotable, jsx, npm, qrcode, razorpay, react, react-dom, react-hook-fom, react-router-dom, redux-toolkit, tailwind
- Language: JavaScript
- Homepage: https://techkart-five.vercel.app
- Size: 1.48 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tech kart
## E-Commerce Website### About Me
I am Subrata Mondal, a front-end web developer with knowledge of HTML, CSS, and JavaScript, specializing in frameworks like React and Tailwind. I created an e-commerce website using these skills, with React and Tailwind for the frontend and Appwrite for the backend.## Description
This single-page application (SPA) includes multiple pages:
- **Home Page**: Displays products for users to browse.
- **Product Detail Page**: Shows detailed information about a product.
- **Login/Signup**: Users can sign in, sign up, or use Google login.
- **Cart**: Users can add products to the cart, view a cart preview, and adjust quantities or remove items.
- **Checkout Page**: Users fill in their contact information, and the address is auto-filled based on the postal code using the Indian Postal API. Razorpay is integrated for payment processing.
- **Order Confirmation and Details**: After checkout, users are redirected to an order details page to see the order status and cancel orders if needed.
- **Account Page**: Users can view their order history and personal information.
- **Product Search**: Users can search for products by typing keywords or by category.Additional features include:
- **Shipment Master Dashboard**:
- Manage orders and update their status to "shipped".
- Generate and download invoices with QR codes.
- Store shipment invoices in Appwrite storage.
- **Delivery Boy Dashboard**:
- Confirm deliveries by scanning QR codes.
- Generate and store delivery invoices in Appwrite storage.
- Allow users to download delivery invoices from the order details page once the order is delivered.
- **Seller Page**: Allows sellers to add products to the list, including images.## Test Users
- **User**: `[email protected]` | Password: `subratalog`
- **Shipment Master**: `[email protected]` | Password: `shipmentlog`
- **Delivery Boy**: `[email protected]` | Password: `deliverylog`## Features
### User Features
- **User Registration and Login**: Users can sign up, sign in, and use Google login.
- **Home Page**: Displays a list of products for users to browse.
- **Product Detail Page**: Shows detailed information about each product.
- **Shopping Cart**: Users can add products to their cart, view a cart preview, and adjust quantities or remove items.
- **Checkout**: Users can fill in their contact information, and the address is auto-filled based on the postal code using the Indian Postal API. Razorpay is integrated for payment processing.
- **Order Confirmation and Details**: After checkout, users are redirected to an order details page to see the order status and cancel orders if needed.
- **Account Page**: Users can view their order history and personal information.
- **Product Search**: Users can search for products by typing keywords or by category.### Additional Features
- **Shipment Master Dashboard**:
- Manage orders and update their status to "shipped".
- Generate and download invoices with QR codes.
- Store shipment invoices in Appwrite storage.
- **Delivery Boy Dashboard**:
- Confirm deliveries by scanning QR codes.
- Generate and store delivery invoices in Appwrite storage.
- Allow users to download delivery invoices from the order details page once the order is delivered.
- **Seller Page**: Allows sellers to add products to the list, including images.## Technologies Used
### Frontend
- **React**: ^18.3.1
- **Tailwind CSS**: ^3.4.7
- **Redux Toolkit**: @reduxjs/toolkit ^2.2.7
- **Appwrite**: ^15.0.0
- **HTML5 QR Code**: ^2.3.8
- **jsPDF**: ^2.5.1
- **jsPDF AutoTable**: ^3.8.2
- **Lucide React**: ^0.424.0
- **QRCode**: ^1.5.4
- **React Hook Form**: ^7.52.1
- **React Redux**: ^9.1.2
- **React Router DOM**: ^6.26.0
- **React Toastify**: ^10.0.5### Backend
- **Appwrite**: Used for database, storage, authentication, and cloud functions for Razorpay payment integration with JavaScript.## Usage
This is a web application. Simply land on the webpage and start using it. For additional features, users need to log in.## Testing
For testing and debugging, the following tools are used:
- **Postman**: For testing API endpoints.
- **Appwrite Function Logs**: For monitoring and debugging Appwrite cloud functions with Razorpay integration.
- **Browser Dev Tools**: For testing and debugging in the browser.
- **Redux DevTools Extension**: For debugging Redux state management.
- **ChatGPT and Google**: For additional troubleshooting and debugging assistance.## License
This project is a personal project by Subrata Mondal and is not formally licensed.## Contact Information
For any questions or issues, you can reach out to Subrata Mondal through the following channels:
- **Phone**: +91 9832674420
- **Email**: [[email protected]](mailto:[email protected])
- **Portfolio Website**: [subratamondal](https://subratamondal.vercel.app)
- **GitHub Issues**: Users can raise issues on the GitHub repository.