CryptoBook è un social network che permette di scambiare e crittografare i messaggi/posts.
Front-end: React, Bootstrap
Back-end: Node, Express
Database: MongoDB, Mongoose
Version Control System: Git
Aver installato i seguenti software:
Scarica il progetto
git clone https://github.com/MatteoT92/cryptobook.git
Installa le dipendenze richieste dal server e client
cd backend
npm install
cd frontend/cryptobook
npm install
Avvia il server
cd backend
npm start
Avvia il client
cd frontend/cryptobook
npm start
Per testare la web-app occorre andare sul browser e digitare il seguente URL
http://localhost:3000/
Nel caso vogliate testare le API, costruite per far funzionare l'applicazione, potete utilizzare Postman ed effettuare le varie chiamate che desiderate testare.
POST http://localhost:5000/login
Parametri | Tipo | Descrizione |
---|---|---|
username |
string |
Obbligatorio. Username |
password |
string |
Obbligatorio. Password |
POST http://localhost:5000/sign
Parametri | Tipo | Descrizione |
---|---|---|
username |
string |
Obbligatorio. Username |
email |
string |
Obbligatorio. E-mail |
password |
string |
Obbligatorio. Password |
photo |
string |
Obbligatorio. Stringa Base64 Immagine Foto profilo |
GET http://localhost:5000/api/photo?username=:username
Parametri | Tipo | Descrizione |
---|---|---|
username |
string |
Obbligatorio. Username |
GET http://localhost:5000/api/messages?user=:user&friend=:friend
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
friend |
string |
Obbligatorio. Utente amico con cui avviene la chat |
POST http://localhost:5000/api/msg/encrypt
Parametri | Tipo | Descrizione |
---|---|---|
message |
string |
Obbligatorio. Messaggio da inviare |
key |
string |
Obbligatorio. Chiave segreta per crittografare il messaggio |
POST http://localhost:5000/api/post/encrypt
Parametri | Tipo | Descrizione |
---|---|---|
message |
string |
Obbligatorio. Post da inviare |
key |
string |
Obbligatorio. Chiave segreta per crittografare il post |
POST http://localhost:5000/api/comment/encrypt
Parametri | Tipo | Descrizione |
---|---|---|
message |
string |
Obbligatorio. Commento da inviare |
key |
string |
Obbligatorio. Chiave segreta per crittografare il commento |
POST http://localhost:5000/api/msg/decrypt
Parametri | Tipo | Descrizione |
---|---|---|
message |
string |
Obbligatorio. Messaggio inviato/ricevuto |
key |
string |
Obbligatorio. Chiave segreta per decrittografare il messaggio |
POST http://localhost:5000/api/post/decrypt
Parametri | Tipo | Descrizione |
---|---|---|
message |
string |
Obbligatorio. Post inviato/ricevuto |
key |
string |
Obbligatorio. Chiave segreta per decrittografare il post |
POST http://localhost:5000/api/comment/decrypt
Parametri | Tipo | Descrizione |
---|---|---|
message |
string |
Obbligatorio. Commento inviato/ricevuto |
key |
string |
Obbligatorio. Chiave segreta per decrittografare il commento |
POST http://localhost:5000/api/msg/send
Parametri | Tipo | Descrizione |
---|---|---|
sender |
string |
Obbligatorio. Utente loggato |
receiver |
string |
Obbligatorio. Utente amico con cui avviene la chat |
message |
string |
Obbligatorio. Messaggio da inviare |
POST http://localhost:5000/api/post/send
Parametri | Tipo | Descrizione |
---|---|---|
author |
string |
Obbligatorio. Utente loggato |
content |
string |
Obbligatorio. Messaggio da postare |
POST http://localhost:5000/api/comment/send
Parametri | Tipo | Descrizione |
---|---|---|
idPost |
string |
Obbligatorio. Riferimento del post |
author |
string |
Obbligatorio. Utente loggato |
content |
string |
Obbligatorio. Messaggio di commento al post |
GET http://localhost:5000/api/posts?user=:user
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
GET http://localhost:5000/api/posts/:user
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
GET http://localhost:5000/api/friends?user=:user
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
POST http://localhost:5000/api/friends
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
friend |
string |
Obbligatorio. Username utente da aggiungere come amico |
POST http://localhost:5000/api/settings/password
Parametri | Tipo | Descrizione |
---|---|---|
username |
string |
Obbligatorio. Username Utente loggato |
oldPassword |
string |
Obbligatorio. Password attuale |
newPassword |
string |
Obbligatorio. Nuova Password |
POST http://localhost:5000/api/settings/photo
Parametri | Tipo | Descrizione |
---|---|---|
username |
string |
Obbligatorio. Username Utente loggato |
photo |
string |
Obbligatorio. Stringa Base64 Immagine Foto |
DELETE http://localhost:5000/api/settings/unsubscribe
Parametri | Tipo | Descrizione |
---|---|---|
username |
string |
Obbligatorio. Username Utente loggato |
GET http://localhost:5000/api/users?exclude=:user
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
POST http://localhost:5000/api/users
Parametri | Tipo | Descrizione |
---|---|---|
sender |
string |
Obbligatorio. Utente loggato |
receiver |
string |
Obbligatorio. Username utente a cui richiedere l'amicizia |
GET http://localhost:5000/api/users/:user/followrequests/sended
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
DELETE http://localhost:5000/api/users/:user/followrequests/sended
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
friend |
string |
Obbligatorio. Username utente di cui rimuovere la richiesta di amicizia |
GET http://localhost:5000/api/users/:user/followrequests/received
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
POST http://localhost:5000/api/users/:user/followrequests/received
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
friend |
string |
Obbligatorio. Username utente di cui accettare la richiesta di amicizia |
DELETE http://localhost:5000/api/users/:user/followrequests/received
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
friend |
string |
Obbligatorio. Username utente di cui rimuovere la richiesta di amicizia |
GET http://localhost:5000/api/users/:user
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Riferimento Utente |
Effettua dei controlli sul parametro "friend" per verificare se lo username è già presente come amico, richiesta inviata e richiesta ricevuta
GET http://localhost:5000/api/users/:user/:friend
Parametri | Tipo | Descrizione |
---|---|---|
user |
string |
Obbligatorio. Utente loggato |
friend |
string |
Obbligatorio. Username utente di cui effettuare i controlli |
Matteo Tartaglione