Skip to content

Latest commit

 

History

History
104 lines (68 loc) · 3.59 KB

README.md

File metadata and controls

104 lines (68 loc) · 3.59 KB

Peppermint chat app

The app designed to exchange messages between two people who speak completely different languages. Think: FB Messenger with a built-in automatic translator. If we could more easily speak to others from around the world, we would be a more inclusive and connected world!

To see the app please click 👉 Peppermint chat (Under development)

You can use the following user credentials(or create new user accounts):

email: [email protected]
password: qwerty

email: [email protected]
password: qwerty

Synopsis

There are two main users:

  1. The sender: a. The sender sends messages in his/her chosen language
  2. The receiver a. The receiver receives messages in his/her chosen language For example: Sender speaks English and Receiver speaks Chinese. The Sender sends “what is your schedule for today?: and the receiver receives that message in Chinese. The receiver can then send Chinese back “I have 3 meetings and a dinner”, and the sender will receive this message back in English.

User can login/signup with email address. User can email invitation or referral link to sign up. When signing up the user can select primary language. User can accept friend request, search contacts by email or name. User can also join group chat.

Downloading the project

Fork and clone this repo.

Running the project locally

The back-end server

cd server
npm install
npm run start

The front-end server

cd client
npm install
npm run start

Screenshots of a Peppermint chat app in action

Login/Signup Page

"Login/Signup Page"

Chats list

"Chats list"

Contacts list

"Contacts list"

Invitation window

"Invitation window"

User avatar replacing

"User avatar replacing"

Image upload window to send to another user

"Image upload window to send to another user"

Mobile friendly design

"Mobile friendly design"

Peppermint Development Pipeline

The project uses continuous integration through Github, Circle Ci, and Netlify.

When any updates are pushed to dev branch, Circle Ci runs the app's Cypress and unit tests, if they pass, Circle Ci then updates the production branch in Github. Listening for updates to the production branch, Netlify will update when Circle Ci completes the tests, giving the app continous tested integration.

"CircleCI schema"

"CircleCI test results"

Dependencies

  • react 16.13.1,
  • material-ui,
  • firebase,
  • socket.io,
  • material-ui-gropzone,
  • emoji-mart,
  • jwt-decode,
  • validator,
  • parse-url,
  • core-js,
  • bcrypt,
  • sendgrid/email,
  • mongodb,
  • mongoose,
  • jsonwebtoken,
  • mailgen