A full-stack blog platform built with Node.js, Express, MongoDB, and a React + TypeScript frontend.
- Admin Portal: Authenticated users can Create, Read, Update, and Delete articles.
- Authentication: Secure admin panel using JWT (JSON Web Tokens).
- Search & Filtering: Full-text search for articles and a dedicated page to browse articles by tag.
- File Uploads: Handles image uploads (featured image & in-editor) using Multer.
- Responsive UI: Built with Tailwind CSS for a clean, responsive, and dark-mode-ready interface.
- Backend:
- Node.js
- Express
- MongoDB (with Mongoose)
- JSON Web Token (JWT)
- Bcrypt.js
- Multer
- Frontend:
- React
- TypeScript
- Vite
- React Router
- Tailwind CSS
- Quill.js
- Node.js (v18+)
- MongoDB (a running local or cloud instance)
- Navigate to the
backenddirectory:cd backend - Install dependencies:
npm install
- Create a
.envfile in thebackenddirectory with the following variables:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_secret_key
- Run the server:
(The server will run on
node server.js
http://localhost:5000)
- In a new terminal, navigate to the
frontenddirectory:cd frontend - Install dependencies:
npm install
- Run the development server:
(The application will be available at
npm run dev
http://localhost:5173or a similar port)
The backend includes a seed script. You can run it from the backend directory to populate the database with admin credentials:
cd backend
node scripts/seeds.js