Inspiration
My work on CarryIt inspired me to make shipping comparisons clearer. The cheapest offer is not always suitable: users also need transparent fees, delivery estimates and provider verification information.
What it does
CarryPay AI compares fictional shipping offers for two demo routes. It shows a price breakdown, estimated delivery time, weight capacity and demo verification status.
A small local AI model suggests whether to prioritize price, speed or verification from English or Swedish preference phrases. Users can override the suggestion. Providers marked as needing review, or exceeding weight capacity, cannot proceed to checkout.
The user reviews and explicitly approves an exact offer before entering PayPal Sandbox checkout. The AI cannot authorize payments.
How I built it
I built a standalone application using Python, SQLite and plain HTML, CSS and JavaScript. A custom multinomial Naive Bayes model learns preference categories from a small included dataset.
The backend integrates PayPal Sandbox OAuth 2.0 and Orders v2 APIs to create orders, retrieve their details and capture approved payments. Prices are calculated on the server, and payment responses are checked against the saved order.
Challenges and what I learned
Handling uncertain payment responses required careful order persistence and reconciliation. Retries reuse saved operation identifiers rather than silently creating another checkout.
An early integration failure also showed why useful diagnostics matter. I added error reporting that identifies HTTP and connection failures without exposing credentials.
Accomplishments
An actual 110.00 SEK Sandbox payment completed successfully, with the same capture ID confirmed in the merchant transaction history. Reloading the app preserved the completed order.
A separate 515.00 SEK checkout was cancelled. The app recorded cancellation, and no matching payment appeared in the supplied merchant history.
All 48 local Python tests passed, alongside a frontend logic test. A GitLab CI pipeline also passed.
What's next
The current offers and verification attributes are fictional demo data. No real shipment is booked. Next steps include verified carrier integrations, broader model evaluation, browser accessibility testing and a hosted demo.
Log in or sign up for Devpost to join the conversation.