Project Description

This is primarly an academic project to explore .NET 3.5, specifically LINQ to SQL, Windows Workflow, WCF, ASP.NET AJAX and more.

The idea is to create a fictitiuos ASP (that could become real if someone wanted to but it is not the intent of the project) that is a mashup idea between DinnerNow (http://www.dinnernow.net) and an application I had built for DotNetNuke 3.x called Takeout Express.

Takeout Express was geared towards corporate intranets running the DNN Portal software. The idea came from working at an organization that we had very limited time for lunch and often had tight project schedules. I often found that others had the ability to go and would even pick up lunch for others. The Takeout Provider could collect orders and set parameters (such as where they were going, the maximum number of orders, what time they would broadcast (start taking orders) and when it would end. The application integrated with PayPal and even allowed users to collect a delivery charge for providing the service.

Takeout Users could then come on, see who was broadcasting, even subscribing to different audiences such as "Accounting, IT, or Purchasing" for an idea of scalability/organization.

DinnerNow was introduced and seemed to take this to another level, by providing an order system to restaraunts, delivery driver communication, etc. You can read more details on the site. My design goal is to create a mashup between the previous Takeout Express and Integrate with Dinner Now. I relaize there is overlap but that will be part of the fun to figure out.

I am using codeplex on this project to work on it from several locations as well as give opportunity for anyone else that is looking for something to move at a relativly easy pace and explore the language with a realistic but unpressured goal in mind. More in the Wiki

Background

As stated in the project description this project is meant to be academic, however that deserves a bit more of explanation. This isn't for a school project, just a chance to learn, play with new tools (to me in some cases, like CodePlex) and have a little fun. I'm a professional software developer by day, but I have a great love for development. Also, my current job is very structured and somewhat slow moving on technology, so we can't just implement .NET 3.5 on a whim, not without a lot of approvals. I'm sure there are several of you reading this that have similar situations. If anything, when we start working with these technologies, we are just that much more prepared.

This document will be "living", which I would define as constantly evolving. This means that the format will often change, most often with new content and general edits. I believe the Wiki format will make that more of a reality, and not keeping any documentation outside of the Wiki, Discussions and Issue Tracker. Because I'm taking this on as a hobby project I'm not concerned at the pace it moves at. Just in taking time to do everything according to my goals and not some fictional deadline.

To also comment on the idea of a living document. I don't want to set goals for the project to be too lofty, but to set small manageable goals for functionality and features. Software has no choice but to evolve. That doesn't mean we cannot discuss or plan features for the future, but if they aren't within the immediate goals, then we won't over think it. A bit of an agile approach.

Along with the technologies mentioned above I would like to use some better development practices. Including more unit testing, taking advantage of some UI testing packages, continuous integration if I can (though I don't know how useful that is on codeplex but we will see as time goes on). To create a completly self contained package like Dinner Now has done would be a nice goal to have.

The initial source code uploaded also includes a database schema for the Takeout Express portion of the software (the first part I want to create/recreate) with a few modifications. It also contains a support library using a controller pattern (maybe go MVC, maybe not, but the controller at least provides a nice separation and clear understanding of BLL.) A lot of the stuff that is in there now was just me playing with ASP.NET AJAX and Linq to Sql for the first time as well as a few other VS2008 tools (including VS2008). That will all change as this grows.

Takeout Express 1.0 for DNN 3.x

I've moved the Takeout Express 1.0 History to it's own page.

Vision / Inspiration

We know the vision/inspiration of creating Takeout Express from the history page to solve an actual need. But why try to solve the need at all? I remember seeing a movie a few years ago called e-Dreams http://en.wikipedia.org/wiki/E-Dreams, which followed Joe Park and his creation of Kozmo.com, a bike messanger based service out of New York. Joe had created a really neat idea dealing with the delivery of goods through existing infrastructure. HIs logistics were cool, but his inventory system seemed to be a hang up (although somewhat necessary in their model).

What was neat about Kozmo.com was fulfillment of immediate gratification for a lot of staple products, in particular movies. I think the idea was fantastic, but the execution may have been slightly wrong.

There are several visions of Delivery Boy. A short term or immediate vision, a mid term vision, and a long term vision. Without going into too much detail at this time
  1. Recreate the Takeout Express system into a service model.
  2. Be able to offer it as a free service to anyone wanting to use it.
  3. Create the Delivery Boy System, allowing anyone with verification become a delivery person for any number of merchants
  4. Integrate into Dinner Now - evolve into a complex automated system.
  5. Expand to different merchants other than restaruants (movies, convience store, etc)

Why open source?

With the exception of some personal tragedy, I've got a good life, great job, awesome wife, and some decent successes. I've learned quite a bit from those that donated their time and efforts to open source which has creatred some great products that have helped many people. I think in a lot of cases open source software is better than shop software because of the # of eyes that can be on it. There are different motivations behind it as well, in something academic like this you don't have dependencies, such as a mortgage, family, etc. However, keep in mind this is apples to oranges. If we were to look at what the cost would be to develop products like linux or dotnetnuke in a closed environment, the price would be astronomical. But for this project, it's time to try the other side of the world, i've never fully contributed to an open source project, now seemed like a good time.

And if this doesn't go anywhere, I'll just join another.

Project Goals

  1. Project Management
  2. Re-create the functionality of Takeout Express
    1. Migrate to ASP or Service based model
    2. Create Modules for a # of portal systems, including but not limited to DotNetNuke, Sharepoint, Vignette, Droopal, etc
  3. Implement Delivery Boy System
  4. Integrate with DinnerNow

Project Links

  1. Use Cases / Scenarios
  2. Comparing Takeout Express vs. DinnerNow.NET

How to Contribute

Check out the How to Contribute page to see how you can join the project and what role(s) you can fill.

Preliminary Release Goals are posted... because the release system is acting screwy on here.

Last edited Jan 6, 2008 at 4:46 AM by cege7480, version 14