Skip to content

Latest commit

 

History

History
84 lines (58 loc) · 4.31 KB

README.md

File metadata and controls

84 lines (58 loc) · 4.31 KB

📬 Chatify · EC2 Deployment Pipeline GitHub license PRs Welcome Website

A realtime chat app built with TypeScript, React, Node.js, and AWS. It allows users to log in easily using OAuth 2.0 (Google, GitHub, email/password). Users can connect with others and send text messages, emojis, stickers, media, files, and more. The chat offers many features found in popular messaging apps like WhatsApp.

Open graph image of Chatify

📦 Technologies

Main Technologies

All Technologies ⚡

  • Fronted: TypeScript · React · Vite · TailwindCSS · Zustand · Auth0
  • Backend: TypeScript · Node.js · Express · Turso · Socket.io · REST · JWT Auth
  • Infra: AWS: EC2 - S3 - CloudFront · Cloudflare Pages · PNPM Workspaces · PM2 · GitHub Actions
  • Linting and Formatting: StandarJS · EsLint · Prettier

🚀 Features

  • 🔐 Sign in/Sign up with Google, GitHub, or email/password

  • 💬 Initiate personalized chats with other users.

  • 📩 Messaging Options:

    • 🗃️ Share any file type.
    • 📷 Exchange images.
    • ✏️ Send and receive text messages.
    • 🎥 Share videos.
    • 😁 Express with fun stickers.
    • 🎞️ Share animated GIFs.
    • 😀 Add emojis to convey emotions.
  • 🌐 Automatically identify links and provide clickable anchor tags.

  • 🔄 Respond to messages to maintain clear and contextual conversations.

  • 🔮 Stay updated with notifications for unseen messages.

  • 🧐 Track message read status for improved communication clarity.

  • 😄 React to messages with emojis to express feelings and responses.

  • 😊 Access a wide array of emojis through an intuitive emoji picker.

  • 🎈 Send stickers using an intuitive sticker picker powered by Tenor.

  • 📷 Preview sent images and files directly within the chat interface.

  • 📬 Message Management:

    • 🗑️ Delete messages with a note indicating removal.
    • 🔎 Filter chats and messages efficiently using the search bar.
    • 🧮 Sort messages by file type, media, and more.
  • 🔥 Chat Actions:

    • 📌 Pin/Unpin
    • 👀 Hide/Unhide
    • 🔕 Mute/Unmute
    • 🔵 Mark Read/Unread
    • 🔐 Block/Unblock
    • 🧼 Clear
    • ❌ Delete

🚦Running the Project

To run the project in your local environment, follow these steps:

  1. Clone the repository to your local machine.
  2. Rename the files: client/.env.example to .env.local and /server/.env.example to .env.local.
  3. Fill in the values of the environment variables in the newly created .env.local files with your own data.
  4. Ensure you have Node.js and pnpm installed on your machine.
  5. Navigate to the root directory of the project and install dependencies by running pnpm install.
  6. Once the dependencies are installed, start the project by running pnpm run start.
  7. You can access the app at: http://localhost:5173.

That's it! Your project should now be up and running locally.

🌟 Contributions

Thank you for exploring this project! If you find the structure or features useful, feel free to use this code for your project. Contributions are welcome! If you have ideas, corrections, or improvements, please open an issue or send a pull request. Your collaboration is valued and appreciated! 🚀

Chatify is MIT licensed. ❤️

🍿 Video

Chatify720.mp4