*Multi-Threaded Client-Server application for uploading/downloading files to/from a centralized storage server.
*
**Server Functional Specs:
**NT Service, The server should be built with an asynchronous server sockets, so execution of the server application is not suspended while it waits for a connection from a client(s). Probably TCP rather than UDP. *Must be written 100% in C#.[login to view URL]*
Must be able to handle simultenaous connections from multiple users and/or single user uploading on multiple threads.
Make a room(dummy class) for user authentication, although in this project you can hard code 2-3 accounts. Database connectivity/user verification will be handled by someone else.
**
Client Functional Specs:**
Installs in My Computer as user selected drive letter. 3 listview controls, local drive, remote account and upload/download progress, username to connect (one of the 3 in the dummy class on the server)
The client should be built with an asynchronous client sockets, so execution of the client application is not suspended while it waits for a connection from a server. Smaller is better i.e. C++ / Delphi / Java (justify your choice)
Incomplete uploads must be showed but not be allowed to be downloaded until they are marked as completed.(maybe grayed out) i.e It is possible for two people using the same account at the same time.
Make sure port is not an issue for firewall protected clients or machines with NAT
**REQUIREMENTS:
**#1 Upload Speed is of critical importance
#2 Data Integrity, resend bad packets
#3 Dropped connections must re-establish until all operations are finished
#4 no third party components
## Deliverables
**BID ACCEPTANCE RULES:
**At this point we are looking for submissions of preliminary technical specifications. You must be able to explain how the applications will be designed, How will client and server interact together. How will the multithreading will be handled on the server. It should include your ideas on upload/download speed improvement and data integrity verification. Simple visual diagrams would be a big help here.
UNLES YOU PREPARE A DOCUMENT WITH EXPLANATION ON HOW YOU PLAN TO ACCOMPLISH THIS TASK, YOUR BID WILL NOT EVEN BE LOOKED AT. PLEASE DO NOT WASTE OUR AND YOUR TIME.
**FINANCIAL:
**Upon our approval of the winner bid (if any) you will have about 2 months to complete this project. Bi-Daily code builds will be required of you. Please do not hesitate to bid high if you can justify it in the documentation.
QUALITY AND INTEGRITY OF YOUR PRODUCT ABOVE ALL
PEACE.
**DELIVERABLES:**
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
SERVER - MS WINDOWS 2003 SERVER
CLIENT - 98,ME,2000,XP (keep it small ;)