#Seeking Guidance for Designing a Book Store MVP

1 messages · Page 1 of 1 (latest)

peak scarab
#

Hi everyone,

I’m looking to build a book store app. It might become a business one day, but even if not, I think it will be a valuable project for learning. However, I often find myself overcomplicating things, so I’d appreciate some guidance in creating a clear and manageable MVP specification.

I’m looking for help with:

•    Writing a concise MVP spec.
•    Designing the database schema.
•    Identifying the necessary tools and technologies for production.

Here’s the link to the repository where I’ve outlined some initial ideas in the readme - https://github.com/Zimzozaur/catobooks

There’s no rush on this as I still need to improve my async programming, database skills, and a few other areas. I’d like to have a well-planned project that I can work on gradually, thinking through each step as I build it.

Thanks in advance for your help!

orchid vectorBOT
#
Notes for Seeking Guidance for Designing a Book Store MVP
At your assistance

@peak scarab

No Response?

If no response in a reasonable time, ping @Member.

Closing

To close, type !solve or byte solve.

MCVE

Please include an MCVE so that we can reproduce your issue locally.

cerulean ingot
#

This is my attempt to learn Litestart by building an e-book store.
Litestart
blob_sweat

#

Postgres without ORM

I just want to say, don't let the "ORMs are slow" comments fool you into going raw SQL, if you want an MVP its best you use ORM to make sure you get your MVP out

they can be slow if / when you reach a certain scale, but its an MVP, maybe down the line you realize you dont even want SQL, so you will need a easy way to swap stuff later.

if your goal here is to only learn, then go crazy with the stuff you want to use

peak scarab
# cerulean ingot > Postgres without ORM I just want to say, don't let the "ORMs are slow" commen...

I like that you question things! Here’s my perspective:

From Wikipedia: “A minimum viable product (MVP) is a version of a product with just enough features to be usable by early customers who can then provide feedback for future product development.” My goal isn’t to make it the fastest overall but to optimize it within certain constraints. For example, (not saying I’m an expert or could do this overnight), using Django with its ORM would be the most manageable since that’s what I’m most familiar with.

“ORMs are slow”— it is not me uffff

  1. I want to learn SQL, so I don’t want to avoid it.
  2. I’m not a big fan of ORMs, especially when the documentation is lacking, like with SQLAlchemy, as far as I know. Plus, my mentor says we don’t always need ORMs. So if he doesn’t, maybe I don’t either. 😅

“only learning” I want to learn but I’d also like to make the project as real as possible (as I mention I am considering to build a niche book store with a friend so why not code it myself)

cerulean ingot
cerulean ingot
#

I want to learn SQL, so I don’t want to avoid it.
cofin will cringe on so many levels on reading this, but you have to know you can get by a lot with just the basics, this includes writing sub optimal (doesnt mean bad on purpose) queries, not always are you going to be dealing with millions of rows

I have worked at certain places where we put stuff in JSON columns (inside a sql db) in fear of migrations, because the product guys kept making changes so fast, that writing migrations and applying them was annoying

the above is my opinion and as always its "it depends" and purists will cringe and take their pitchforks at you if you dont do it the "right" way

peak scarab
peak scarab
#

cofin will cringe on so many levels on reading this could you elaborate, please?

#

How about writing the spec as in question?

cerulean ingot
#

highly simplified version of what he does

#

my suggestions are from a POV of "its a hobby app to its less than 1000s of users"

cerulean ingot
peak scarab
cerulean ingot
# peak scarab What do you mean

whatever suggestions I gave you, its from my experience on working with a hobby project or with few users (early stage startups)

they may not necessarily work if / when you want to scale so high

cerulean ingot
peak scarab
peak scarab
cerulean ingot
peak scarab
cerulean ingot
#

😶

#

hope you wont mind me not answering that 🙂

#

urgh, edited

#

now you know

#

😂

peak scarab
cerulean ingot
#

i mean, its a coding server, ask a good ish question, get a good ish response 🙂

#

speak python

peak scarab
#

Oh didn't expect this reaction 😅

cerulean ingot
#

I know of "Polish"

peak scarab
#

Wikipedia says - Polish people, or Poles

cerulean ingot
#

i am more used to seeing the first one, the second reminds me of a literal pole 😅

cerulean ingot
#

re: MVP, i know its easier to say than do, (I struggle with this too)

just get something out

#

i have dozens (not emphasizing) projects that started from "ohh I am gonna start a company" that are in limbo

peak scarab
cerulean ingot
#

know when to stop

peak scarab
cerulean ingot
#

in a more general manner, think of chess (as an example), make http calls to move pieces