所有软件外包项目 Gray arrow bg Simple ad/Content server

Simple ad/Content server 资金已经托管 线上项目,线下洽谈,智城安排

发包方 : Magunal 状态 :竞标已结束
项目编号 : 102111
项目预算 : $500-1,000
开发周期 : 7 天
技能 : MySQL Testing PHP
发布日期 : 2010-05-13

描述

Very simple server application developed with PHP and MySQL. Server will deliver text, image, html content when invoked with content id number. Request will be http get. It will also be able to collect client data sent via http post request. Some draft design notes are below:

Ad/Content Server
1. Ad/Content Delivery

Database Schema – ItemMaster:
Item_ID – PK, Integer : Unique id number of the item stored
Group_no - Integer : Id of the group if it belongs to one. Otherwise null.
Group_weight - Integer: Percentage weight of the item among other items in same group(0-100)
Item_Type – String (Ad/Content) : Type of the item: ad or content
Item_name – string : Name of the stored item
Owner – string : creator of the record, user name
Data_type – integer (text, html, image, movie, other file, URL, redirect)
Data_location – string (this table, file system, sql, url)
Data1 – string
Data2 – string
Data3 – string
.
.
Data10 – string

*Item_ID=0 is the default item delivered if there is no corresponding item in database
Data Types:
Text/URL – When invoked by http GET method single line text is returned. For multiple string data stored in `Data` columns pipe(`|`) separation is used excluding null columns. (i.e. data1|data2|data3)
Html – When invoked an html page is returned. Html code can be stored in Data1 field. Other data fields cannot be used for html data type. Html code can also be stored as a file on the server; in this case file path is stored in data1 column. Location of data is varies according to data_location field
Image/movie/file – When invoked image/movie/file content is delivered. Images can only be stored in file system. File path is stored in Data1 field
Redirect – When invoked client is redirected to another URL which is stored in Data1 field

Data Location:
This Table: Available for Text, url, html, redirect data types.
File System: Available for html, image, movie, file data types. File repository must be separate folder under application root.
SQL: Available for Text, url, html, redirect data types. (An SQL statement stored in data1 field returns the data from database. SQL must return single field; otherwise returns error code)
URL: Available for text, html, image, movie, file data types

Client Request/Invoking: sereverURL/Magadcontentserver/server.php?item=item_id

2. Impression Count

Schema:
Item_id – integer : Id of the item from itemMaster
Browser_type – string : Client browser (i.e. safari, IE, Mozilla etc.)
Impression_count – Incremented for each request

3. Item grouping
Schema:
Group_id – Integer : Unique id of the group
Group_name - string: Name of the group
Owner – string: creator of the group, can be reassigned

Client Request/Invoking:
sereverURL/Magadcontentserver/server.php?group=group_id

Items in itemMaster can be grouped under one group_id. Client can request the group item. In this case Group_weight field in itemMaster determines the probability of item delivery when there are multiple items in a single group. For instance, group 1 has two items: item 10 and item 20 in itemMaster with weights of 25 and 75. Server will deliver item 10 once in every 4 request and rest of the requests will invoke item 20.

4. User Management

Schema - userMaster:
User_name- string
Password – string (Base64 encryption)
Level – integer (0-admin, 1-group Level, 2-item level)
Right – integer (0-all, 1-read, 2-read&modify,3-Read&modify&add new) Only admin can delete

Admin level users can reach any data via interface. Can see all data.
Group Level users can reach group and item data via interface. Can only see data of his own (decided by owner field in each table)
Item Level users can only reach item data via interface. Can only see data of his own (decided by owner field in each table)

User and owner data can only be available to admin.

5. Interface, web
a. Login Page (Simple design will be provided. Only username/password fields with login button)
b. Menu – Items, groups, users, forms
c. Item List – content of ItemMaster and total impressions (paging for every 50 record)
d. Group List – content of groupMaster (paging for every 50 record)
e. User List – Content of userMaster (paging for every 50 record)
f. Add new item/group/user – reached via a button on related list page. File upload functionality.
g. Edit item/group/user – reached via a button on related list page for each record. File upload functionality. Primary key id’s cannot be edited. Owner can only be edited by admin.
h. Delete item item/group/user– reached via a button on related list page for each record
i. Impression detail (pop-up shows impression count grouped by browser type for a single item)
j. Change owner – Reassignment of owner for items and groups available for admin level only. Separate Pop-up requesting new owner or embedded in edit page.

6. Data Collector – collects client data via HTTP Post

Schema - formMaster:
Form_id - integer
Form_name - string
Owner - string
Auto_email - `;` separated string

FormData:
Timestamp
Form_id - integer
Value_1 - string
Value_2 - string
Value_3 - string
.
.
Value_20 - string

Client Request/Invoking:
sereverURL/Magadcontentserver/server.php?form=form_id&value1= Jonathan+Doe&value2=…
Reply: 100 OK or 999 Error Message
If auto_email field in formMaster is not null tries to email the new record to stored email addresses.
Admin only interface: It will be added to above mentioned interface and available for admin only. List, add new and edit pages for formMaster. Report page for FormData with paging. Report can be filtered by date, time and form_id. Report can be exported into a ` ; ` delimited .csv file. Export is for all data queried even if only some part is shown because of paging.

Other Project Issues: Must be developed with PHP and MySQL. Must perform well for concurrent requests. Data caching must be used. Database table indexes must be created appropriately. Must log all errors in detail with timestamp in a file. Explanatory error codes for client side. Detailed explanation of code with comments must be provided. Detailed instructions of installation must be provided.
This document sets design boundaries of the project. Developer may suggest more complex functional and data design alternatives. Suggested alternatives must be agreed on since project must keep simplicity

竞标

请您先登录,然后提交此项目的竞标方案。
还不是智城用户? 智城期待您的加入,请注册成为我们的一员吧!
Project ad2