Gentle Paws is a pet food e-commerce platform that allows users to browse and purchase pet food products online. The project is built using React (Vite) + Tailwind CSS for the frontend and Django + Django REST Framework (DRF) with JWT authentication for the backend.
- 🛒 Modern UI: A sleek, responsive user interface using Tailwind CSS.
- 🔐 User Authentication: JWT-based login and signup.
- 📦 Product Listing: Fetches product data from the backend via REST API.
- 🏷️ Category Filtering: Users can filter pet food based on pet type, brand, and price.
- 💳 Cart & Checkout: Users can add products to the cart and proceed with checkout.
- 🔑 JWT Authentication: Secure login and user session management.
- 📡 REST API: Provides endpoints for product management, user authentication, and order processing.
- 📊 Admin Panel: Built using Django admin with support for bulk product uploads (Excel/JSON).
- 📥 Django Import-Export: Allows bulk product import/export via admin panel.
- 🎨 Custom Admin Theme: Django Grappelli for a modern admin panel design.
Component | Technology |
---|---|
Frontend | React (Vite) + Tailwind CSS |
Backend | Django + Django REST Framework |
Database | PostgreSQL / SQLite |
Authentication | JWT (JSON Web Token) |
Admin Panel | Django Grappelli + Django Import-Export |
git clone https://github.com/yourusername/gentle-paws.git
cd gentle-paws
cd backend
python -m venv env # Create a virtual environment
source env/bin/activate # Activate the virtual environment (Mac/Linux)
env\Scripts\activate # Activate the virtual environment (Windows)
pip install -r requirements.txt # Install dependencies
python manage.py migrate # Apply migrations
python manage.py createsuperuser # Create an admin user
python manage.py runserver # Run the backend server
cd frontend
npm install # Install dependencies
npm run dev # Run the development server
POST /api/auth/register/
- User registrationPOST /api/auth/login/
- User login (returns JWT token)GET /api/auth/user/
- Get authenticated user details
GET /api/products/
- Fetch all productsGET /api/products/<id>/
- Fetch product detailsPOST /api/products/
- Add a new product (Admin only)PUT /api/products/<id>/
- Update product (Admin only)DELETE /api/products/<id>/
- Delete product (Admin only)
POST /api/orders/
- Place an orderGET /api/orders/
- View user ordersGET /api/orders/<id>/
- Get order details
- Admin Panel Theme: You can modify the
settings.py
to enable/disable Grappelli. - Product Import: Ensure
django-import-export
is installed and configured inadmin.py
.
This project is licensed under the MIT License.
If you have any suggestions or want to contribute, feel free to open an issue or a pull request.
🚀 Happy Coding!