[{"data":1,"prerenderedAt":141},["ShallowReactive",2],{"project-qartora":3},{"id":4,"title":5,"body":6,"category":124,"date":125,"description":126,"extension":127,"image":128,"meta":129,"navigation":130,"path":131,"seo":132,"stem":133,"tags":134,"url":139,"__hash__":140},"projects\u002Fprojects\u002Fqartora.md","Qartora",{"type":7,"value":8,"toc":116},"minimark",[9,14,35,38,42,57,72,79,86,90,109,113],[10,11,13],"h2",{"id":12},"overview","Overview",[15,16,17,18,22,23,26,27,30,31,34],"p",{},"An chat-like application that uses an ",[19,20,21],"strong",{},"AI agent"," to fetch, filter, and display products which are pulled from ",[19,24,25],{},"Shopify",". The application has two entry points: ",[19,28,29],{},"WhatsApp"," and ",[19,32,33],{},"Instagram",". Based on this, the application follows their respective designs, determined on the channel of entry.",[15,36,37],{},"The application other than the AI chat, contains a cart and creation of an order that is sent and processed through Shopify.",[10,39,41],{"id":40},"what-i-did","What I did",[15,43,44,45,48,49,52,53,56],{},"I started on this project by implementing the frontend using ",[19,46,47],{},"React"," with ",[19,50,51],{},"shadcn",", while being aware of the work done in the backend which used ",[19,54,55],{},"NestJS",". After implementing the reusable UI components and to follow the given design, I ensured that we had mocked data being pulled in a way that required minimal changes once the backend was done.",[15,58,59,60,63,64,67,68,71],{},"I was then working on the backend, since I have already prepared the mock to be ready for the connection with real data, I was tasked to connect the API data with the frontend. Afterwards, I started preparing the application to support ",[19,61,62],{},"multi-tenancy"," on a single deployment by using ",[19,65,66],{},"slugs"," in the path. While working on this, it was decided from the clients side that we would actually use a ",[19,69,70],{},"subdomain"," approach rather than the slugs, but we would still use a single DB.",[15,73,74,75,78],{},"Then I prepared the application to be able to support ",[19,76,77],{},"multiple channels"," (we started only with WhatsApp), so I made the UI to be configurable, as well as link generation based on the selected channel.",[15,80,81,82,85],{},"I was also assigned the ",[19,83,84],{},"360 Dialog"," transfer from our application to the clients new backoffice app. Some UI \u002F UX redesigning of the backoffice, etc.",[10,87,89],{"id":88},"responsibilities","Responsibilities",[91,92,93,97,100,103,106],"ul",{},[94,95,96],"li",{},"Communicate with the client regarding desired functionalities of the system",[94,98,99],{},"Present developed functionalities on a Sprint basis.",[94,101,102],{},"Develop and test new functionalities, as well as maintain the system.",[94,104,105],{},"Develop and execute plans for testing, and system validation.",[94,107,108],{},"Ensure that the final product meets the client’s expectations.",[10,110,112],{"id":111},"stack","Stack",[15,114,115],{},"Built with React, shadcn, NestJS, Next.js, PostgreSQL, Vercel SDK, TypeORM.",{"title":117,"searchDepth":118,"depth":118,"links":119},"",2,[120,121,122,123],{"id":12,"depth":118,"text":13},{"id":40,"depth":118,"text":41},{"id":88,"depth":118,"text":89},{"id":111,"depth":118,"text":112},"Professional","2026-02-01","My first project at Serapion. An AI first multi-tenant application, using WhatsApp\u002FInstagram as an entry point, and Shopify to pull products and display them to users based on their needs\u002Fqueries.","md","\u002Fprojects\u002Fqartora-logo.svg",{},true,"\u002Fprojects\u002Fqartora",{"title":5,"description":126},"projects\u002Fqartora",[47,51,55,135,136,137,138],"Next.js","PostgreSQL","Vercel SDK","TypeORM","https:\u002F\u002Fqartora.com\u002F","1_lBoYKtt9-XbeyuTo4JCSD3rFt2pUtjSz8rg6XO9kE",1785186536637]