

Ask HN: How long should it take to build this web app? - contemplating1

Hey all,<p>I am a new developer, a first year CS student, and an aspiring entrepreneur. I am building my first "real" web app this summer, and I am just looking for some general guidelines. I really don't know how long it is going to take, and I know a lot of this depends on the experience of the developer. So let me give you a little background on me:<p>I have been programming for about 2 years. I feel like my knowledge of Python is pretty good, although I never stop learning! I have been reading up on Django and have done the tutorial on models/views/etc. I also have done front end stuff, mainly playing around with HTML/CSS/Javascript, although I could definitely spend more time on learning Javascript/jQuery. I could go on, but I don't want to bore you to death, and I just am looking for an estimate anyways.<p>My app will handle many users at one time. It will basically be a CRUD app. The two things I really have to add in are Geolocation, and payments, both of which can be achieved through integrating third party services/API's. Everything except for logo design has to be done by myself.<p>So if I threw this at an experienced full stack developer, how long would it (approximately) take? How do I break something like this into smaller chunks to estimate the time it will take? And most importantly, how do I know which technologies I should brush up on prior to doing this - or do I just hack it and learn as I go?<p>Thanks in advance! Any tips - relevant to my question or not would be helpful as well!<p>EDIT: I am focusing solely on the tech side of things. While I know our product better than him, and very much contribute to our vision, he is responsible for handling business/legal/marketing etc.
======
kellros
Hi, I'd suggest that you read The Lean Startup if you haven't, it should put
you on the right track to determine priorities.

Web development is a beast and very different from traditional thick clients
as you often have to cater for multiple types of users (roles & permissions)
as well as multiple portals (different user interfaces and interaction based
on users). Most projects would typically require at least two distinct
portals: traditional user portal and administration portal. For franchises
there are usually two levels of administration (top level/standard level) that
requires different views of the data (ex. across the franchise for
administrators and impersonation of standard franchisees).

In my experience there isn't really a simple crud application - the
information you collect depends on the functionality you provide. Many users
is also very abstract as it will impact your infrastructure requirements - too
many unnecessary abstraction layers will really slow down development but is
typically required for SOA/N-Tier/CQRS stacks.

My advice is simple: Pick one thing and go through the process of validated
learning. It's possible to run a successful business on an adhoc stack - it's
not required to run perfect software from the beginning, but flexibility and
adaptability sure helps. I'd almost say build something quick and dirty that
you can change/scrap easily depending on your business requirements till you
reach the point of the business being profitable, then you can invest more
into it.

------
orangethirty
From 2 days to a year. Depends on the person. I can knock it out in about 10
days if using a good framework like Django or Rails. But I'm no rockstar.

I would approach this by explaining the system on paper. Then break out the
functionality into paragraphs. Each paragraph is its own library. Do those
functions first, then move on to the actual program itself (what implements
the libraries). Then its just a matter of making sure everything leads to the
right place.

Say:

Puppybook is a facebook for puppies.

paragraph #1 Each user logs in. Using two factor authentication.

#2

    
    
        the user arrives to his profile, 
        where he can see the latest puppy posts
    

..and so on.

For paragraph #1 I need to write the authentication code. For #2 I need to
write the code to pull the latest puppy posts from the database into the
system.

Then you would import those libraries and do a regular MVC type app. I suggest
your read up on one of those. If you are lost, then check out protocademy.com.
You can learn to do just that there.

~~~
contemplating1
That sounds like it would be pretty useful. What would you suggest as far as
the database? I plan on using Postgres on Heroku and will be either be using
SQLAlchemy or Django's ORM. What would be a good way to approach this problem?
I was planning on doing something similar, making a diagram of all of the
models/tables I will need, and additionally writing out all of the details of
each relationship and possible entities I will need to add in the future.

~~~
orangethirty
That sounds like a good setup. Just dont waste time thinking and get to
coding.

~~~
contemplating1
Right, what about my level of knowledge of Javascript? Should I spend a few
days hitting it really hard just to learn it or is it something I can pick up
on the go if I have a background with Python/C++/Java?

~~~
orangethirty
Just learn as you build. Its the best way.

