Inspiration

The inspiration for this project stemmed directly from a very personal observation: my dad's daily struggles managing his jewellery shop using traditional pen-and-paper methods. I witnessed firsthand the inefficiencies, the time spent on manual calculations, the difficulty in tracking inventory, and the challenges of maintaining customer records. It became clear that a modern, digital solution was not just a convenience, but a necessity to streamline operations, reduce errors, and ultimately help his business thrive. My goal was to build an application that could genuinely address these pain points, making his life, and the lives of other jewelry shop owners, significantly easier.

What it does

Initially, the focus was on digitizing the most critical aspects of jewelry store management:

Inventory Management: A robust system to track jewellery items, including details like metal type, purity, weight, making charges, and even individual stones. This allowed for accurate stock levels and pricing. *Sales & Billing: * A comprehensive module for creating invoices, applying discounts, calculating GST, and managing partial payments. The ability to add items from inventory or as custom entries provided flexibility. *Customer Management: * A dedicated section to maintain customer records, track their purchase history, and manage their contact details. *Merchant Credit: * A unique feature to manage credits given to merchants, including tracking metal-based transactions and recording repayments. ** Store Expenses: ** A module to log and categorize various business expenses, helping in financial oversight. *Reports & Analytics: * Basic reporting capabilities to provide insights into sales trends, top-selling items, and customer statistics.

How we built it

The application was built using React for the frontend, leveraging TypeScript for type safety and better code organization. Tailwind CSS was chosen for its utility-first approach, enabling rapid and consistent styling without writing custom CSS. Lucide React provided a clean and extensive set of icons, maintaining a cohesive visual language. For initial data persistence, localStorage was used, offering a quick way to store and retrieve data directly in the browser.

Evolving with Advanced Features As the core features took shape, it became evident that for a production-ready application, more robust infrastructure was needed. This led to the integration of:

*User Authentication (Firebase): * To ensure data security and enable multi-user access, Firebase Authentication was integrated. This allowed for secure user registration, login with email/password, and even Google sign-in, providing a reliable and scalable authentication solution. Subscription Management (RevenueCat): To support different business needs and introduce a monetization model, RevenueCat was incorporated. This enabled the creation of tiered subscription plans (Free, Professional, Enterprise) with varying feature limits (e.g., number of items, customers, invoices). This integration involved setting up product offerings and handling purchase flows, ensuring that users could seamlessly upgrade their plans and unlock more capabilities. Enhanced UI/UX: Throughout the development, a strong emphasis was placed on creating a "beautiful, not cookie cutter" design. This involved thoughtful layouts, intuitive navigation, and detailed components with hover states and clear visual feedback, aiming for an impressive and production-worthy user experience.

Challenges we ran into

Building JewelryPro presented several interesting challenges:

Data Management & Scalability: The initial reliance on localStorage was great for rapid prototyping but quickly highlighted its limitations for a multi-user, cloud-synced application. The transition to a more robust backend solution (implied by Firebase Auth, with Firestore as a natural next step for data) was a significant architectural consideration. Complex Business Logic: Implementing accurate calculations for jewelry pricing (considering metal rates, purity, weight, making charges, and stone values), discounts, GST, and managing various payment statuses for invoices required meticulous attention to detail. Similarly, tracking merchant credits with different types (cash, gold, silver) and their repayment records added layers of complexity. Third-Party Integrations: Integrating Firebase for authentication and RevenueCat for subscriptions involved understanding their APIs, handling asynchronous operations, and managing various states (loading, error, success) across the application. Mapping RevenueCat's product IDs to internal subscription tiers required careful configuration. User Experience Design: Crafting a user interface that is both aesthetically pleasing and highly functional for a business management system was a continuous challenge. Ensuring responsiveness across different screen sizes and providing clear feedback for user actions were key considerations. Feature Gating: Implementing subscription-based feature gating, where certain functionalities or limits are enforced based on the user's subscription tier, required careful logic throughout the application, especially in components like InventoryList and Settings.

Accomplishments that we're proud of

This project transformed a simple idea into a comprehensive application, ready to empower jewelry shop owners with efficient digital management.

What we learned

Full-Stack Development Principles, React Ecosystem Mastery, Problem solving.

What's next for AI Powered Jewellery management software

Bring in AI assistant who can provide insight on the businesses on a every day basis.

Built With

Share this project:

Updates

Submission history