CMSMadeSimple Job

Have a question or a suggestion about a 3rd party addon module or plugin?
Let us know here.
Locked
romeo1

CMSMadeSimple Job

Post by romeo1 »

Hello

I posted a project on RentACoder site. If you think that you can develop it, please bid on it:

http://www.RentACoder.com/RentACoder/mi ... tId=474330

We are interested in a long time colaboration and this is our first project(we intend to develop 30-40 modules).
Piratos

Re: CMSMadeSimple Job

Post by Piratos »

This is an uninteresting 100$ job and for me it is spam.
romeo1

Re: CMSMadeSimple Job

Post by romeo1 »

I'm sorry if this job is not for you, but it isn't spam. I'm a real person and I'm interested to find a good programmer for a long time job.
tsw
Power Poster
Power Poster
Posts: 1408
Joined: Tue Dec 13, 2005 10:50 pm
Location: Finland

Re: CMSMadeSimple Job

Post by tsw »

Please do not double post, developers discussion is right place for this kind of topic
Piratos

Re: CMSMadeSimple Job

Post by Piratos »

Uninteresting - this is the 100$ Job:
The project is to develop a module for the CmsMadeSimple  CMS. (http://www.cmsmadesimple.org).

The module will use the following tables:


Table Name
Sql Note  
County CREATE TABLE county(
Id BIGINT (10) UNSIGNED AUTO_INCREMENT,
Name VARCHAR (50),
PRIMARY KEY(Id),
UNIQUE(Id),
INDEX(Id)) Contains all the counties  
City CREATE TABLE city(
Id BIGINT (10) UNSIGNED AUTO_INCREMENT,
CId BIGINT (10),
Name VARCHAR (50),
PRIMARY KEY(Id),
UNIQUE(Id),
INDEX(Id)) Contains all the cities. To display all the cities from a county:
select * from city where Cid in (select Id as Cid from County where Name= “The County”)  
Org Create table org
(OrgId BIGINT (10) UNSIGNED AUTO_INCREMENT,
Name VARCHAR (50),
PRIMARY KEY(OrgId),
UNIQUE(OrgId),
INDEX(OrgId)) Contains all organizations  
Branch CREATE TABLE branch
(brId BIGINT (10) UNSIGNED AUTO_INCREMENT,
orgId BIGINT (10) UNSIGNED,
County VARCHAR (50),
City VARCHAR (50),
Address VARCHAR (50),
Phone VARCHAR (12),
Fax VARCHAR (12),
Email VARCHAR (50),
EmailToSend VARCHAR (50),
other VARCHAR (100),
PRIMARY KEY(brId),
UNIQUE(brId),
INDEX(brId)) Contains the organizations branch. To display all the branch of a specific organization:
Select * from branch where OrgId in (select Id as OrgId from Org where Name=”OrgName”)  
productCat CREATE TABLE productCat
(id BIGINT (10) UNSIGNED AUTO_INCREMENT,
Name VARCHAR (50),
PRIMARY KEY(id),
UNIQUE(id),
INDEX(id)) Contains the products categories  
products CREATE TABLE products
(Id BIGINT (10) UNSIGNED,
catId BIGINT (10) UNSIGNED,
orgId BIGINT (10) UNSIGNED,
productName VARCHAR (50),
min FLOAT (10),
max BIGINT (10) UNSIGNED,
periodMin BIGINT (10) UNSIGNED,
periodMax BIGINT (10) UNSIGNED,
Custom1 CustomType,
...........
EmailToSend VARCHAR (50),
PRIMARY KEY(Id),
UNIQUE(Id),
INDEX(Id)) The products table. To display all products of a category:
Select * from products where CatId in (select Id as CatId from productCat where Name=”CategoryName”)
This is a custom table!!! This means that it can be defined by the site admin as he wishes (the Id, CatId, OrgId, ProductName and EmailToSend fields are required).  
productForms CREATE TABLE productForm
(Id BIGINT (10) UNSIGNED,
prodId BIGINT (10) UNSIGNED,
ElementName Varchar(10),
PRIMARY KEY(Id),
UNIQUE(Id),
INDEX(Id))
This is a table that contains the definition of a HTML form that is associated with a product. To display all form fields for a product:
Select ElementName from productForms where prodId in (Select idAsProdId where productName=”The name of the product”)

(*) A custom table is the table that is defined by the site administrator in the administrative section.

The functioning

Step 1 is to fill in a form with the following information:

  The product category
  The value (InputBox)
  The Currency (SelectBox)
  The Period (SelectBox)
The values for Period and for Currency select boxes has to be setup in the admin section (please see description in the Administration Section | Page 1)

Step 1.1 is to fill in a form  with the following information:

The county (select box)
The locality (city, town, etc.) (select box)

When the county changes, the select box Locality will be filled in with the localities from the selected county (it already exists in JavaScript and I will provide it).


Step 2:
  Based on the data from Step 1, it shows a table containing the information from the Products table, following the following restrictions:
Value Field>products.min
Value FieldPeriodMin and Perioda.min
and
ValueFielda.PeriodMin
and
user_period>a.PeriodMax
and
a.catId=b.Id
and
a.orgId=c.OrgId
and
c.City=userCity
select a.* from products as a, productCat as b, branch as c
where
b.name=product_category
and
ValueField>a.min
and
ValueFielda.min
and
ValueFielda.PeriodMin
and
user_period>a.PeriodMax
and
a.catId=b.Id
and
a.orgId=c.OrgId
and
c.County=userCounty
select a.* from products as a, productCat as b, branch as c
where
b.name=product_category
and
ValueField>a.min
and
ValueField< a.max
and
a.Currency=userCurrency
and
user_period=a.PeriodMin
and
a.catId=b.Id
and
a.orgId=c.OrgId
and
c.County=userCounty
 
Note: The data that is sent by the user is italic.


It will be shown as a table the fields defined by the administrator in the administrator section
The generated grid will have to be able to be sorted by each column (I prefer the sort to be done in javascript/dhtml).
The products sorted in the grid will be able to be compared. For this, in the grid, only a maximum of 4 products will be selected in order to be compared. To compare, the button COMPARE will be pressed.


Step 3 – Detailed information

When we click on a product shown on Step 2 a new window opens, containing details regarding the product (the data comes from product table). If a product has a form defined in the table productForms, this form will be shown in this page.
The form will have the following camps:
A select box, which contains all the branches corresponding to the locality selected by the user in Step 1. If there is no branch in the respective locality, the list with the branches from the respective county will be shown, and, if this list is also empty, the list of all the branches will be shown;
The fields from the table productForm corresponding to the selected product.

When the form is filled in, it will be sent to the following e-mail addresses: the address defined in the table branch.EmailToSend  and the address defined in the table products.EmailToSend. ATTENTION! The e-mails are not to be sent using formByMail, but by an e-mail transmitted from the site and formatted according to a template defined in the administration section(page 4).

Step 4 – Comparing the products

On the selection made in Step 2 a grid containing the name of the products and their characteristics from the table product will be shown. The list will look like the following table:


Product1 Product2 Product3 Product4  
CustomField1 Value1 Value2 Value3 Value4  
CustomField2 … … … …  
CustomField3 … … … …

In this grid, one will be able to click on the products for detailed information (the same as in Step 2)

Administration section

Page 1 – Defining the details regarding the custom tables:
The name of the tables that will be used by the module (names for productCat, products, productForm table); the module must be able to work with tables that has different names;
The currencies that are to be listed in the Step1 for currency SelectBox
The SetPeriodFlag (a checkbox); this flag is used in Step 2


Page 2. Defining the templates for each generated page (steps 1-4).

Page3. An interface to edit the products and productDetail tables.

Page4. Defining the forms associated to certain products and email templates
In this page, to each product we can associate certain forms. This means that, from this page, the administrator can add fields to a form, can delete fields or can modify it.
Locked

Return to “Modules/Add-Ons”