A full-stack hyperlocal e-commerce application built with Spring Boot and vanilla JavaScript, enabling customers to browse products and vendors to manage their inventory.
- Secure user authentication with BCrypt password encryption
- Browse products filtered by pincode for hyperlocal delivery
- Shopping cart management
- Place and track orders in real-time
- Multiple delivery address management
- Order notifications
- Vendor dashboard for inventory management
- Add and manage products
- Real-time stock tracking and updates
- View and manage customer orders
- Pincode-based product availability
- Framework: Spring Boot 3.3.5
- Language: Java 21
- Database: MySQL 8.0
- Security: BCrypt Password Encryption
- ORM: Hibernate/JPA
- Build Tool: Maven
- Languages: HTML5, CSS3, JavaScript (ES6+)
- Styling: Custom CSS with responsive design
- Images: Cloudinary CDN
- API: RESTful architecture
Quickart/
βββ backend/
β βββ src/
β β βββ main/
β β β βββ java/com/quickkart/
β β β β βββ controller/ # REST API endpoints
β β β β βββ entity/ # JPA entities
β β β β βββ repository/ # Data access layer
β β β β βββ config/ # Configuration classes
β β β βββ resources/
β β β βββ application.properties
β β β βββ application-prod.properties
β β β βββ static/
β β βββ .gitignore
β βββ pom.xml
β βββ system.properties
βββ frontend/
β βββ index.html # Landing page
β βββ home.html # About page
β βββ login.html # Authentication
β βββ customer.html # Customer portal
β βββ vendor.html # Vendor portal
β βββ order-history.html
β βββ user-settings.html
β βββ backend-integration.js # API integration
β βββ style.css # Global styles
β βββ netlify.toml # Netlify deployment config
βββ schema.sql # Database schema
βββ README.md
- Java 21 or higher
- Maven 3.6+
- MySQL 8.0
- Git
- Clone the repository
git clone https://github.com/yourusername/quickart.git
cd Quickart/backend- Configure Database
Create a MySQL database and update
src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/quickkart_db
spring.datasource.username=your_username
spring.datasource.password=your_password- Create Database & Import Schema
CREATE DATABASE quickkart_db;
USE quickkart_db;
SOURCE schema.sql;- Build and Run
mvn clean install
mvn spring-boot:runBackend will start at http://localhost:8080
- Update API URL
In
frontend/backend-integration.js:
const API_BASE_URL = 'http://localhost:8080/api';- Open in Browser
- Use Live Server extension in VS Code, or
- Open
index.htmldirectly in browser
- Push code to GitHub
- Create account on deployment platform (e.g., Railway.app)
- Add MySQL database service
- Configure environment variables:
SPRING_DATASOURCE_URL=jdbc:mysql://host:port/database SPRING_DATASOURCE_USERNAME=username SPRING_DATASOURCE_PASSWORD=password - Deploy from GitHub repository
- Update API URL in
frontend/backend-integration.js:const API_BASE_URL = 'https://your-backend-url.com/api';
- Deploy to Netlify:
- Drag and drop
frontendfolder, or - Connect GitHub repository
- Drag and drop
- Configure CORS in backend for your frontend domain
POST /api/auth/register- Register new userPOST /api/auth/login- Login user
GET /api/products- Get all productsGET /api/products/{id}- Get product by IDGET /api/products/pincode/{pincode}- Get products by pincodePOST /api/products- Add new product (Vendor)PUT /api/products/{id}- Update productDELETE /api/products/{id}- Delete product
GET /api/cart/{userId}- Get user's cartPOST /api/cart- Add item to cartPUT /api/cart/{id}- Update cart itemDELETE /api/cart/{id}- Remove from cart
GET /api/orders/user/{userId}- Get user ordersGET /api/orders/vendor/{vendorId}- Get vendor ordersPOST /api/orders- Place orderPUT /api/orders/{id}/status- Update order status
GET /api/addresses/user/{userId}- Get user addressesPOST /api/addresses- Add addressPUT /api/addresses/{id}- Update addressDELETE /api/addresses/{id}- Delete address
- BCrypt password hashing
- CORS configuration
- Input validation
- SQL injection protection via JPA
Key entities:
- Users: Customer and Vendor accounts
- Products: Product catalog with vendor association
- Cart: Shopping cart items
- Orders: Order information
- OrderItems: Items in each order
- Addresses: Delivery addresses
- Notifications: User notifications
- Image uploads are via URL (no file upload yet)
- No payment gateway integration
- No email notifications
- Limited to single currency
- Payment gateway integration (Razorpay/Stripe)
- Email notifications
- SMS notifications for order updates
- Image upload functionality
- Advanced search and filters
- Product reviews and ratings
- Wishlist feature
- Vendor analytics dashboard
- Multi-language support
- Browse products by location
- Add to cart
- Place orders
- Track order history
- Manage delivery addresses
- Add/Edit/Delete products
- Manage inventory
- View incoming orders
- Update order status
- 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
This project is open source and available under the MIT License.
For questions or support, please open an issue in the repository.
Built with β€οΈ for local businesses and communities