Closed

Web server

Mini-server for email

You are asked to design and implement a mini-server to which the web client (project 1) connects to receive and send messages. The mini server runs locally on the same machine as the client.

In this way, your client (web interface) will even work without connections to the internet.

The main role of the mini-server is to maintain the collection of all messages, even if they are not intended for you. All email users must have their RSA key (private). The public key of the user identifies it; the public key plays the role of the user's address. Each message is encrypted with the public key (address) of the addressee, so only the addressee can decrypt it.

The mini-server can receive messages in two ways:

-either directly from a customer,

-by synchronizing with a peer, that is, another instance of the same server of another machine

Mini-server communication with the web client

The web client could be a Single Page Application accessible via resource /[login to view URL] or /[login to view URL] from the mini-server.

The communication between a client and the mini-server will be via AJAX technology (REST). Encryption and decryption will be done by the client because the server does not know any private key.

GET messages for a user

To search for the set of messages for a given user (represented by his public key), the web client will make a request such as:

GET /massages?dest=-----BEGIN%20PUBLIC%20KEY-----%0AMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAphXGu0yOMJaSHmKP3c70%0ANkBC9VG8jAWvEi0SOPbT4MfMq3WRA3HDEPU4dgZ4bh937zNevgebJUiUsTY4%2Ftbz%0APRPbXdPduT0sRP5%2B9REXuSg1pPDOQXcs8fmGRwy1uQukhrO%2FLOInFDsm%2BJnpeCXq%0A1Da6fQ%2F1iSojna3hoqapXxCntlyiVnV3j0Jpegs9ZI%2B3cQ06KHWZ%2Fd%2BO7jJ4LVDI%0AD%2B6b%2FnJkslcWXw9vqY8UFQAlwCF50y1xR%2FUbP9hH32%2FNff47bbFczOZdZFs827nN%0ATNMb%2BfDM%2BV830CEbl2qd4RVGOoqKPiQA%2BJ4G68D2wYJN86z2p3wlLSzXs08bFyH%2F%0ADwIDAQAB%0A-----END%20PUBLIC%20KEY-----

if the public key is (in PEM format):

-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAphXGu0yOMJaSHmKP3c70

NkBC9VG8jAWvEi0SOPbT4MfMq3WRA3HDEPU4dgZ4bh937zNevgebJUiUsTY4/tbz

PRPbXdPduT0sRP5+9REXuSg1pPDOQXcs8fmGRwy1uQukhrO/LOInFDsm+JnpeCXq

1Da6fQ/1iSojna3hoqapXxCntlyiVnV3j0Jpegs9ZI+3cQ06KHWZ/d+O7jJ4LVDI

D+6b/nJkslcWXw9vqY8UFQAlwCF50y1xR/UbP9hH32/Nff47bbFczOZdZFs827nN

TNMb+fDM+V830CEbl2qd4RVGOoqKPiQA+J4G68D2wYJN86z2p3wlLSzXs08bFyH/

DwIDAQAB

-----END PUBLIC KEY-----

As an answer, the mini-server will send messages to the user (encrypted with the key).

POST a message:

To send a message, the client must first encrypt it with the recipient's public key :

POST /message

{ "to": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAphXGu0yOMJaSHmKP3c70\nNkBC9VG8jAWvEi0SOPbT4MfMq3WRA3HDEPU4dgZ4bh937zNevgebJUiUsTY4/tbz\nPRPbXdPduT0sRP5+9REXuSg1pPDOQXcs8fmGRwy1uQukhrO/LOInFDsm+JnpeCXq\n1Da6fQ/1iSojna3hoqapXxCntlyiVnV3j0Jpegs9ZI+3cQ06KHWZ/d+O7jJ4LVDI\nD+6b/nJkslcWXw9vqY8UFQAlwCF50y1xR/UbP9hH32/Nff47bbFczOZdZFs827nN\nTNMb+fDM+V830CEbl2qd4RVGOoqKPiQA+J4G68D2wYJN86z2p3wlLSzXs08bFyH/\nDwIDAQAB\n-----END PUBLIC KEY-----",

"msg": "be0X/are25Ajj2KyNnmoHwJyheGZzXURcNsAFN++l5OO2YW74Mk0tx4CQAYmdloLBGV3Z9sxMjEPSMMTePAUSSnMKugXxW12FsBYK2L8FpQyjGbV6gCp+AgBq92HXeJk3NNJfUcPH0hpE6S49RyZwXgpLUIG9eo2MHn9Sj/Y6sWsdZylidDxPI1QEnK/y4iUe+2ql+SKLHLoXsKzBRnvqI9nGMiQOJICRAo1Utag5zxII+x1R3wFrs7/Vb7niS+0ZOu9fy1beGYsiRuylmdmg9f1Wg9oKKzuU9YG5kf40BAWP05SZudLYjIsJdLECBLSi6aqMncwXWNXeQA/QFTGLA=="

}

Mini-server communication with peers

Peer communication will allow the distribution of messages. A mini-server should support two types of queries:

share messages, via GET / messages; and

share the list of peers, via GET / peers.

Skills: Website Design

See more: web server software, web server software definition, web servers list, how does a web server work, web server apache, web server technologies, types of web servers, web server vs application server, circuit board - 16/05/2017 00:13 EDT, silverlight per web os tv 04.00 30, source web server, embedded java web server microcontroller, create directory web server, objective http web server, setup mirror web server, debian etch web server, setup linux web server, proxy server list, create web server, counter strike server list script

About the Employer:
( 2 reviews ) gatineau, Canada

Project ID: #16656405

12 freelancers are bidding on average $22/hour for this job

best1

Hi there, We are not those who are in a hurry to bid without understanding the complete requirement of the bidder which creates ambiguity at a later stage. It also cost us our valuable time and time is money. Hav More

$27 CAD / hour
(222 Reviews)
9.7
seoaceindia

Hello, I have studied Project in details and We are very confident getting you a clear solution Custom website Development with high quality Design, Mobile Responsive site with guaranteed results and a site which is More

$16 CAD / hour
(69 Reviews)
7.0
$22 CAD / hour
(9 Reviews)
6.0
ieota

Hi, Greetings of the day! Thanks for sharing your requirements on Freelancer as I have gone through your job post and well understood your requirements and we are quite sure that we can deliver better solutions. More

$22 CAD / hour
(47 Reviews)
6.1
GauravNargotra

Hi, Hope you are doing well! I have read your job description along and assure you that I am a perfect fit for the job. I have experience with PHP from last 6 years and I have excellant web development skills (HTML5 More

$61 CAD / hour
(20 Reviews)
4.3
softhunters

Hello, I have analyzed your requirement and have an experience with the same in the past. I have more than 7 years of work experience in web development. PLease come to for further discussion. My skills PHP, More

$16 CAD / hour
(7 Reviews)
4.3
symaticssolution

Dear Client, I have read your job post and understand your needs,I am ready to design and implement a mini-server in which the web client connects to receive and send messages.I am rady to start work [login to view URL] pin More

$15 CAD / hour
(15 Reviews)
5.6
BEAS24X7

Hi, This is from BEAS Consultancy and Services Pvt Ltd ( [login to view URL] ). We are an India based CMMI level 3 and ISO Certified Organization. We produce quality and Cost effective solution to our int More

$16 CAD / hour
(3 Reviews)
3.2
officialyogi

Hello, I am Steve from Finest-Design. I have gone through your need (Web server) in detail. It seems easily achievable by our skillful developers that can deliver quality work and offer you a proper solution with More

$20 CAD / hour
(5 Reviews)
3.0
JigyaD

Greetings! Thank you for posting the job. We have good experience in website design & development and having excellent skills to fit on your requirement. We are an excellent team with combined experience of 8+ y More

$15 CAD / hour
(4 Reviews)
2.6
$22 CAD / hour
(1 Review)
1.4
Mobileappsoln

Hello I can understand your requirement, I have gone through your project t description. we developed similar website as per your requirement. We have a team of expert developer, they have more than 5 years of More

$16 CAD / hour
(0 Reviews)
0.0