Skip to content

CryptoBook è un social network che permette di scambiare e crittografare i messaggi/posts.

Notifications You must be signed in to change notification settings

MatteoT92/cryptobook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 

Repository files navigation

CryptoBook

CryptoBook è un social network che permette di scambiare e crittografare i messaggi/posts.

Tecnologie usate

Front-end: React, Bootstrap

Back-end: Node, Express

Database: MongoDB, Mongoose

Version Control System: Git

Prerequisiti

Aver installato i seguenti software:

Installazione

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

Esecuzione nel browser

Per testare la web-app occorre andare sul browser e digitare il seguente URL

  http://localhost:3000/

Descrizione API

Nel caso vogliate testare le API, costruite per far funzionare l'applicazione, potete utilizzare Postman ed effettuare le varie chiamate che desiderate testare.

Effettua il login

  POST http://localhost:5000/login
Parametri Tipo Descrizione
username string Obbligatorio. Username
password string Obbligatorio. Password

Effettua l'iscrizione

  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

Ricerca foto profilo dell'utente

  GET http://localhost:5000/api/photo?username=:username
Parametri Tipo Descrizione
username string Obbligatorio. Username

Ricerca i messaggi scambiati fra due utenti

  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

Effettua la crittografia del messaggio da inviare

  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

Effettua la crittografia del post da inviare

  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

Effettua la crittografia del commento al post da inviare

  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

Effettua la decrittografia del messaggio inviato/ricevuto

  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

Effettua la decrittografia del post inviato/ricevuto

  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

Effettua la decrittografia del commento al post inviato/ricevuto

  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

Effettua l'invio del messaggio in chat

  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

Effettua l'invio e pubblicazione del post

  POST http://localhost:5000/api/post/send
Parametri Tipo Descrizione
author string Obbligatorio. Utente loggato
content string Obbligatorio. Messaggio da postare

Effettua l'invio e pubblicazione del commento al post

  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

Ricerca tutti i post in cui un utente è abilitato a visualizzare

  GET http://localhost:5000/api/posts?user=:user
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato

Ricerca tutti i post pubblicati da un utente

  GET http://localhost:5000/api/posts/:user
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato

Ricerca tutti gli amici di un utente

  GET http://localhost:5000/api/friends?user=:user
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato

Effettua l'inserimento di un utente come amico

  POST http://localhost:5000/api/friends
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato
friend string Obbligatorio. Username utente da aggiungere come amico

Effettua il cambio della password

  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

Effettua il cambio della foto profilo

  POST http://localhost:5000/api/settings/photo
Parametri Tipo Descrizione
username string Obbligatorio. Username Utente loggato
photo string Obbligatorio. Stringa Base64 Immagine Foto

Effettua la disiscrizione

  DELETE http://localhost:5000/api/settings/unsubscribe
Parametri Tipo Descrizione
username string Obbligatorio. Username Utente loggato

Effettua la ricerca degli utenti iscritti a cui richiedere l'amicizia

  GET http://localhost:5000/api/users?exclude=:user
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato

Effettua la richiesta di amicizia ad un utente

  POST http://localhost:5000/api/users
Parametri Tipo Descrizione
sender string Obbligatorio. Utente loggato
receiver string Obbligatorio. Username utente a cui richiedere l'amicizia

Effettua la ricerca di tutte le richieste di amicizia inviate da un utente

  GET http://localhost:5000/api/users/:user/followrequests/sended
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato

Effettua la rimozione di una richiesta di amicizia inviata da un utente

  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

Effettua la ricerca di tutte le richieste di amicizia ricevute da un utente

  GET http://localhost:5000/api/users/:user/followrequests/received
Parametri Tipo Descrizione
user string Obbligatorio. Utente loggato

Effettua l'accettazione di una richiesta di amicizia ricevuta da un utente

  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

Effettua la rimozione di una richiesta di amicizia ricevuta da un utente

  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

Effettua la ricerca dello username di un id utente

  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

Autore:

Matteo Tartaglione

🔗 Links

github

linkedin

About

CryptoBook è un social network che permette di scambiare e crittografare i messaggi/posts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published