Inspiration

Point of sale systems can cost up to thousands of dollars per month. Small businesses worldwide can use this on-site POS system to bootstrap their business for free. They gain thousands of dollars of value with the ability to manage sales, inventory, and generate reports.

Traveling to other countries outside of the United States has opened my eyes to the struggles of small business owners. Many of them are bootstrapping their businesses and don't have access to technologies that would make their lives easier, saving them time and frustration. Some entrepreneurs, especially in small towns, live in places where digital transformation is not yet widespread.

What it does

This point of sale system allows users to add items, create orders, & generate and export sales reports. It serves as a Point of Sale system with inventory management, shopping cart, and advanced sales reporting with interactive charts and export to CSV. Even when a user closes the browser tab, their data is saved in local storage and persisted.

How I built it

Originally, I wanted to one-shot prompt an appointment booking system. However, this requires a database and involves complex availability logic calculations. To ensure the project could be completed in one prompt, any data needed had to be stored locally.

A Point of Sale system seemed equally as useful as an appointment booking system, with the potential to help many entrepreneurs worldwide.

I tried several prompting approaches:

  • Natural language
  • Generating a PRD (Product Requirements Document) using Claude
  • Generating a concise "one-shot" prompt
  • Providing specific code instructions (file structure, data schema, code snippets) for how to implement specific features and functionalities.

The prompt that ended up working was a combination of these approaches, with manual editing of the prompt.

Challenges I ran into

  1. When a React application has an error, it will crash, display a blank screen, and not display any feedback to the user. This was solved by prompting to add an Error Boundary to catch errors.

  2. Null checks are a common issue with Javascript/Typescript code. This was solved by prompting to add optional chaining throughout the codebase.

  3. I quickly ran out of tokens after a few iterations of different one-shot prompts.

Accomplishments that I'm proud of

I was able to modify the prompt to preemptively catch errors that would have otherwise been created by the LLM. I was also able to begin implementing localization (multilingual support) with a one-shot prompt. I believe I could achieve this and mobile responsiveness in a one-shot prompt if I had more tokens.

What I learned

Bolt does a great job at pre-processing a prompt into a structured output before converting it to code. It also provides a summary of changes made.

What's next for RetailPOS - Point of Sale tool coded in a one-shot prompt

Without the restriction of needing to one-shot prompt a project, more features can be added.

I'd like to implement mobile responsiveness, multilingual support for many languages, authentication, and better reporting.

Additional features include integration with a payment processor, customer loyalty programs, and support for tipping.

Multilingual support is the highest priority roadmap item to ensure this project can help as many people as possible.

Built With

Share this project:

Updates