InkSphere is a modern, high-performance blogging platform built on the MERN stack. It features real-time interactions, a robust authentication system, an intuitive admin dashboard, and advanced security configurations.
- Robust Authentication: Secure email/password login, OTP verification, and password recovery.
- Real-Time Capabilities: Live notifications and active user updates powered by Socket.IO.
- Advanced Security: Implemented rate limiting, data sanitization (NoSQL injection prevention), XSS filtering, and HTTP header protection via Helmet.
- Content Management: Comprehensive CRUD operations for blog posts, rich text integration, and media handling.
- Admin Dashboard: Centralized management for users, blogs, and platform queries.
- Responsive UI: A beautiful, fully responsive frontend engineered with React, Vite, and Tailwind CSS.
- Optimized Performance: Manual chunking in Vite for faster load times and an optimized API structure.
- Framework: React.js (Bootstrapped with Vite)
- Styling: Tailwind CSS
- State Management: Redux Toolkit
- Networking: Axios, Socket.IO Client
- Icons & Graphics: Lucide React, React Icons
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (with Mongoose ODM)
- Real-Time Comm: Socket.IO
- Security: Helmet, Express-Mongo-Sanitize, XSS, HPP, Express-Rate-Limit
Follow these steps to set up the project locally.
- Node.js (v16+ recommended)
- MongoDB (Local or Atlas URL)
git clone <your-repository-url>
cd inkspherecd server
npm installConfigure the backend environment variables locally. Do not share real values in the repository. Start the backend server:
npm run devOpen a new terminal window:
cd client
npm installConfigure the frontend environment variables locally and keep them out of version control. Start the frontend development server:
npm run devThe project is fully configured for deployment on Vercel.
- Backend Deployment:
- Create a new Vercel project and select the
serverdirectory.
- Create a new Vercel project and select the
- Configure the required environment variables in the Vercel dashboard.
- Deploy.
- Frontend Deployment:
- Create a new Vercel project and select the
clientdirectory.
- Create a new Vercel project and select the
- Configure the frontend environment variable in the Vercel dashboard.
- Deploy.
inkSphere/
├── client/ # Frontend React Application
│ ├── src/ # React Source Code
│ ├── public/ # Static Assets
│ ├── vite.config.js # Vite Configuration
│ └── package.json
└── server/ # Backend Node/Express Application
├── config/ # Database & Environment Configs
├── controllers/ # Route Handlers / Business Logic
├── middleware/ # Custom Express Middlewares
├── models/ # Mongoose Schemas
├── routes/ # API Endpoints
├── app.js # Express App Configuration
├── server.js # Server Entry Point & Socket.IO Setup
├── vercel.json # Vercel Deployment Configuration
└── package.json