A blogging application with a clean and minimal UI featuring dark mode, an adaptive sidebar, and many easter eggs for users to discover. Blogs!
- Clean and Minimal UI: The application boasts a sleek design with a dark mode for comfortable reading.
- Adaptive Sidebar: The sidebar adapts to user interactions, enhancing the browsing experience.
- Easter Eggs: Hidden features and surprises for users to find as they explore.
- HTML in Blogs: Users can embed HTML code within their blogs using
[text] your code [/text]
blocks. - Post Progress: Users can see the progress of their posts beside the adaptive sidebar.
- Read Time Calculation: The estimated read time is displayed below the thumbnail of each post.
- Node.js: Server-side JavaScript runtime.
- Express: Web framework for Node.js.
- MongoDB: NoSQL database.
- Dependencies:
- Multer: File handling and restrictions.
- cookie-parser: Cookie handling.
- jsonwebtoken (JWT): Token generation and verification.
- EJS: Templating engine.
- Password Hashing: Passwords are hashed with the SHA-256 algorithm and never saved in the database.
- JWT Authentication: Efficient login and logout handling through JWT token generation and verification.
- Multer: Used for restricting and handling file attachments.
To set up the project locally, follow these steps:
-
Clone the Repository:
git clone https://github.com/ashesbloom/Blogging-Application.git cd Blogging-Application
-
Initialize Node.js
npm init
Follow the prompts to create a
package.json
file. -
Install Express
npm install express
-
Install Other Dependencies
npm install multer cookie-parser jsonwebtoken ejs
-
Run the Application
node index.js
- HTML Code in Blogs: Users can embed HTML code within their blog posts using
[text] your code [/text]
blocks. - Post Progress: Users can track the progress of their posts in real time.
- Read Time Calculation: The application calculates and displays the read time of each post.
If you want to contribute to the project, please follow the standard GitHub flow:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
For any inquiries or issues, contact us at [email protected].