Skip to content
/ MessMe Public

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

Notifications You must be signed in to change notification settings

ttq186/MessMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published