Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
Binary file added Blog Application/.DS_Store
Binary file not shown.
190 changes: 174 additions & 16 deletions Blog Application/README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,191 @@
# Blog Application
# Professional Blog Application

## Description
Blog Application is an application where user can add a new blog, edit it, delete it as well as view other blogs and make changes in them.
Professional Blog Application is a feature-rich web application where users can create, edit, delete, and view blog posts. The application uses LocalStorage to persist data, ensuring that blog posts remain available even after the browser is closed or the page is refreshed.

Application uses LocalStorage, the localStorage object stores data with no expiration date. The data will not be deleted when the browser is closed, and will be available when the user comes again.
This enhanced version includes a modern UI design, improved functionality, and a better user experience, making it perfect for Hacktoberfest contributions.

## Stacks Used
* HTML & CSS
* Bootstrap - A CSS Framework
* JavaScript -> LocalStorage
## Features
- ✨ Modern, professional UI with blue/gray color scheme
- 📝 Create new blog posts with images, titles, categories, and content
- ✏️ Edit existing blog posts in-place
- 🗑️ Delete blog posts with confirmation
- 👁️ View full blog posts in a modal
- 💾 Data persistence using LocalStorage
- 📱 Fully responsive design for all devices
- 🔍 Search functionality
- 🎯 Category filtering
- 📊 Sorting options (newest, oldest, title)
- 📈 Statistics dashboard with 5 key metrics
- 🎉 Success notifications
- 🖼️ Fallback images for broken links
- 📋 Category management with dropdown and custom options

## Technologies Used
- HTML5
- CSS3 (with Flexbox and Grid)
- Bootstrap 5
- JavaScript (ES6+)
- Font Awesome Icons
- LocalStorage API

## Use of Project
This project is excellent for:
1. Understanding the concept of LocalStorage and how it persists data
2. Learning modern web development techniques
3. Practicing JavaScript DOM manipulation
4. Contributing to open-source during Hacktoberfest
5. Building a portfolio project

## How to Use

1. Clone or download this repository
2. Open `index.html` in your web browser
3. Start creating blog posts by clicking the "New Article" button

### Creating a Blog Post
1. Click the "New Article" button in the navbar or on the main page
2. Fill in the form with:
- Image URL (use a valid image URL)
- Blog Title
- Category (select from dropdown or enter custom)
- Content (your blog post content)
3. Click "Publish Article"

### Editing a Blog Post
1. Click the green edit button (pencil icon) on any blog card
2. Edit the title, category, or content directly in the card
3. Click the "Save Changes" button to save your changes

### Deleting a Blog Post
1. Click the red delete button (trash icon) on any blog card
2. Confirm the deletion in the popup dialog

### Viewing a Blog Post
1. Click the "Read" button on any blog card
2. View the full blog post in a modal window

### Searching and Filtering
1. Use the search box to find articles by title, content, or category
2. Filter articles by category using the filter buttons
3. Sort articles by newest, oldest, or title using the sort dropdown

## Screenshots

### Main Dashboard with Statistics
![Main Dashboard](Screenshots/kshitizscreenshot/dashboard.png)

### Create New Article Modal
![Create New Article](Screenshots/kshitizscreenshot/create-article.png)

### Article Preview Modal
![Article Preview](Screenshots/kshitizscreenshot/article-preview.png)

### Article Management
![Article Management](Screenshots/kshitizscreenshot/article-management.png)

## Contributing to Hacktoberfest

This project is part of Hacktoberfest! We welcome contributions from the community. Here's how you can contribute:

### Getting Started
1. Fork this repository
2. Clone your forked repository to your local machine
3. Create a new branch for your feature or bug fix
4. Make your changes
5. Commit your changes with a descriptive commit message
6. Push your changes to your forked repository
7. Create a Pull Request to the main repository

### Ideas for Contributions

We're looking for contributions in the following areas:

1. **New Features**
- Add search functionality
- Implement blog categories/tags
- Add a dark/light mode toggle
- Implement blog sharing capabilities
- Add blog post statistics (views, likes)
- Implement draft saving functionality

2. **UI/UX Improvements**
- Improve animations and transitions
- Add more visual feedback
- Enhance mobile responsiveness
- Add keyboard shortcuts
- Improve accessibility (ARIA labels, screen reader support)

3. **Functionality Enhancements**
- Add export/import functionality (PDF, Markdown)
- Implement blog post sorting options
- Add rich text editing for blog content
- Implement pagination for blog lists
- Add blog post filtering by category

4. **Code Quality**
- Refactor existing code for better performance
- Add more comprehensive error handling
- Improve code documentation
- Add unit tests
- Implement design patterns

5. **Documentation**
- Improve this README file
- Add user guides
- Create setup instructions
- Add contribution guidelines
- Create API documentation

### Contribution Guidelines

1. Ensure your code follows the existing style and conventions
2. Write clear, descriptive commit messages
3. Test your changes thoroughly
4. Update documentation if needed
5. Be respectful and constructive in all interactions

### Pull Request Process

1. Ensure any install or build dependencies are removed before the end of the layer when doing a build
2. Update the README.md with details of changes to the interface, if applicable
3. Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent
4. Your Pull Request will be reviewed by maintainers, who may request changes before merging

## Project Structure

To understand the concept of the localstorage, how localstorage persist the data, even the tab is closed or user refersh the page.
```
Blog Application/
├── index.html
├── style.css
├── script.js
├── README.md
└── Screenshots/
└── kshitizscreenshot/
├── dashboard.png
├── create-article.png
├── article-preview.png
└── article-management.png
```

## ScreenShot
## License

<img src="https://github.com/khushi-purwar/Web-dev-mini-projects/blob/main/Blog%20Application/Screenshots/ss1.png?raw=true" />
This project is open source and available under the [MIT License](LICENSE).

Click on the `Add New`, UI looks like:
## Author

[Kshitiz Maurya](https://github.com/kshitizmaurya)

<img src="https://github.com/khushi-purwar/Web-dev-mini-projects/blob/main/Blog%20Application/Screenshots/ss2.png?raw=true" />
## Acknowledgements

Click on the `Open Blog`, UI looks like:
- [Bootstrap](https://getbootstrap.com/) for the CSS framework
- [Font Awesome](https://fontawesome.com/) for icons
- All contributors to this project

## Support

<img src="https://github.com/khushi-purwar/Web-dev-mini-projects/blob/main/Blog%20Application/Screenshots/ss3.png?raw=true" />
If you like this project, please give it a ⭐️ on GitHub!

## Live Demo
---

<img src="https://github.com/khushi-purwar/Web-dev-mini-projects/blob/main/Blog%20Application/Screenshots/demo.gif?raw=true" />
Made with ❤️ for Hacktoberfest 2023
Binary file added Blog Application/Screenshots/.DS_Store
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading