Inktale is a fully responsive blog application built with Express
, Node
, MongoDB
, and EJS
(MEEN Stack). It features a mobile-first design, user authentication, and a variety of functionalities for managing blogs and user profiles. Along with support of MARKDOWN
language as Blog content.
Responsive Design
🍁 Optimized for mobile-first design.User Authentication
🍁 Secure login and signup usingbcrypt
.Blog Management
🍁 Create, edit, delete, and view blogs.User Profile
🍁 Manage user information and blogs.Image Upload
🍁 Upload images usingCloudinary
.Error Handling
🍁 Comprehensiveerror handling
with flash messages.
bcrypt
🌸 Library for hashing passwords to enhance security.cloudinary
🌸 Cloud-based image and video management service for uploading media.compression
🌸 Middleware to compress HTTP responses, improving performance.connect-mongo
🌸 MongoDB session store for Express and Connect, used for storing session data.dotenv
🌸 Loads environment variables from a.env
file intoprocess.env
.ejs
🌸 Embedded JavaScript templating engine for rendering dynamic HTML content.express
🌸 Fast and minimalist web framework for building Node.js applications.express-session
🌸 Middleware for managing sessions in Express apps.highlight.js
🌸 Library for syntax highlighting in code blocks for better readability.markdown-it
🌸 Markdown parser that converts markdown text into HTML.mongoose
🌸 MongoDB object modeling tool designed to work in an asynchronous environment.nodemon
🌸 Tool that automatically restarts the server when file changes are detected.
-
Clone 🗃️ the repository
For window 🍦
git clone https ➺//github.com/Prakhar-002/INKTALE-The-Blog-Site.git cd INKTALE-The-Blog-Site
For Linux and macOS 🧋
git clone https ➺//github.com/Prakhar-002/INKTALE-The-Blog-Site.git cd INKTALE-The-Blog-Site
-
Install⚡️dependencies ➺
npm install
-
Create a
.env
file in the root directory andadd the following
➺MONGO_CONNECTION_URL=your_mongo_connection_URL SESSION_SECRET=your_session_secret SESSION_MAX_AGE=your_allowed_time CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_cloud_key CLOUDINARY_API_SECRET=your_cloud_secret
-
Start 🎉 the application ➺
npm run dev
-
Access the app in your browser at
http://localhost:8080
.
Home Page
🌼 View all blogs.Authentication
🌼 Sign up and log in to create and manage blogs.User Profile
🌼 Access and edit your personal information.Create a Blog
🌼 Write and publish new blog posts.Edit/Delete a Blog
🌼 Manage your published blogs throwDashboard
.Reading List
🌼 Add blogs from other users to your personal reading list for future reference.React to Blogs
🌼 Like and engage with other users' blogs to show appreciation.
INKTALE-The-Blog-Site/
│
├── config/ 🔸Configuration files (database, cloudinary, etc.)
│ └── cloudinary.js 🔹Cloudinary configuration for media uploads
│
├── controllers/ 🔸Request handlers for routes
│ ├── blogController.js 🔹Blog-related logic
│ └── userController.js 🔹User-related logic (authentication, profiles)
│
├── middlewares/ 🔸Custom middleware functions
│ └── auth.js 🔹Authentication middleware
│
├── models/ 🔸Mongoose models
│ ├── Blog.js 🔹Blog schema
│ └── User.js 🔹User schema
│
├── public/ 🔸Static assets (CSS, images, JavaScript)
│ ├── css/ 🔹Stylesheets
│ ├── images/ 🔹Images for the site
│ └── js/ 🔹Client-side JavaScript
│
├── routes/ 🔸Application routes
│ ├── blogRoutes.js 🔹Routes for blog actions
│ └── userRoutes.js 🔹Routes for user actions (login, signup)
│
├── utils/ 🔸Utility functions and helpers
│ └── validators.js 🔹Input validation utilities
│
├── views/ 🔸EJS templates for dynamic HTML rendering
│ ├── partials/ 🔹Reusable EJS partials (header, footer)
│ ├── blogs/ 🔹Blog templates (create, edit, view)
│ └── users/ 🔹User-related templates (profile, login, signup)
│
├── .gitignore 🔸Files and directories to ignore in git
├── app.js 🔸Main application entry point
├── package.json 🔸Project dependencies and scripts
└── README.md 🔸Project documentation
Meet Prakhar Katiyar
🙋🏻♂️ , An avid learner with a passion for mastering the MERN (MongoDB, Express.js, React.js, Node.js)
stack 🎯 and diving deep into Data Structures and Algorithms (DSA)
🧑🏻💻