Skip to content

Latest commit

History

77 Commits

Folders and files

NameName
Last commit message
Last commit date

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
ParametriTipoDescrizione
usernamestringObbligatorio. Username
passwordstringObbligatorio. Password

Effettua l'iscrizione

POST http://localhost:5000/sign
ParametriTipoDescrizione
usernamestringObbligatorio. Username
emailstringObbligatorio. E-mail
passwordstringObbligatorio. Password
photostringObbligatorio. Stringa Base64 Immagine Foto profilo

Ricerca foto profilo dell'utente

GET http://localhost:5000/api/photo?username=:username
ParametriTipoDescrizione
usernamestringObbligatorio. Username

Ricerca i messaggi scambiati fra due utenti

GET http://localhost:5000/api/messages?user=:user&friend=:friend
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato
friendstringObbligatorio. Utente amico con cui avviene la chat

Effettua la crittografia del messaggio da inviare

POST http://localhost:5000/api/msg/encrypt
ParametriTipoDescrizione
messagestringObbligatorio. Messaggio da inviare
keystringObbligatorio. Chiave segreta per crittografare il messaggio

Effettua la crittografia del post da inviare

POST http://localhost:5000/api/post/encrypt
ParametriTipoDescrizione
messagestringObbligatorio. Post da inviare
keystringObbligatorio. Chiave segreta per crittografare il post

Effettua la crittografia del commento al post da inviare

POST http://localhost:5000/api/comment/encrypt
ParametriTipoDescrizione
messagestringObbligatorio. Commento da inviare
keystringObbligatorio. Chiave segreta per crittografare il commento

Effettua la decrittografia del messaggio inviato/ricevuto

POST http://localhost:5000/api/msg/decrypt
ParametriTipoDescrizione
messagestringObbligatorio. Messaggio inviato/ricevuto
keystringObbligatorio. Chiave segreta per decrittografare il messaggio

Effettua la decrittografia del post inviato/ricevuto

POST http://localhost:5000/api/post/decrypt
ParametriTipoDescrizione
messagestringObbligatorio. Post inviato/ricevuto
keystringObbligatorio. Chiave segreta per decrittografare il post

Effettua la decrittografia del commento al post inviato/ricevuto

POST http://localhost:5000/api/comment/decrypt
ParametriTipoDescrizione
messagestringObbligatorio. Commento inviato/ricevuto
keystringObbligatorio. Chiave segreta per decrittografare il commento

Effettua l'invio del messaggio in chat

POST http://localhost:5000/api/msg/send
ParametriTipoDescrizione
senderstringObbligatorio. Utente loggato
receiverstringObbligatorio. Utente amico con cui avviene la chat
messagestringObbligatorio. Messaggio da inviare

Effettua l'invio e pubblicazione del post

POST http://localhost:5000/api/post/send
ParametriTipoDescrizione
authorstringObbligatorio. Utente loggato
contentstringObbligatorio. Messaggio da postare

Effettua l'invio e pubblicazione del commento al post

POST http://localhost:5000/api/comment/send
ParametriTipoDescrizione
idPoststringObbligatorio. Riferimento del post
authorstringObbligatorio. Utente loggato
contentstringObbligatorio. Messaggio di commento al post

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

GET http://localhost:5000/api/posts?user=:user
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato

Ricerca tutti i post pubblicati da un utente

GET http://localhost:5000/api/posts/:user
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato

Ricerca tutti gli amici di un utente

GET http://localhost:5000/api/friends?user=:user
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato

Effettua l'inserimento di un utente come amico

POST http://localhost:5000/api/friends
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato
friendstringObbligatorio. Username utente da aggiungere come amico

Effettua il cambio della password

POST http://localhost:5000/api/settings/password
ParametriTipoDescrizione
usernamestringObbligatorio. Username Utente loggato
oldPasswordstringObbligatorio. Password attuale
newPasswordstringObbligatorio. Nuova Password

Effettua il cambio della foto profilo

POST http://localhost:5000/api/settings/photo
ParametriTipoDescrizione
usernamestringObbligatorio. Username Utente loggato
photostringObbligatorio. Stringa Base64 Immagine Foto

Effettua la disiscrizione

DELETE http://localhost:5000/api/settings/unsubscribe
ParametriTipoDescrizione
usernamestringObbligatorio. Username Utente loggato

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

GET http://localhost:5000/api/users?exclude=:user
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato

Effettua la richiesta di amicizia ad un utente

POST http://localhost:5000/api/users
ParametriTipoDescrizione
senderstringObbligatorio. Utente loggato
receiverstringObbligatorio. 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
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato

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

DELETE http://localhost:5000/api/users/:user/followrequests/sended
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato
friendstringObbligatorio. 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
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato

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

POST http://localhost:5000/api/users/:user/followrequests/received
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato
friendstringObbligatorio. 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
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato
friendstringObbligatorio. 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
ParametriTipoDescrizione
userstringObbligatorio. 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
ParametriTipoDescrizione
userstringObbligatorio. Utente loggato
friendstringObbligatorio. 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

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages