Dekha-Hobe (Bengali for "Until We Meet Again") is a feature-rich, full-stack MERN (MongoDB, Express.js, React, Node.js) blogging platform. It allows users to register, log in, create, publish, update, and manage blog posts with custom thumbnail/header images.
The application enforces strict author-level permissions, ensuring that users can only edit or delete their own posts while maintaining a public feed accessible to all visitors.
- 🔐 User Authentication & Security: Register and login functionality with encrypted passwords via
bcrypt. - ✍️ Post Publishing & Editor: Write blog posts with custom titles, content, categories, and cover image uploads.
- 🛡️ Role & Ownership Protection: Strict authorization ensures only post authors can update or delete their posts.
- 🏷️ Categorization & Search: Tag articles with categories and filter blog posts by specific author or category.
- 🖼️ Image Storage: File upload processing powered by
Multerfor custom image headers and avatars. - 👤 User Dashboard & Profile: Dedicated user profile settings for updating credentials, bio, and account details.
- 🌐 Responsive UI: Intuitive, user-friendly frontend interface built using React 18 and React Router v6.
- Library: React 18
- Routing: React Router DOM v6
- HTTP Client: Axios
- Styling: Modern CSS3 / Flexbox / Grid
- Runtime: Node.js & Express.js
- Database: MongoDB with Mongoose ORM
- Authentication: Custom Authentication with
bcryptpassword hashing - File Uploads: Multer middleware
Dekha-Hobe/
├── api/ # Express backend server
│ ├── images/ # Uploaded post header images
│ ├── models/ # Mongoose schemas (User, Post, Category)
│ ├── routes/ # REST API endpoints (auth, users, posts, categories)
│ ├── index.js # Express app entry point
│ ├── package.json # Backend dependencies
│ └── .env # Environment configuration
│
└── Client/ # React frontend application
├── public/ # Static HTML assets
├── src/ # React components, pages & context
├── package.json # Frontend dependencies & proxy setup
└── README.md
| Method | Endpoint | Description | Access |
|---|---|---|---|
POST |
/api/auth/register |
Register a new user | Public |
POST |
/api/auth/login |
Log in user | Public |
GET |
/api/users/:id |
Get user details | Public |
PUT |
/api/users/:id |
Update user details & password | Owner |
DELETE |
/api/users/:id |
Delete user account & associated posts | Owner |
GET |
/api/posts |
Get all posts (filterable by ?user= or ?cat=) |
Public |
GET |
/api/posts/:id |
Get a specific blog post | Public |
POST |
/api/posts |
Create a new blog post | Logged In |
PUT |
/api/posts/:id |
Update an existing post | Author Only |
DELETE |
/api/posts/:id |
Delete a post | Author Only |
GET |
/api/categories |
Get list of post categories | Public |
POST |
/api/categories |
Add a new category | Logged In |
POST |
/api/upload |
Upload cover image file | Logged In |
git clone https://github.com/your-username/Dekha-Hobe.git
cd Dekha-Hobe# Navigate to API directory
cd api
# Install dependencies
npm install
# Create/configure .env file
# Add MONGO_URL=your_mongodb_connection_string
# Start development server (runs on http://localhost:5000)
npm start# Open a new terminal window & navigate to Client directory
cd Client
# Install dependencies
npm install
# Start React app (runs on http://localhost:3000)
npm start| Feed / Home | Single Post View |
|---|---|
![]() |
![]() |
| Create Post / Editor | Dashboard & Profile |
|---|---|
![]() |
![]() |
This project is licensed under the ISC License.







