Ask HN: Reasonable scope for a beginner web dev?
The project is a simple ecommerce site:
-A couple of static pages
-A product listing, and the ability to add to a cart with various custom options/dropdowns
-Ability to edit cart
-Ability to place order for delivery or pickup
-Process payment using stripe.
No shipping, no need to worry about stock, as it is a food establishment. It seems pretty doable to me but Im worried about wasting the client's time, so I would like some input on how reasonable this would be for me to build in Django and React.
I don't need perfection, both I and the client will be satisfied with something that loads fast, looks nice, and doesn't lose orders. Though I have also found it difficult to research common pitfalls building such a site, as all I get are results related to the marketing side of ecommerce. Thoughts?
11 comments
[ 3.2 ms ] story [ 35.2 ms ] threadFor a commercial project, the client is making a huge mistake by hiring you to build something new. There are a dazzling number of inexpensive solutions that already do this and handle the edge cases. None of those would cost nearly as much as building and maintaining this.
There are also open-source options that would still be more expensive than using an existing SaaS, but still doable.
I don't really know of anyone who would write about this. Part of it is predicting human behavior, and the rest of it is observation.
For example, users make a lot of mistakes. They get part of an order wrong, and sometimes they don't realize it until the restaurant has begun making the order.
How do you handle it? If the user can just cancel the order, the restaurant is losing money for a potentially fixable mistake. If the user can edit the order, how is that communicated to the restaurant?
Ordering systems are bidirectional. Both words (what the user has ordered) and money are moving back and forth even after the transaction is complete. What happens if a user does a charge-back? What happens if a user is unhappy and wants a partial refund?
It's just not something a beginner could accomplish in a reasonable amount of time. It would even take an expert quite a while to build it all out, even if she had it 100% architected in her head.
> clicking and dragging on squarespace isnt a marketable skill, so I'd rather avoid that
I agree, but that's a reason to follow a more traditional career path (working as a junior developer at a place that will teach you) rather than allowing a business to roll the dice on an experiment. It's honestly not really ethical. I've cleaned up messes made by beginners, and I've also encountered messes that were bad enough that no one could clean them up.
It's not unlike an unlicensed contractor telling someone they can build something they've never built before. If you do it, you're taking advantage of their trust and ignorance, especially because there are tons of alternatives.
Help this company implement an existing, trusted SaaS, put it on your resume as a consulting project, and find something else to work on. You won't advance your career by muddying your name on projects that are more harmful for a client than helpful.
As to the career path, I've had a lot of trouble getting my foot in the door anywhere. I have a bit of an employment gap for the last couple years of my university, and while I do have some I.T. and soft development experience this doesnt seem to be enough.
The client is aware that I have no experience and my rate is adjusted according to the risk, even so I dont want to waste their time. That said, would you consider setting up an app with the shopify API to be using SaaS? This would still let me build out some of the front end with react rather than letting squarespace do everything, but from what I understand they handle a lot of the payment edge cases like chargebacks.
There are so many open source projects that would solve your problems. Yes, setting up shopify for your client is one (easiest) way to go (at the expense of your client paying some percentage for every order)
Depending on your clients requirements, we can find a solution that works best for them
Reply here, ill try to help you
The client is likely fine with either option, what I'm most interested in is getting a working result without getting stuck, while still learning as much as I can from this. I've had a lot of trouble finding a job so I am trying some solo projects to try to get my feet wet in the industry.
I’ve built out a custom e-commerce app with Django for a client. Very similar to your requirements - product options, cart, orders etc.. There is a lot more than you think.
We actually championed using Shopify in the beginning but the client needed custom functionality and integration with a legacy system so we had to go with Django.
I would strongly suggest using something off-the-shelf if you can. There is a lot of work and maintenance in even a "small" app like this.
React seems like overkill for a simple task like this.