A modern blog management system built with Vue.js 3 and TypeScript, featuring a clean and intuitive interface for managing blog posts. This application provides a robust platform for creating, editing, and managing blog content with user authentication.
Check out the live demo of the application here.
Below are some screenshots of the application in action:
-
User Authentication
- Secure login and registration system
- Token-based authentication
- Protected routes for authenticated users
- Persistent user sessions
-
Blog Management
- View all blog posts in a responsive table layout
- Create and edit blog posts
- Tag management system
- Post pagination
- Post excerpts and formatting
-
Modern UI/UX
- Clean and responsive design with Tailwind CSS
- Toast notifications for user feedback
- Mobile-friendly interface
- Dropdown menus and interactive components
- Custom reusable components
- Vue.js 3 with TypeScript
- Vuex 4 for state management
- Vue Router 4 for routing
- Axios for API communication
- Tailwind CSS for styling
- SCSS for custom styling
- Vue3-Toastify for notifications
-
Clone the repository
-
Install dependencies:
npm install
- Create a
.env
file in the root directory with:
VUE_APP_BASE_API_URL=your_api_url_here
- Run development server:
npm run serve
- Build for production:
npm run build
- Lint and fix files:
npm run lint
src/
├── api/ # API configuration and endpoints
├── assets/ # Static assets (images, fonts, styles)
├── components/ # Reusable Vue components
├── layout/ # Layout components (Header, Sidebar)
├── models/ # TypeScript interfaces and types
├── pages/ # Page components
├── router/ # Route configurations
├── store/ # Vuex store modules
└── views/ # View components
AppTable
: Responsive table component for displaying blog postsAppWidget
: Container component with title and content sectionsAppButton
: Reusable button component with various stylesAppMenu
: Dropdown menu component for actionsAppModal
: Modal dialog componentAppPagination
: Pagination component for blog posts
- Token-based authentication using Vuex store
- Automatic token injection in API requests
- Protected routes with navigation guards
- Rich text editing for blog posts
- Tag management system
- Post pagination with configurable page size
- Post excerpt generation
- Created date formatting
- Responsive design using Tailwind CSS
- Custom SCSS styling
- Consistent UI components
- Mobile-first approach
The project includes a deployment script for GitHub Pages:
npm run deploy
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is open source and available under the MIT License.