Real-time Chat App
Built on MERN stack with GraphQL.
Installation
# Clone (or fork) the repo
git clone https://github.com/alex996/graphql-chat.git && cd graphql-chat
# Fill out .env file with secrets (development only)
cp .env.example .env
# Install the deps
yarn
# Run the server
yarn dev
Features
MVP
-
Sign up / sign in / reset password
-
Direct messaging (1 on 1)
-
Private group chat (2+ users)
-
File sharing (img, text, etc.)
-
Responsive material design
Nice to Haves
-
Notifications
-
Themes and customization
-
Status indicators (typing, offline)
-
Emails (confirmation, forgot password)
-
Other (?)
Topics
-
Schema design
-
Validation
-
Authentication (session vs. token)
-
Authorization (access control)
-
Security (injections, XSS, CSRF, headers)
-
State management
-
File upload
-
Real-time updates
-
Performance optimizations
-
Pagination
Technologies
Back-End
-
Node + Express
-
MongoDB + Mongoose ORM
-
Apollo Server v2
-
Web Sockets
-
Redis
-
Other (?)
Front-End
-
React 16+
-
Apollo Client v2
-
Material-UI