Si claro que se puede hacer eso en web, puedes hacer todos los calculos usando javascript y almacenarlos en una base de datos, usando php y mysql.
 
Te paso un ejemplo de codigo usando jquery 
Código:
 $("#hallartotal").click(function () {
         /// Hallar la suma de los elementos
		var total_direct = 0;
		$('.items').each(function () {
		total_direct += Number($(this).val());
		});
		/*
		for (var i = 0; i < 5; i++) {
 		   total_direct += Number($('.items').eq(i).val());
		}
		*/
		//alert(total_direct);
            /// Redondeo costo
		$('#ftotalcost').val(redondear(total_direct));
            /// Calculo el 5% del total
		$('#fprofit').val(redondear(total_direct*0.05));		
		$('#foverhead').val(redondear(total_direct*0.05));		
                 ///  Hallo el costo total
		total=total_direct+(2*total_direct*0.05);
		$('#ftotal').val(redondear(total));		
	});
  Todos los nombres con "#" hacen referencia a un campo de texto con ese id, como se muestra en el formulario correspondiente: 
 Código HTML:
 <form name="frm_proof" method="post" action="index.php?page=proofs_edit">
<fieldset id="form">
	<legend>Edit Bid Doc</legend>
    <ol>
	    <li id="item_1"><label>Name</label>
      		<input name="fname" type="text" size="30" value="Randolph Square" />    
   	  </li>
   	  <li id="item_1"><label>HVAC</label>
      		<input name="item_1" type="text" class="items" value="26800" size="10" />
	</li>
    <li id="item_2"><label>Electric & Fire Alarm</label>
        	<input name="item_2" type="text" class="items" value="50710" size="10" />
	</li>
    <li><label>Total Direct Cost</label><input name="ftotalcost" type="text" value="192790" size="10" id="ftotalcost" /></li>
    <li><label>5% Profit</label><input name="fprofit" type="text" value="9639.5" size="10" id="fprofit" /></li>
    <li><label>5% Overhead</label><input name="foverhead" type="text" value="9639.5" size="10" id="foverhead" /></li>
    <li><label>Total Contract Price</label><input name="ftotal" type="text" value="212069" size="10" id="ftotal" /></li>
    <li><input type="submit" name="submit" value="Grabar" /></li>
	</ol>
</fieldset>
</form>