Ask HN: How long should it take to build this web app?
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:
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.
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.
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?
Thanks in advance! Any tips - relevant to my question or not would be helpful as well!
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.
7 comments
[ 3.0 ms ] story [ 33.6 ms ] threadI 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
..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.
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.