Skip to content

EmilLM/ChatAway

Repository files navigation

ChatAway

Status License


Slack-type chat app with fully built back-end.

📝 Table of Contents

🧐 About

Developed as a way to learn and practice the MERN stack, with a focus on Express and MongoDB.

Features

Authentication: User sign up, log in, , log out, forgot password/reset password by email.

Chat features: Room chat, direct friend chat, edit user profile: name, email, password, avatar, delete account.

UX: Server-side rendered (SSR), responsive design, data security.

Disclaimer

Missing features and links that do not work as intended means that part was not implemented yet.

🎈 Usage

Feel free to test the app by signing up, leave a few messages, edit your user profile.

⛏️ Built Using

Other dependencies:

Security: bcryptjs, express-mongo-sanitize, express-rate-limit, helmet hpp, json web token, xss-clean, validator, cors.

Data fetching: axios, useSWR.

Data modelling: mongoose.

Forms/Image processing: Formik, Yup, Multer, Sharp.

Email: nodemailer, nodemailer-express-handlebars, html-to-text, SendGrid.

Routes: Postman API routes

Environment variables

Required environmental variables in this project include:

DATABASE: MongoDB ChatAway connection string

DATABASE_PASSWORD: MongoDB ChatAway database password

JWT_SECRET: the secret string required for password encryption

JWT_EXPIRES_IN: the time that the user token lasts

JWT_COOKIE_EXPIRES_IN: the time that the user cookie lasts

EMAIL_FROM: the ChatAway mail account

SENDGRID_USERNAME: the SendGrid username for nodemailer

SENDGRID_PASSWORD: the SendGrid password for nodemailer

✍️ Authors

🎉 Acknowledgements

  • Hat tip to anyone whose code was used

About

Chat app developed with the MERN stack.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published