Development Timeline
This is not a real blog as such, but more a development timeline in case anyone
is interested in how long it took to get this site up and running, including learning
ASP.NET MVC along the way.
I've really done this whole thing with a focus on delivering the least amount possible.
If the system gets some users I've got a long list of features to add, and will
need to do a lot of work on scaling etc. The original premise of this is not to
make money, but if I can find a way to do so then I could put some real effort into
it.
But first priority was to get something out the door.
Check the summary at the end.
Friday 2am to 4am
Couldn't sleep because I had the idea for this site so I wrote out an A3 page of ideas, basic data structure etc. Broke it out into four phases for future improvement should this initial phase work - but aiming to deliver the least amount possible initially - figure all most people will want is a search that is e-mailed to them, can add further functionality later.
Saturday 2pm to 3pm
Downloaded and installed MVC, downloaded PDF from ScottGu Created project. Read first 25 pages of PDF (easy reading - rest looks harder).
Saturday 7pm to 8pm
Watch Video. Very useful intro - guy needs to learn his humour doesn't really work in presentations (although I quite liked it).
Sunday 9.20am to 10.30am
Tried to publish website to live server (just the basic website it automatically creates). Failed. Followed this tip (by the guy who's video I watched last night): http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx and now up and working - 5 minutes to find and fix - not bad for a Microsoft issue! Created database design and implemented in SQL (not express). Hooked up first table with MVC and LINQ, can display results etc (Although table I have done wont actually been seen in final design). Up to page 60. E-book definitely a worth while read so far
Sunday 10pm to 10.30pm
Worked through another 10 pages or so. Sadly worked through too much wine in the late afternoon so stopping and going to bed (but a very nice day in the London sun).
Monday 3pm to 4.30pm
Working through rest of tutorial. Up to page 100, have a working CRUD system for a table. At this stage I think I understand how a lot of this works. I can see pros and cons of MVC, biggest con being that it will take a lot longer to get basic tasks working.
Thursday 8pm to 10pm
Just after 9 and making some real progress. Upto Page 135 of 185 in PDF. Learnt
how to make the application authenticate etc.
Am keeping it really simple at the moment. DB design supports everything I want
to do, but for now if a user wants to add a search term it is just added, it doesn't
check if it already exists etc. Will get this out and then improve in next re-iteration.
Also read about adding a map etc - some interesting functionality and a brief intro
to JSON but skimmed it.
Thursday 11pm to 12am
Making final push to finish document. Upto page 166 so not far to go, then tomororow
I can work on making this into my application.
Last few dozen pages deal a lot with testing, skimmed them and implemented a couple
of basic tests but this app wont need much initially.
Finished for tonight, tomorrow I design how I need these pages to work for the user
and implement!!!
Friday 10am to 2pm
Written small program to test as the service. Tomorrow I need to work out how to write an actual service to run on my server that will ping the DB and send alerts.
Saturday 1pm to 3pm
Had to make some masking changes to IIS because MVC does not work on IIS 6.0 (Server 2003). This article sums it up: http://www.asp.net/learn/mvc/tutorial-08-cs.aspx. Nasty! Working on Service to run on server.
Monday 2pm to 5pm
Converted my initial program into a service. Took a bit longer than expected because a. I haven't written one in a long time and b. They are a pain to debug. At this stage trying to keep things as simple as possible, but found Twitter Search API a bit slow unless you add a minimum message Id so did that and much quicker. Single threaded app at the moment, but should be easy enough to alter that if the need arises.
Tuesday 9.30pm to 11.30pm
Really need to do a push to get the website up and running. Learnt enough on MVC for what I needed and good to just get this out. Tonight managed to create classes that I need and connect them to security. I guess you could say it is at Alpha level - everything works but probably a bit too messy to release. Tomorrow do a bit of a tidy up, add some jQuery AJAX to handle adding and deleting searches and then do a "sales" page and should be good to go!
Wednesday 10am to 2pm, 4pm to 6pm
Trying to get everything finished today. Decided to add a little bit of jQuery stuff to make useability better, also realised I needed an unsubscribe. Site is now fully working and just needs some nice text on the main page and about page. My wife did a logo for me, all starting to look quite nice.
Wednesday 11pm to 12am
Found a bug in my service which took a while to trace and fix. Service now seems robust and pretty reliable.
Thursday 1pm to 4pm
This is my final push (writing this half way through, need to go out at 4). Search
works, although when you add a search term the add box still has a value afterwards
which is not ideal. This blog is pretty much complete.
Need to do an About page to say hi to the world. Need to make the home page a bit
flasher but all ths should be done by 4pm. Loads of work that can be done in the
future, but lets see if anyone uses it first - there is enough to be useful.
Summary
Physical Time Spent: 27 hours - plus a few hours thinking about ideas in bed, shower etc
Costs: The domain name was about US$8. I used about 10 sheets of paper and two sharpens of a pencil. I already have an internet connection and I happen to have an old PC setup as a server. But if you always left your PC on you could easily do this on a standard broadband connection using Dynamic DNS. I normally charge £600 quid a day for freelance development - interesting that for less than £3,000 you can get a site like this up and running.
Original Aims Achieved: Original aim was to learn ASP.NET MVC (I already know ASP.NET, C# and SQL Server so I didn't have to learn them). Secondary aim was to develop a useful application (not that it is unique). I think I have managed to get a good grounding in MVC. Application is useful for me, so happy there.
Other Achievements: Managed to get a Windows Service running that polls an external source, updates a database and e-mails users so happy about that. Also learnt a few basic jQuery things which is also good. I'm not a developer that "loves" writing code but this has been quite fun.
Thoughts on MVC (for ASP.NET): Microsoft has designed a nice Framework to do MVC development (bear in mind I know nothing of how PHP developers do it). For a small project like this it reprents a lot more work than web forms development, more than double the work I would say, maybe even three times more. But I can really see the benefits and will be using it for my main projects in the future.
Final Thoughts At This Stage: I did this to learn something and that has been achieved. By doing 2 or so hours most days it has taken 2 weeks. There are loads of semi useful application ideas around, would be good to see more people do such things. A lot of developers I work with spend a lot of their spare time fiddling with things but never develop anything real. Definitely worth looking at other sites and seeing how you can improve them etc - even if there is no money in it the experience will be useful. Want some ideas to develop yourself? Feel free to email me andrew[@]noisyrobin.com, I've got dozens.
Further Work Since Launch
Wednesday 12pm to 4pm
There were a few things that weren't quite working properly, plus I ran out of time to make a reasonable home page. That added to the fact that a few people have actually started using the site meant that I have decided I better tidy a few things up! Here is the list done today: Unsubscribe now works from e-mail. When adding a new search the search box is emptied. When deleting from the maximum number of searches you can now add a new search again. My Searches now equals My Alerts. About page tidied a little. Home page tidied a lot. Some sample searches added to show how to search.
From here I would definitely say Phase I is finished and the site is working well. The service is running that sends mails and has been stable for 6 days which is great (and surprising). I don't intend on doing any real development on the site from here. However it has been quite fun and I hope to do and hour here and there when I need a break from my other projects - probably first stop will be some SEO! I will document those changes here as well.
Total Time So Far: 31 Hours
