تفاصيل العمل

Social Media App | Node.js, Express.js, GraphQL, MongoDB, Socket.io

A full-featured social media backend supporting posts, real-time chat, friend connections, and both REST and GraphQL APIs — built with plain Node.js/Express (no framework abstraction), giving me deep hands-on experience with raw middleware, authentication, and API design.

Key features I built:

Authentication system — signup with email confirmation, login, Google OAuth login, JWT access/refresh tokens, and a full forgot/reset password flow

Friend system — send friend requests, accept/reject responses, and manage connections

User profiles & roles — profile management, email/password updates, shareable public profiles, and an admin dashboard with role-based access control

Posts — create, update, soft-delete and restore posts, like/unlike functionality

Comments — full CRUD on comments linked to posts

Real-time chat — one-to-one messaging with Socket.io for instant delivery and live notifications

Dual API design — REST endpoints alongside a GraphQL API (with GraphQL Playground) for flexible, efficient data fetching

Media uploads — image handling via Cloudinary and Multer

Security — Helmet for secure headers, rate limiting, Joi validation, bcrypt password hashing, and encrypted sensitive data (crypto-js)

Email notifications — automated emails via Nodemailer (confirmations, password resets)

Tech stack: Node.js, Express.js, MongoDB (Mongoose), GraphQL, Socket.io, JWT, Google OAuth, Cloudinary, Multer, Joi, Helmet, Nodemailer, bcrypt.

This project deepened my understanding of building both REST and GraphQL APIs side by side, real-time communication with WebSockets, and implementing robust authentication flows (including email verification and password recovery) from scratch without a framework like NestJS handling it for me.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات