Module and Custom Content Type I am trying to create a module (Drupal 7) which will have the following workflow:
 1. User enters data via form  (frontend)
 2. The data is validated and get stored in database (custom content type e.g. Reservations )
 3. User will receive confirmation e-mail
 4. User will be redirected to another page
 5. Data will be manipulated by Admin (CRUD functionality)

Ideally, I would create custom content type via GUI e.g. Reservations. And when use the Views module to manipulate the data.
Could anyone suggest any tutorial or explanation about how should I proceed
Pls. Note that already played with Webform module and found that I prefer to do it via custom module and Form API 

Thank you in advance
You can do it via drupal's form API, First create your content type

1.Create a module (http://drupal.org/node/361112)

2.Create menu callback

function form_example_menu() {
  $items = array();
  $items['examples/form_example/tutorial'] = array(
    'title' =&gt; 'Form Tutorial',
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('form_example_tutorial_1'),
    'access callback' =&gt; TRUE,
    'description' =&gt; 'A set of ten tutorials',
    'type' =&gt; MENU_NORMAL_ITEM,
  );
}


3.Use form api create form with necessary fields

function form_example_tutorial_1($form, &amp;$form_state) {
  //your fields goes here
   $form['name']['first'] = array(
     '#type' =&gt; 'textfield',
     '#title' =&gt; t('First name'),
     '#required' =&gt; TRUE,
     '#default_value' =&gt; "First name",
     '#description' =&gt; "Please enter your first name.",
     '#size' =&gt; 20,
     '#maxlength' =&gt; 20,
   );

 }


4.Add necessary validation

function form_example_tutorial_1_validate($form, &amp;$form_state) {
  //your validation goes here
}


5.Add form submission codes

function form_example_tutorial_1_submit($form, &amp;$form_state) {
  //here you can process your data, in your case you want save it to a content type. so you can use node_save here
  $node = new stdClass();
  $node-&gt;title = $new_node['title'];
  $node-&gt;body['und'][0]['value'] = $new_node['body'];
  $node-&gt;type = 'article';
  //include all necessary fields
  node_save($node);

  //after success full save you can  write code for confirmation e-mail and redirection page
 }


6.As you have saved data to a content type, You can create a view with all required details, with edit delete functionality

If you have any doubt in module development and implementing form api you can get examples on this page http://drupal.org/project/examples

hope this may helps you