Inspiration
Traveling Salesman is a classic NP complete problem in math and computer science. It involves finding the optimal path in a well connected graph from an origin node to visit a set of waypoint nodes in the graph and then return to the origin after visiting every waypoint node. Although my app will NOT attempt to solve this NP problem in a rigorous sense, it is part of my inspiration for the project. In addition to my experience as a developer in financial transaction processing, billing and logistic services, I've been an active driver on both Uber and Lyft platforms for the past 8 years. This experience has convinced me there is an urgent need for open-source, scalable and efficient software solutions in the mobile services market. Entrepreneurs need logistic and financial services with low overhead and low entry costs in order to compete, my platform is a solution to this problem.
What it does
Traveling Salesman allows merchant users to onboard to their own connected Stripe merchant account, then create products that contain geo location data and process payments for those products via checkout sessions and payment links. The landing page presents a list of cards containing merchant products that are currently online and their distance from the customer user's location. The list is populated, filtered and sorted via a geo query centered on the customer user's location. Location data is provided by either IP api, browser or Google places autocomplete functionality, then hashed into a single indexed field for efficient search using GeoFire package. Customer users may click on nearby product cards to request services. Request links are dynamically associated with Stripe products in order to provide merchants maximum flexibility in the type of services offered and linked pages can easily navigate back to connected Stripe checkout sessions and payment links. Services may include anything from livery, currier, dog grooming, automotive, healthcare and more.
How we built it
This project was written in html, bundled vanilla javascript modules and mostly bootstrap css. It leverages Firebase backend services for Gemini AI, authentication, cloud functions, cloud messaging, database, analytics and hosting. It also leverages Stripe apis for creating connected merchant accounts, products, prices, payment links and checkout sessions for customers. The development environment includes Visual Studio Code, Github, Github co-pilot, Stripe sandbox and Firebase emulators. Various AI agent plugins including Github, Stripe, Firebase, Google cloud and Gemini development tools.
Challenges we ran into
Providing geo location search and filtering is inherently difficult. Brute force geo location search involves multiple indexes on both latitude and longitude for querying locations. Geo-fire queries offer location hashes to a single indexed field for efficiency.
Background tracking of user location involves several privacy concerns. Traveling Salesman mitigates risk by providing only merchant user distance to potential customers, vetting both customer and merchant users via the Stripe platform and leveraging Android mobile for real time location updates based on mobile user preferences.
Accomplishments that we're proud of
I'm most proud of the geo query functionality using geo fire location hashes. Geo locations can be hashed into a single indexed field using geo hashes making search queries far more efficient and scalable.
The use of Firestore security rules and cloud functions keep backend user data safe and secure.
What we learned
This entire project has been an adventure in web development. My pervious experience was centered around enterprise development on midrange platforms and Android mobile. The major learning curves include module javascript, Webpack, Html with Bootstrap, Firebase, Stipe and the Google maps platform, including places and route apis.
This is also the first project in which I have leveraged AI coding agents for major portions of my development work, primarily via Github copilot. The experience really opened my eyes to the level of productivity that can be achieved coding with AI, I doubt that I would have been able to deliver a working web platform to production without coding agents.
What's next for Traveling Salesman
Merchant components for mobile devices to offer realtime location updates, instant messaging with customers and request processing.
More merchants and more customers, it's time to ramp up the volume!
Log in or sign up for Devpost to join the conversation.