I decided to try and tackle making a real time chat application with users, channels, friends, and messages. I haven't finished everything I wanted but it was a good learning experience. I hope to add notifications and read receipts, which are technically there but need refinement, along with most of the project.
Focuses
Scalability
Cyber-Security
UX/UI
Learn Web Sockets and Express
Object-Oriented Programming
Abstraction
The scope of this project may have escaped me
What I Learned
MongoDB & Mongoose
NoSQL!
Populating fields
Redis
I used Redis to handle storing data about connected clients for the server to consume
Allows for multiple server shards to act on the same clients
Node.js & Express
Routes, routers, http protocol, headers, caches, CORS, so so so much more
API endpoints and the REST framework
WebSockets
REST
.env Secrets
GitHub
Authentication & Cookies
How to use cookies to authenticate users with JWT
Session management
React
Using AJAX to manage component state
UX/UI Design
Client-side rendering