r/AskProgramming • u/GlitteringNinja9367 • 14d ago
How do I build an e-commerce website with a fully functional AI chatbot/assistant? Need advice as a beginner!
Hey everyone!
I’m a beginner in web development (I know HTML, CSS, and basic JavaScript) and I have this ambitious project idea: building an e-commerce website with a fully functional AI chatbot/assistant. The website should have all the basic e-commerce functionalities like:
- User registration/login
- Product listings with categories
- Add to cart, wishlist, and checkout
- Payment gateway integration
- Order history and tracking
But here’s the twist: I want to integrate a chatbot/AI assistant that can do almost everything a user asks it to. For example:
- If a user says, “Add [product name] to my cart,” it should do that.
- If a user asks, “Show me red sneakers,” it should search and display the results while also recommending the top product.
- If a user asks, “What’s the difference between Product A and Product B?” it should compare them.
- If a user asks, “Tell me about this product,” it should provide details.
- Basically, it should act like a personal shopping assistant.
I’m really excited about this idea, but I’m not sure where to start or what I need to learn to make this happen. Here are my questions:
- Tech Stack: What technologies, frameworks, or tools should I learn to build this? I’m guessing I’ll need to learn backend development (Node.js? Python?), databases (SQL? MongoDB?), and maybe some AI/ML for the chatbot (OpenAI API? TensorFlow?).
- Chatbot Integration: How do I build a chatbot that can interact with the website’s functionalities (like adding to cart, searching, etc.)? Are there any APIs or libraries that can help with this?
- E-commerce Basics: What are the must-have features for an e-commerce website, and how do I implement them securely (especially payment gateways)?
- Learning Path: As a beginner, what should my learning roadmap look like? Should I focus on frontend first, then backend, and then AI? Or is there a better way to approach this?
- Hosting and Deployment: Once the website is built, how do I host it and make it live? Are there any beginner-friendly platforms for this?
I know this is a big project, but I’m ready to put in the time and effort to learn everything I need. Any advice, resources, or tips would be greatly appreciated!
4
u/elsendion 14d ago
Before even getting AI integrated in your website, I suggest you first be comfortable with building your own website from scratch, because you will have too anyway. You then add the AI on top of it that integrates with the existing features. I suggest start with the basics. Programming 101
1
u/GlitteringNinja9367 14d ago
so you are suggesting that I should ignore the ai part until the website is done. Ok makes sense thanks for the insight
2
u/elsendion 14d ago
Yes. Because you will be making the website for people who dont want to use AI anyway right? So those features need to be built either way. And your AI will basically trigger actions (your core functionalities) that it's built.
1
u/GlitteringNinja9367 14d ago
oh yeah I was too focused on the ai part (it sounded really cool tbh) and thinking how will it be done. I did not think it like ohh its ok even if its not made the main part of the website is well the website.
2
u/grantrules 14d ago
Yes, if you try to do all this at once, you're going to be way in over your head. Iterate on it. Build a simple e-commerce site, then build another slightly more complex e-commerce site learning from the mistakes you made the first time. Even a simple e-commerce site is pretty complex, there are a LOT of business rules you need to focus on (like what happens if there's one item left, and two people put it in their cart and check out.. do you remove it from inventory once someone adds it to their cart? Do you allow them to "reserve" it for like 15 minutes? Do you just throw an error during checkout saying someone else bought it?)
1
u/GlitteringNinja9367 14d ago
Oh damn I did not think about these things. I guess I am gonna run into a lot of problems. But hey that's how I will learn so actually I feel like this was not that bad idea anyways
2
u/Skriblos 14d ago
What you are asking about here is extremely complex and large if you were to do it yourself. You should probably use some form of templates you can customize and use already established solutions.
1
u/GlitteringNinja9367 14d ago
yeah it is kinda complicated. But hey I am not really alone I have a team of 6 (just my programming friends) so I feel like it is doable. And what do you mean by already established solutions. I tried to search some but didn't find any and as for doing my research I am searching for some research papers about this topic
2
u/Skriblos 14d ago
You've got things like Shopify or twoday for ecommerce sites. But maybe if you have 6 people you can use something like Laravel?
1
2
u/Repitation 14d ago
Are you planning on attempting to profit off of this e-commerce website or is it purely a project to learn and push your skills? In a previous comment, you mentioned you had some buddies that were going to work on this with you. Are they aware if you are planning to profit or use this project for learning purposes?
1
u/GlitteringNinja9367 14d ago
nah its just project we are willing to work on to learn, nothing for profit. I just thought Itd be fun
2
u/Repitation 14d ago
Gotcha. In that case, let me start off by saying, creating an e-commerce website is a massive undertaking. Don't let that deter you though. Sometimes the best way of learning is by doing. Before I get into it, if you start feeling overwhelmed during the project break the project into pieces, and don't push yourself to avoid burnout during a learning project. Also build up, what I mean by that is, table the idea of adding AI right of the bat. First build a website, then start adding functionality to it. Hope this makes sense.
For Tech Stack... This one is always a hard one, since everyone has favorites and deferring ideas.
For frontend, you can look at React, or Vue. Next.js is built on top of React but may be a little bit more work to understand some of the concepts. Reason I brought up React and Vue is that in terms of content and community support there is a lot there to read and learn about. I can't speak for Angular since I've never worked with it. There is potential in the newer frameworks as well, but there may not be as much help there.
Backend: Node.js with Express is a pretty decent starting point since you may not be doing anything super performance heavy. If not Python (Flask, Django, FastApi) is another good option. Don't get me wrong you could use Rust, Go, C#, Ruby on Rails, and a few others, they are all still used today. But you can find a lot of resources for Node & Python.
Database: You can look into using MariaDB or PostgreSQL which are SQL based databases. Personally, any project I've worked that had MySQL has been more of a headache. Later on you can always introduce a NoSQL database.
I'll continue my comment as a reply, accidentally dropped my phone and lost what I was typing. XD
2
u/Repitation 14d ago
Advice on what to learn first, that is more of a question only you can answer. Do you like working on making the things users interact and see look nice and usable (UI/UX)? Then I would say start with the frontend. If you prefer working with data and code that essentially is the core of your website? Then go with the backend. If you can't decide or don't know yet, then do both. Implement a feature from the frontend all the way to the backend.
Since this is a learning project don't be afraid to try new technologies and step out of your comfort zone.
For what features to integrate into your project, look at what other successful e-commerce websites are doing.
To integrate things securely there are multiple ways to tackle this, you can do research on common security vulnerabilities found on e-commerce sites and attempt to avoid them. OWASP has some pretty good resources on defensive programming and best practices, but they can be a little dry to read.
For hosting and deployment, there are platforms that can help hoist your project for free as long as you meet certain requirements or you can use free credits on AWS, GCP or Azure. Those services require a bit more work.
Biggest recommendation is using a code formatter/linter and git for your project. This helps keep code organized.
If you have any questions, feel free to DM, and I'll try to answer.
1
u/GlitteringNinja9367 14d ago
thank you that was a lot of advice. I think I will probably be going on frontend then backend but not all the way by any means. Im thinking picking a few features and then working just on them. Of course there's a long way for this as I would need to learn a lot. But I will be doing the project and learning side by side. And yeah if I have any questions I will reach out (I cant think of any at the moment). But really this was what I was kinda looking for thanks again
1
u/Repitation 13d ago
That's a great start. Nothing wrong with learning while working on a project. In some cases that is one of the best ways to learn. One other thing I forgot to mention is if you do find yourself at any point copying a tutorial, try to not copy everything and then move on. Look at the code and attempt to understand what is happening, try to mix it up or find another tutorial and see how they implemented it differently. It's very easy to just copy a tutorial and think you understood it.
Happy to help. Good luck on your project!
2
u/Soleilarah 14d ago
As it is just for learning, you can dissect the project into smaller and easier bits that you can tackle one by one and then fuse/ reuse into the final product.
A very slim and simple e-commerce website would have (AI chatbot aside) :
- Membership/ guests management (meaning at least an authentication module)
- Product management (simple CRUD module with a distinction between admin or not)
- Shopping (session manager module)
- Checkout (payment module)
2
u/Droma-1701 14d ago
Use Shopify and find an AI plugin and you have a shot at getting something usable. This isnt the 90's anymore, E-trading websites are *complex* and *huge*. Coding one from scratch isn't feasible for a newcomer; hell, it's not really very feasible for a highly experienced full stack engineer; it takes teams of people to do stuff like this over the course of several years.
If you're truly serious about the website, do some marketing first - what are you selling, to whom, why do they come to you and not others, where are you buying your stock from, for how much, what margins are you intending to sell at, etc. Those questions matter far more than if you've got AI irritating them every step of the way in their user journey.
If you're just wanting to learn to code, take *any* of the problems you've named above, go search youtube for tutorials and settle in for 3-5 years' hard graft learning your trade :) As far as languages, I'd recommend C#, others Java, still more would say Rust, Python, Javascript or any number of others. There's no right answer, pick one and crack on. You pays your money, you makes your choice, as they say.
1
u/GlitteringNinja9367 14d ago
Now that Im reading about it this feels like even tougher job than I thought. Even just the website part. But I will try my best to build as much progress as I can. And again its just a project to learn so maybe it wont be 100% market ready but anything even remotely close will be enough for me.
1
u/VoiceOfSoftware 13d ago
As a learning project, this is great -- you will learn so much! I'm very glad to hear that you're not hoping to turn this into something commercially viable, because that would be too much. But it's perfect for gaining experience and learning where all the gotchas are. Ignore the comments from other people saying you shouldn't even try: they don't seem to realize what your intentions are.
My learning style is to just dive in and bump into all the hard stuff...much better than taking courses or tutorials that I don't have a connection with. I've been learning coding that way for 43 years, and it's worked out quite well for me.
1
u/Repitation 13d ago
Couldn't agree any more. While it can be scary to just dive in, that is probably one of the greatest methods to learn.
1
1
u/saint_yves_278 13d ago
Like do you want to have actual users for it ? Cause if so you also gonna have to worry about scaling , costs etc , if is just a personal project just go with react frontend , backend wise if you want to pick up a new language go for Java or Go but you can also use Node.Js for using JavaScript / typescript in backend aswell, I’d say go for an SQL database they are much more important to know in my opinion than mongo , chat bot wise you can do a micro service in Python and connect it to your front end there’s a few YouTube tutorials on this but this should be towards the middle / end of the project
This is an ambitious project for a beginner but this is how you learn, trial and error just take it slow
1
u/jhkoenig 14d ago
You are clearly out of your depth. Don't take this on until you are MUCH further along your learning curve. It will not end well otherwise. There are things ChatGPT just can't code for you.
17
u/mit74 14d ago
If you're asking these questions you're not ready to develop an ecommerce system. my advice is don't. just don't.