Find Jobs
Hire Freelancers

Write some software

$30-250 USD

Closed
Posted almost 7 years ago

$30-250 USD

Paid on delivery
I need you to develop some software for me. I would like this software to be developed for Linux using Python. The consulting firm ConTech has expanded internationally. In order to keep the costs down they want their employees to provide remote consulting services to the customers. The consultants have requested that they must have access to a Internet whiteboard application to enhance their communication with the customers. Upon start, the application must connect to a predefined admin server. The IP address of the admin server is configurable, so users can change it at any time. There are three types of user accounts: a predefined admin account, employee account and customer accounts. The admin account can create the other type of accounts as well as modify critical aspects of the system. Employees can create customer accounts, configure and start whiteboard sessions. Customers can join existing sessions. When an account is created an e-mail is sent to the owner of the account with login details and validity period for the account. The user account must be maintained in a SQL DB. A whiteboard session consists of a set of potentially unlimited number of users (participants) and a set of whiteboard sheets. Each user is running the application on their own device. A sheet is a display window whose contents are replicated on all devices in real-time. The participants can simultaneously draw and type text on the sheets. A set of standard shape drawing tools must be provided: line, arrow, circle, oval, square, rectangle, poly-line, text, eraser and free-drawing tool. For each tool, the user must be able to select thickness, the drawing color and the filling color (just like in other drawing applications). For text, there is no thickness or filling color. Instead, the user selects the font, size and optionally a modifier such as italics and/or bold. The users can't undo changes or move shapes, but they can erase. One of the participants is designated as moderator. By default, this is the creator of the session. However, the creator can assign the moderator role to any participant. The moderator can lock access to a sheet (to prevent editing wars), sequentially undo modifications and change to a different sheet. Each modification is saved in a list stored on the admin server (preferably in a DB). The modification data consists of a index, a timestamp, the name of user that produced the modification, and the type of modification and on what sheet occurred. After a moderator has locked the whiteboard, it can undo modifications. The undo operation retrieves the last change from the list. It then redraws the same shape, but all in white so that is indistinguishable from the background. The next undo operations picks the next modification from the back of the list. The undo modification are also saved to the modification list (so that participants can see that their work has been undone). However, the undo modifications have a special status in the list. They cannot be modified by later undo operations. An undo operation always select the latest regular (not undo) operation. It must be possible to save and reload the list of changes. When the list of changes is reloaded the whiteboard is cleared (all sheets). Then, a user should be able to move sequentially through the modifications by clicking the mouse. For each click, the next modification from the list is added to the whiteboard and the modification timestamp and name of user responsible for it are shown. It must also be able to playback all modifications automatically by providing a delay between each modification shown. Since the whiteboard communication goes across the Internet, ConTech insists that all forms of communication are encrypted. They suggest that certificates should be used for each user as well as for the central server hosting the database. Certificates can be self-signed in the release to the customer. Encryption features provided by well-known libraries such as OpenSSL/LibreSSL, libcurl or standard Java/Python libraries (for example, HttpsURLConnection, [login to view URL], [login to view URL]) are allowed to be used. It should be possible to restart the system with encryption disabled for debugging purposes. Finally, ConTech requests that all interaction user-to-user and user-to-server be based on a RESTful API with JSON data encoding. Such an API should be easily testable by using HTTP(S) and the command-line utility curl, from the package libcurl. You must be able to demonstrate that your product supports at least 3 simultaneous users. We are done with 70% of the work, except the encryption,REST API, and playback feature. If you can do the above three , you can bid.
Project ID: 14222601

About the project

7 proposals
Remote project
Active 7 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
7 freelancers are bidding on average $197 USD for this job
User Avatar
Hi, Thanks for giving me this opportunity to give you proposal for your requirement. I have reviewed your requirement and i find this quite interesting, i would like to work on this project. Relevant Skills and Experience We are team of 30+ team players. from those we have best Wordpress & PHP developers with 5+ years of experience and they are pioneer in customize development Proposed Milestones $333 USD - Initial Milestone
$333 USD in 12 days
4.9 (104 reviews)
5.7
5.7
User Avatar
Hey We are a team of Technical Developers and have got expertise in such stuff. Ping me if you are looking for a quick resolution
$190 USD in 3 days
4.7 (5 reviews)
2.6
2.6

About the client

Flag of INDIA
India
0.0
0
Member since Jun 19, 2013

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.