You can do this. First you should create html form to enter and send product data to controller. Required attributes such as name, sku, status, visibility, tax_class, price, description, short-description and other attributes wich is needed to built your catalog logic - all has own input and input type. Use this attributes to figure html form.
Second you should get and validate all data through controller and create new product:
$data=$this->getRequest()->getPost();
//$data validation logic here
$paroduct=Mage::getModel('catalog/product');
//if some Magento entity/collectioan related error appears use next line;
//Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
//there is required attributes
$product->setAttributeSetId($product->getDefaultAttributeSetId())
->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
->setSku($data['sku'])
->setName($data['name'])
->setPrice($data['price'])
->setTaxClassId($data['tax_class_id'])
->setVisibility($data['visibility'])
->setCreatedAt(now());
//you can add your extra attributes here
$product->setBrand($data['brand']);
//.....
try{
$product->save();
Mage::getSingleton('customer/session')->addSuccess("Product created successfully!");
}catch(Exception $e){
Mage::getSingleton('customer/session')->addError($e->getMessage());
}