Skip to content

Latest commit

 

History

History
executable file
·
44 lines (37 loc) · 1.57 KB

README.md

File metadata and controls

executable file
·
44 lines (37 loc) · 1.57 KB

MessMe

A full-featured chat app, built with FastAPI/Strawberry and ReactJS/ApolloClient

Click here for live demo

quick-demo.mp4

Description

  • MessMe is an opportunity for me to enhance my programming skills and experiment with some new technologies that I've learnt recently (e.g. Strawberry, Apollo Client, Redis, WebSocket, WebRTC) as well.

Features

  • Authentication by normal approach or via Google (JWT token is stored in HttpOnly cookie)
  • One-to-one chat
  • Friend adding
  • Notifications for new messages, friend requests
  • Users suggestions
  • User's profile update
  • Message revoking
  • Online status indicator
  • Typing indicator
  • File attaching
  • Audio calling
  • Video calling
  • Group chat

Tech stack

  • Front-end
    • ReactJS
    • Apollo Client - GraphQL client & state management
    • TailwindCSS
  • Back-end
    • FastAPI
    • Strawberry - builds GraphQL server
    • Async SQLAlchemy
  • Databases
    • PostgreSQL - stores main data
    • MongoDB - stores messages
    • Redis - caching & pub/sub

Disclaimer

  • MessMe is designed to work well with laptop screens, so the UI may not be suitable on other screens.

Credits

  • The UI design is inspired by ChatVia