A comprehensive retail and wholesale management system built with JavaFX and Spring Boot. Features include automated billing with barcode scanning, real-time inventory tracking, customer credit management, SMS notifications, and detailed analytics dashboards - transforming manual retail operations into an efficient digital workflow.
Duration
6 Months
User Types
3 Roles
Modules
10+
Image description
Java
Core
Spring Boot
Backend
JavaFX
UI Framework
MySQL
Database
ZXing
Barcode
SMS API
Notifications
Fast billing with barcode scanning, automatic wholesale discounts, and real-time inventory updates.
Real-time stock monitoring with low-stock alerts, batch tracking, and expiry date management.
Track customer credit balances, set credit limits, and send automated SMS payment reminders.
Comprehensive reports for sales, inventory, and financial insights with export capabilities.
Secure multi-user system with customizable permissions for owners, employees, and customers.
Automated SMS alerts for purchase receipts, credit balance updates, and payment reminders.
Analyzed current manual processes, identified pain points, and documented requirements through user stories and use cases.
Month 1-2Created ER diagrams, class diagrams, and UI wireframes. Designed the database schema with 23 interconnected tables.
Month 2-3Developed the system using JavaFX for UI, Spring Boot for business logic, and MySQL for data persistence.
Month 3-5Conducted comprehensive testing including unit tests, integration tests, and user acceptance testing.
Month 5-6@FXML
private void processPayment() {
Invoice invoice = new Invoice();
invoice.setDate(LocalDateTime.now());
invoice.setCustomer(selectedCustomer);
invoice.setTotalAmount(calculateTotal());
// Apply wholesale discount if applicable
if (selectedCustomer.getCustomerType() == CustomerType.WHOLESALE) {
invoice.applyWholesaleDiscount();
}
// Update inventory
cartItems.forEach(item -> {
productService.updateStock(item.getProduct(), item.getQuantity());
});
invoiceService.save(invoice);
smsService.sendReceipt(selectedCustomer, invoice);
}
@Service
@Transactional
public class InventoryService {
@Autowired
private ProductBatchRepository batchRepository;
public void checkLowStock() {
List lowStockProducts = productRepository
.findByCurrentStockLessThan(reorderLevel);
lowStockProducts.forEach(product -> {
notificationService.createLowStockAlert(product);
if (autoReorder) {
purchaseOrderService.createReorderRequest(product);
}
});
}
}
Implementing real-time inventory tracking with multiple concurrent users and preventing stock inconsistencies.
Implemented optimistic locking with version control and transaction management using Spring's @Transactional annotation.
Creating a responsive and modern UI with JavaFX that matches contemporary design standards.
Utilized custom CSS styling, material design principles, and JavaFX animations to create an intuitive and visually appealing interface.
Faster Billing
Inventory Accuracy
Less Manual Work
Revenue Growth
Comprehensive healthcare management with patient records and appointment scheduling.
View Project →Online education system with course management and progress tracking.
View Project →Secure banking system with transaction management and account services.
View Project →Let's discuss how I can help transform your business operations with a tailored solution