Overview: This application will facilitate a collaboration process by allowing one computer to share the desktop with other meeting participants.
Participants who have joined the collaboration session can be granted permission to take over control of the main presenter’s screen. Participants can also show their own screens.
This project is a simplified GotoMeeting or GoToMyPC or Lync Sharing.
High-level Architecture: There is a server component which manages collaboration sessions. It needs to manage multiple sessions each having multiple users. The sessions themselves must remain distinct and private. There is a client component which shows the shared screen and manages control. Note that one person in the session is considered the moderator and can allow or not allow control to any other participant. Also note that participants must be able to communicate through audio communication. There must be a file transfer mechanism so that any user can receive a file from another user.
Windows already has RDP APIs built into it, and this can be used as a starting point.
The server component needs to function as a stand along application. The server platform is Windows Server 2012. SQL Server 2008 R2 is installed on the computer and may be used if necessary.
The development environment IDE must be Visual Studio 2010 or 2012. The language can be either C++/Native or C#/.NET. Code must be professionally written according to current standards.
The server component should be delivered in two versions. One is a GUI-based app that shows statistics on users and sessions. The other is a Windows service that logs statistics on users and sessions into SQL server so that an app that will be written later can show the stats.
Sessions include the following information:
• Session/Meeting ID (comes from client)
• List of user IDs, and a flag for the user who is the moderator—should include time zone of each user
• Description/Title of the session/meeting (comes from client)
• Start time
• End time
• Who’s screen is showing
• Who has control
Server component must get relevant information from all users and disseminate to all users. This includes added users and dropped users.
There must be a configuration file for values that the server component may need such as port number and maximum concurrent users per session.
The client component is installed on each computer. It is invoked from a web page. (Will need a simple web page to demo this functionality.) If the software is not installed, a prompt asks user to install. Once installed, there is still a prompt to run the app from the web page.
When the app is run, the web page will include session ID, user ID, time zone, and whether the person is moderator as command line parameters to the application. The application will send these to the server component as the session is established or joined.
There must be a configuration file for values that the client component may need such as port number and destination URL. This must be installed with the app.
For the moderator (or whoever has permission to show their screen), video is collected and sent to the other participants. For the participants, the received video is displayed. For all users, an audio conversation is maintained from the client microphone and played over headset of speakers.
Platforms: Initially only Windows 7+. The next platform will need to be Macintosh. Finally, tablets must have a reduced functionality set of view only. Note that Macintosh and Tablet versions can be negotiated as a part of the project acceptance. It is acceptable for a worker can accept this project and not agree as long as that is agreed upon from the outset. However, it is preferable to have one project with PC, Macintosh, and Table milestones.
15 pekerja bebas membida secara purata $2872 untuk pekerjaan ini
Hello, what is your deadline for this project? Also when are you planning to start it? I can do your project using C++. Feel free to ask me any questions you may have. Thanks in advanced.