https://github.com/efeckc17/blog-site
Clean, dark-mode friendly blog platform with profile management, post favoriting, admin dashboard, and real-time interactions.
https://github.com/efeckc17/blog-site
blog blog-site expreesjs javascript jwt-authentication mongodb nodejs open-source ready-website website
Last synced: 2 months ago
JSON representation
Clean, dark-mode friendly blog platform with profile management, post favoriting, admin dashboard, and real-time interactions.
- Host: GitHub
- URL: https://github.com/efeckc17/blog-site
- Owner: Efeckc17
- License: mit
- Created: 2025-04-05T16:02:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-08T02:21:17.000Z (over 1 year ago)
- Last Synced: 2025-04-09T20:09:21.876Z (over 1 year ago)
- Topics: blog, blog-site, expreesjs, javascript, jwt-authentication, mongodb, nodejs, open-source, ready-website, website
- Language: JavaScript
- Homepage:
- Size: 709 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📰 Blog-Site



Blog-Site is a full-stack, production-ready blogging platform designed with modern aesthetics, robust security, and a rich feature set. It empowers users to share ideas, engage with content, and manage profiles — all within a smooth and responsive user interface.
---
## 🚀 Features
- **User Accounts**: Registration & JWT-based authentication
- **Profile Management**: Profile picture, bio, and social media links
- **Post System**: Create, edit, delete, like, and favorite posts
- **Commenting**: Comment on posts, delete own or (as admin) any comment
- **Favorites**: Save posts for later view
- **Popular Feed**: View top 3 trending posts by view count
- **Search**: Find users and posts via global search bar
- **Dark Mode**: Full theme toggle with local persistence
- **Admin Panel**: Manage users and content
- Ban or permanently delete users (admin cannot be deleted)
- Delete any post or comment
---
## 🛠 Tech Stack








### Backend
- Node.js + Express
- MongoDB + Mongoose
- JWT (Auth)
- Helmet, CORS, Rate Limiting
### Frontend
- React.js + Tailwind CSS
- React Router
- Axios
- Responsive & Dark Mode Ready
---
## 🛠️ Setup Instructions
### 1. Clone the repository
```bash
git clone https://github.com/Efeckc17/blog-site.git
cd blog-site
```
### 2. Environment variables
Create a `.env` file based on the template:
```bash
cp .env.example .env
```
Edit `.env`:
```env
PORT=5000
MONGO_URI=mongodb://localhost:27017/blogdb
JWT_SECRET=your_secret_key
ADMIN_EMAIL=admin@example.com
```
### 3. Start the Backend
```bash
cd blog-backend
npm install
node server.js
```
### 4. Start the Frontend
```bash
cd ../blog-frontend
npm install
npm start
```
---
## 🛡️ Admin Access
- Any user who registers with the email specified in `ADMIN_EMAIL` becomes an admin.
- Admins can access the `/admin` panel and manage all platform content.
- Admin accounts are protected from deletion.
---
## 📁 Project Structure
```
blog-project/
├── blog-backend/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ └── server.js
│
├── blog-frontend/
│ ├── public/
│ └── src/
│ ├── components/
│ ├── pages/
│ └── App.js
│
├── .env.example
└── README.md
```
---
## 📷 Preview
### 📝 Posts and Comments
Users can create rich-text blog posts, comment on others' content, and engage through likes and favorites.
### 👤 User Profiles
Every user can customize their profile with a bio and add social media links.
### 🏠 Homepage Feed
Latest posts and trending content are shown on the homepage.

---
## 🤝 Contribution
We welcome contributions! Fork the repository, open issues, or submit pull requests.
---
## 🌐 Portfolio
Visit the creator's portfolio: [https://toxi360.org](https://toxi360.org)
---
## 📜 License
MIT License