Click here for live demo
quick-demo.mp4
- 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.
- 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
- 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
- MessMe is designed to work well with laptop screens, so the UI may not be suitable on other screens.
- The UI design is inspired by ChatVia